Curso Técnico em Informática La Salle - Canoas Programação e Algoritmo - Pascal Comandos de Repetição Prof. Valter N. Silva [email protected] (0XX) (51) 9991-5369 necessidade de repetir um determinado bloco de comandos; laço (looping); Ao invés de repetir 150 vezes o comando de leitura e soma, utilizamos comandos de repetição e criamos um laço no bloco de comandos. Comandos de repetição do PASCAL: - Condicional: repetem o bloco de comandos conforme a condição especificada. while..do repeat..until - Contada: repete o bloco de comandos um número determinado de vezes. for..do WHILE..DO (enquanto..faça) Sintaxe: while < condição > do begin comandos; end; WHILE..DO X Soma Valor 1 2 3 4 0 12 15 20 12 3 5 3 ... ... ... 150 151 672 2 WHILE..DO Atenção !!! - enquanto a condição for verdadeira, o bloco de comandos é executado; - é necessário incluir begin e end para especificar o bloco de comandos pertencente ao comando While; - se a condição for falsa, o bloco de comandos não é executado; - verificar se é necessário inicializar a variável que está na condição. WHILE..DO Exercício 1 Escreva um programa que leia um número indeterminado de valores inteiros e positivos e calcula a raiz quadrada de cada um deles. Program exemplo_while; Var num : integer; Begin write(‘Digite um valor: ‘); readln(num); while num >= 0 do begin writeln(‘Raiz quadrada de ‘, num, ‘eh: ‘, sqrt(num):2:2); write(‘Digite um valor: ‘); readln(num); end; End. WHILE..DO Exercício 2 Escreva um programa que leia um número indeterminado de valores inteiros e positivos e calcula a soma daqueles valores que são primos. Obs.: Valor primo é aquele que somente é divisível por 1 e por ele mesmo. REPEAT..UNTIL (repita..até que) Sintaxe: repeat comandos; until < condição >; REPEAT..UNTIL X Soma Valor 1 2 3 4 0 12 15 20 12 3 5 3 ... ... ... 150 151 672 2 REPEAT..UNTIL Atenção !!! - repete o bloco de comandos até que a condição seja verdadeira; - não é necessário incluir begin e end para especificar o bloco de comandos pertencente ao comando repeat; - como a condição é testada somente no final do comando, o bloco de comandos do repeat é executado pelo menos uma vez. REPEAT..UNTIL Exercício 1 Escreva um programa que leia um número indeterminado de valores inteiros e positivos e calcula a raiz quadrada de cada um deles. Program exemplo_repeat; Var num : integer; Begin repeat write(‘Digite um valor: ‘); readln(num); if num > 0 then writeln(‘Raiz quadrada de’, num, ‘eh: ‘, sqrt(num):2:2); until num < 0; End. FOR..DO (para..faça) Sintaxe: for variável := vi to vf do begin comandos; end; variável = variável contadora que controla o número de repetições. Esta variável deve ser do tipo inteiro. vi = valor inicial to = até vf = valor final FOR..DO (para..faça) Sintaxe: for variável := vf downto vi do begin comandos; variável = variável contadora que controla o número de repetições. Esta variável deve ser do tipo inteiro. vf = valor final end; downto = decrescente vi = valor inicial FOR..DO Atenção !!! - repete o bloco de comandos de valor inicial até valor final; - é necessário incluir begin e end para especificar o bloco de comandos pertencente ao comando for; - a variável contadora não deve ser inicializada. Isto ocorre automaticamente, pois ela recebe o valor definido em valor inicial; FOR..DO Atenção !!! - a variável contadora é controlada automaticamente pelo comando for. Não devemos alterar o valor desta variável durante a execução do for; - o próprio comando for testa a variável contadora e encerra a sua execução quando esta variável tiver o valor > que o valor final definido; FOR..DO FOR..DO Exercício 1 Escreva um programa que leia 15 valores inteiros e calcula a raiz quadrada de cada um deles. Programa exemplo_for; Var X, num : integer; Begin For X := 1 to 15 do begin write(‘Digite um valor: ‘); readln(num); writeln(‘Raiz quadrada de’, num, ‘eh: ‘, sqrt(num):2:2); end; End. EXERCÍCIOS Escreva um programa que leia um número indeterminado devalores inteiros e positivos e conta quantos positivos e quantos negativos o usuário informou. No final escreva os contadorescom mensagens adequadas. (uma versão com while e outra com repeat). 1. 2. Escreva um programa que leia um valor inteiro qualquer e calcula o seu fatorial (5! = 5x4x3x2x1)