Comando FOR

O FOR da linguagem PPL é muito semelhante ao C, porém a forma de incrementar/decrementar a variável var possui argumentos diferentes

Para incrementar a variável var, usamos a seguinte sintaxe:

FOR var FROM início TO m DO 
    comandos 
END;

Define a variável var como início e, enquanto esta variável for igual ou inferior a fim executa a sequência de comandos e, em seguida, adiciona 1 (incremento) a var.

Exemplo:

EXPORT Repeticao1()
BEGIN
    LOCAL i;
    PRINT();
    FOR i FROM 1 TO 10 DO
        PRINT(i+"\n");
    END;
END;

O resultado:



Alterado o passo de incremento

Se desejar alterar o incremento é inserido a diretiva STEP:

EXPORT Repeticao1()
BEGIN
    LOCAL i;
    PRINT();
    FOR i FROM 1 TO 10 STEP 2 DO
        PRINT(i+"\n");
    END;
END;

O resultado:



Comando FOR decrescente

A sintaxe para o FOR na forma decrescente é:

FOR var FROM início DOWNTO fim [STEP incremento] DO
    comandos 
END;

Veja um exemplo:

EXPORT Repeticao2()
BEGIN
    LOCAL i;
    PRINT();
    FOR i FROM 10 DOWNTO 1 STEP 2 DO
        PRINT(i+"\n");
    END;
END;

E a tela resultante:



Outro exemplo:

EXPORT Repeticao()
BEGIN
    LOCAL inicio, fim, cresc, i;
    PRINT();
    INPUT({{inicio, [0], {30, 20, 0}},  {fim, [0], {30, 20, 1}}, {cresc, 1, {30, 20, 2}}}, "Opções do looping", {"Início:", "Fim:", "Crescente?: "},  {"Valor inicial", "Valor Final", "Crescente ou decrescente"});
    
    PRINT("Início: "+ inicio + "\nFim: "+ fim + "\nCrescente: " + cresc+"\n\n");

    IF cresc == 1 THEN
        FOR i FROM inicio TO fim DO
            PRINT(i+"\n");
        END;
    ELSE
        FOR i FROM fim DOWNTO inicio DO
            PRINT(i+"\n");
        END;
    END;
END;

Irá apresentar a tela:



Setando os valores 2 e 8 e deixando desmarcado a caixa "Crescente?":



Atividade

Construa os programas:

  • 1. Faça um programa que leia dois números do teclado, coloque-os em ordem crescente e imprime todos os números no intervalo entre eles.
  • 2. Faça um programa que leia um número \(N\) do teclado e utilizando dois comandos “for” apresente na tela a seguinte matriz, onde \(N\) é o número lido e cada elemento da matriz é o resultado da operação indicada:
    \(N + 1\) \(N + 2\) \(N + 3\) \(N + 4\)
    \(N + 2\) \(N + 3\) \(N + 4\) \(N + 5\)
    \(N + 3\) \(N + 4\) \(N + 5\) \(N + 6\)
    \(N + 4\) \(N + 5\) \(N + 6\) \(N + 7\)

    Por exemplo, se for digitado o número 10, deverá aparecer a tabela abaixo:

    11 12 13 14
    12 13 14 15
    13 14 15 16
    14 15 16 17