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 o comando 10 vezes writeln('HELLO');
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 possa escolher quantas vezes deseja exibir as informações na tela?
Para lidar com essa tarefa, podemos usar 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.
Na linguagem de programação Pascal, existem dois tipos de loops: um loop com uma variável (for) e um loop com uma condição (while)
Vamos começar nosso conhecimento dos ciclos do primeiro tipo.
LOOP COM VARIÁVEL OU COM NÚMERO CONHECIDO DE PASSOS (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 (número de vezes) - ou seja, podemos especificar o número exato de repetições.
É 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.
Na linguagem de programação Pascal, não existe essa construção, mas existe uma construção para.
A forma geral da instrução de loop for é a seguinte:
para *start value* to *end value* faça
começar
/*uma instrução ou bloco de instruções - corpo do loop*/;
fim;
Esta construção exige que
1. alocou explicitamente uma célula de memória, que será um contador, e defina seu valor inicial
2. Especifique como o valor nesta célula será alterado.
3. foi escrita uma condição sob a qual o corpo do loop será executado
Na parte prática, tentaremos exibir a palavra Hello 10 vezes. Nas tarefas a seguir, analisaremos essa construção com mais detalhes.
|
Um loop for é um meio de percorrer ações repetidas. Vamos dar uma olhada em como isso funciona.
Normalmente, as partes de um loop for executam as seguintes etapas:
1. Defina o valor inicial.
2. Definir o passo com o qual a variável do loop mudará
3. Configurando o valor final.
3. Execute ações de loop.
4. Atualize o(s) valor(es) usado(s) no teste.
e então as etapas 2-4 são repetidas até que a condição seja satisfeita. Assim que a condição se tornar falsa, o loop termina e a instrução após a instrução do loop for é executada.
Vamos retornar à forma geral da instrução de loop e analisar com mais detalhes todas as partes
for *set initial value to variable* to/downto *end value* comece
/*uma instrução ou bloco de instruções - corpo do loop*/;
fim;
Definindo uma variável para um valor inicial
é responsável por definir o valor inicial da variável do ciclo (contador), NÃO é destacado com colchetes ou qualquer outra coisa
Por exemplo :
i := 0; //a variável do ciclo i recebe o valor inicial igual a zero. Com tal registro,
//variável i deve ser declarada antes do loop
para/para baixo
Esta é a etapa na qual a variável usada no loop será alterada. Se escrevermos para, a cada iteração o valor da variável aumentará em 1, se para baixo - diminua em 1
Valor final
é o último valor no qual o corpo do loop ainda será executado. Por exemplo, se definirmos o último valor como 100, em 100 nosso loop ainda será executado e em 101 não.
Vamos praticar escrevendo o título do loop for
|
A cabeça de um loop for em Pascal consiste em várias partes:
1) a palavra para
2) qual variável e qual valor estamos atribuindo. Neste programa, é b := 1, ou seja, atribuímos o valor 1 a b.
3) a palavra to ou downto, que indica a etapa com a qual o loop é executado. Se escrevermos para, a variável aumentará em 1 a cada iteração, se for para baixo, diminuirá em 1.
4) valor final da variável
5) palavra do
6) a palavra begin (pode ser omitida se houver apenas uma linha no corpo do loop, caso contrário, deve ser escrita. Se você não escrever begin, apenas a primeira linha será ser executado a partir de todo o corpo do loop). Não vamos esquecer depois do corpo do loop, se escrevermos a palavra begin, escreva a palavra end; !
|
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 é digitado no teclado pelo usuário.
O programa ficará assim:
var i, n :inteiro; // em colisão; variável de loop, n - o número máximo para o qual calculamos o quadrado
começar
ler(n); // insere n do teclado
for i := 1 to n do // loop: for all i from 1 to n - variável i assumirá sequencialmente valores de 1 a n
writeln('Kvadrat chisla ', i, ' raven ', i * i); // Emitindo o quadrado de um número em um formato específico e movendo para uma nova linha
fim.
Ao entrar no loop, a instrução i := 1 é executada e, em seguida, a variável i é incrementada em um (to) a cada etapa. 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.
|