TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Informatica Repetição com teste no final

Tese: Informatica Repetição com teste no final. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  2/12/2013  •  Tese  •  822 Palavras (4 Páginas)  •  314 Visualizações

Página 1 de 4

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;

...

Baixar como (para membros premium)  txt (5.4 Kb)  
Continuar por mais 3 páginas »
Disponível apenas no TrabalhosGratuitos.com