Informatica Repetição com teste no final
Tese: Informatica Repetição com teste no final. Pesquise 862.000+ trabalhos acadêmicosPor: HOLYGAN • 2/12/2013 • Tese • 822 Palavras (4 Páginas) • 314 Visualizações
Um contador é uma variável do tipo inteiro que deve receber inicialmente (antes do laço) o valor 1 e dentro do laço (no final dele) deve ser incrementada em 1, ou seja, adicionar o valor 1 ao conteúdo da própria variável. A condição para interromper o laço será: contador número de repetições.
Exemplo: este programa lê um conjunto 100 números inteiros e exibe a soma dos mesmos.
program LACO_CONTADO;
var
NUM,SOMA,CONT : integer;
begin
SOMA := 0; CONT := 1;
while CONT <= 100 do begin
write('Digite um número inteiro: ');
readln(NUM);
SOMA := SOMA + NUM;
end;
writeln('A soma é ',SOMA);
end.
Controle por entrada (flag)
Quando não conhecemos o número de repetições e este for determinado por um valor que será lido (que chamamos de flag), devemos utilizar um controle de repetições por entrada, também conhecido como controle por sentinela.
Para controle por flag, a melhor estratégia é utilizar um "loop infinito" com a condição de parada sendo aplicada através do comando BREAK, dentro de um comando IF logo após a leitura da variável a ser comparada com o flag.
Obs: o comando BREAK funciona com uma "saída forçada" de qualquer comando de repetição. Porém, só é recomendado o seu uso dentro de um "loop infinito", senão pode quebrar a forma estruturada que é própria dos comandos de repetição.
Exemplo: este programa lê um conjunto de números inteiros e exiba o valor médio dos mesmos. Obs: a condição de saída do laço será a leitura do valor 0 (flag).
program LACO_COM_FLAG;
var
NUM,CONT,SOMA,MEDIA : integer;
begin
SOMA := 0; CONT := 0;
while TRUE do {loop infinito}
begin
write('Digite um número inteiro (0 para encerrar): ');
readln(NUM);
if NUM = 0 then
break;
SOMA := SOMA + NUM; CONT := CONT + 1;
end;
MEDIA := SOMA div CONT; Writeln('Média = ',MEDIA);
end.
Repetição com teste no final ( repeat-until )
A estrutura de controle REPEAT permite que um comando simples ou composto seja executado repetidamente até que uma condição de controle seja FALSA. A forma geral do REPEAT é:
REPEAT <comando> UNTIL <condição>
A <condição> deve ser uma expressão lógica. O <comando> pode ser um comando simples ou um comando composto. Não há a necessidade dos delimitadores BEGIN e END no comando composto em um REPEAT.
Como o teste da <condição> é realizado no final do laço, o <comando> será executado uma ou mais vezes, dependendo da avaliação da <condição>.
Exemplo:
program EXEMPLO_DE_REPEAT;
{escrever os núm. inteiros de 1 a 100}
var
N : Integer;
begin
N := 1;
repeat
writeln(N); N := N + 1
until N > 100
end.
O exemplo anterior é equivalente ao exemplo do WHILE, onde o comando WRITELN será executado repetidas vezes até que a variável N possua um valor superior a 100.
A estrutura REPEAT também é bastante utilizada para repetirmos um programa diversas vezes, até que o usuário deseje sair do mesmo.
Exemplo:
program EXEMPLO_DE_REPEAT_2;
{calcula a média de 2 números dados repetidas vezes}
uses
CRT;
var
N1,N2,MEDIA : real;
RESP : char;
begin
clrscr;
repeat
write('Digite os dois números: ');
readln (N1,N2); MEDIA := (N1+N2)/2;
writeln (MEDIA);
write ('Deseja repetir o programa (s/n)? ');
RESP := readkey;
...