(C++) Laços. Loop com parâmetro (for)


Laços na programação
Imagine uma situação em que precisamos exibir a mesma palavra na tela, digamos a palavra "HELLO", 10 vezes. O que devemos fazer?
Você pode pegar e escrever 10 vezes cout << "OLÁ";

Mas e se você precisar não 10 vezes, mas 20, 30, 40 vezes? E se 200 vezes? Nesse caso, a cópia levará muito tempo. E se for necessário que o usuário escolha quantas vezes deseja exibir as informações na tela? 

Para lidar com essa tarefa, usaremos uma construção especial chamada loop.
 
Um loopé uma construção algorítmica na qual uma determinada sequência de comandos é repetida várias vezes.< /div>
Na linguagem de programação C++, existem dois tipos de loops: um loop variável (for) e um loop condicional (while e do...while)

Vamos começar nosso conhecimento dos ciclos do primeiro tipo.
 
Loop com variável (for)

Muitas vezes, sabemos o número de repetições de algumas ações ou podemos calcular o número de repetições usando os dados que conhecemos. Algumas linguagens de programação possuem um comando que em russo soa como repeat(number of times), indicando o número exato de repetições entre colchetes. 

É interessante ver como esse ciclo funciona no nível da máquina:
1. uma determinada célula de memória é alocada na memória e o número de repetições é gravado nela;
2. quando o programa executa o corpo do loop uma vez, o conteúdo desta célula (contador) é decrementado em um;
3. a execução do loop termina quando esta célula é zero.

Não existe tal construção na linguagem de programação C++, mas existe uma construção for.  

A forma geral da instrução de loop for é a seguinte: for (/*expressão1*/; /*expressão2*/; /*expressão3*/ ) { /*uma instrução ou bloco de instruções - corpo do loop*/; } Este projeto requer que nós:
1. alocou explicitamente uma célula de memória que será um contador e definiu seu valor inicial;
2. foi escrita uma condição sob a qual o corpo do loop será executado;
3. Especifique como o valor nesta célula será alterado.

Na parte prática, tentaremos exibir a palavra "Hello" 10 vezes. Nas tarefas a seguir, analisaremos essa construção com mais detalhes.

loop
for
Um loop for é um meio de percorrer ações repetidas. Vamos dar uma olhada em como isso funciona.

A execução do loop for consiste nas seguintes etapas: 
1. configuração do valor inicial da variável do loop (contador);
2. verificando condições para continuar o loop;
3. execução de uma etapa (corpo do loop); 
4. alterando o valor da variável do loop.
Além disso, as etapas 2 a 4 são repetidas até que a condição & nbsp; na 2ª etapa se torne falsa. Assim que a condição se tornar falsa, o loop termina e a instrução seguinte à instrução de loop for.
é executada.

Vamos retornar à forma geral da instrução de loop e analisar todas as partes com mais detalhes.
for (/*expressão1*/; /*expressão2*/; /*expressão3*/ ) {       /*uma instrução ou bloco de instruções - corpo do loop*/; }

Expressão 1 responsável por definir o valor inicial da variável do loop (contador), termina com ponto e vírgula

Por exemplo,

1)i=0;    // Atribui o valor inicial igual a zero à variável do loop i.
                 // Com esta notação, a variável i deve ser declarada antes do loop.

2) int i=0; //  A variável i pode ser declarada diretamente no cabeçalho do loop, mas
                     // neste caso, após o loop ser apagado da memória

3) ;    // Nenhuma inicialização e declaração da variável de ciclo,
          //  neste caso, pode ser definido antes do loop.


Expressão 2 é a condição de continuação do loop para que é testada como verdadeira.

i<=10  // O loop será executado enquanto a variável i for menor ou igual a 10. A condição pode ser qualquer coisa.
 

Expressão 3 altera o valor da variável do contador. Sem esse valor, o loop será considerado infinito.

i++  // A variável será incrementada em 1 a cada passo.
 

Se houver uma instrução no corpo do loop

Se houver apenas uma instrução no corpo do loop, os parênteses podem ser omitidos.

Ciclo para -recursos

Pode haver várias declarações separadas por vírgulas em cada parte do cabeçalho.
 
Exemplo
para ( i = 0, x = 1.; i < 10; i += 2, x *= 0,1 ) { ... } Neste caso, utilizamos duas variáveis ​​que irão mudar após a execução do corpo do loop - são as variáveis ​​i e x. A variável i muda nas etapas 2: i += 2 é um atalho para i = i + 2. A variável x aumenta em 0,1 vezes a cada passo x = x * 0,1, x *= 0,1 para abreviar.

Repetir N vezes

Todos os programas com um loop for que escrevemos até agora não podem ser chamados de universais. Porque nós mesmos definimos o número de repetições do corpo do loop. Mas e se o número de repetições depender de algum outro valor? Por exemplo, o próprio usuário deseja definir o número de repetições do ciclo.
O que fazer neste caso? Tudo é muito simples. Em vez de valores iniciais e finais numéricos, podemos usar quaisquer variáveis ​​que possam ser calculadas ou definidas pelo usuário.

Por exemplo, precisamos exibir os quadrados dos números de 1 a N, onde o valor da variável N é inserido no teclado por o usuário.
O programa ficará assim:
  #include <iostream> usando namespace std; principal() { int i,N; // em colisão; variável de loop, N - o número máximo para o qual calculamos o quadrado cin>> N; for ( i = 1; i <= N; i ++) // loop: para todo i de 1 a N. A variável i assumirá sequencialmente os valores de 1 a N { cout << "Número quadrado "<<i<<" é" <<i*i<<"\n"; // Emitindo o quadrado de um número em um formato específico e movendo para uma nova linha } } Ao entrar no loop, a instrução i = 1 é executada e, em seguida, a variável i é incrementada em um a cada etapa (i ++ ). O loop é executado enquanto a condição i <= N for verdadeira. No corpo do loop, a única instrução de saída imprime o próprio número e seu quadrado na tela de acordo com o formato especificado.
Para elevar ao quadrado ou outros expoentes baixos, é melhor usar a multiplicação.

Execute o programa e veja o resultado de seu trabalho com diferentes valores da variável N.