EQUIPE AUXILIAR
Tese: EQUIPE AUXILIAR. Pesquise 861.000+ trabalhos acadêmicosPor: jean123123 • 22/10/2014 • Tese • 1.331 Palavras (6 Páginas) • 231 Visualizações
3.10 COMANDO DE REPETIÇÃO WHILE
O comando WHILE faz com que um comando seja executado enquanto a expressão de controle permanecer verdadeira ( TRUE ).
Sintaxe :
while expressao do
comando;
ou
while <condição> do
begin
<comando-1>;
<comando-2>;
...
<comando-n>
end
Se o comando while controlar um comando composto (seqüência de comandos delimitados por um begin e um end.)
A expressão que controla a repetição deverá ser do tipo boolean, sendo a mesma avaliada antes que o comando do laço seja executado. Isto quer dizer que, se logo no início o resultado da expressão for FALSE, o laço não será executado nenhuma vez.
Conforme esboçado acima, inicialmente é testado o valor de <condição>. Se ela for verdadeira, então são executados os comandos <comando-1>; <comando-2>; ... <comando-n> contidos no comando composto controlado pelo comando while (ou apenas o <comando>, se o comando while controlar apenas a execução de um comando simples). Depois testa-se novamente o valor de <condição>. Se esta continuar ainda verdadeira, então a seqüência de comandos acima é novamente executada e assim sucessivamente, até que <condição> seja falsa.
Observe que a <condição> é sempre testada antes dos comandos controlados serem executados. Se na primeira vez ela já for falsa, então os comandos controlados não chegam a ser executados nenhuma vez. Observe também que para terminar a execução do comando while, em algum momento, através de algum dos efeitos causados pela execução dos n comandos, a <condição> deve-se tornar falsa. Caso contrário, o processo de repetição ocorrerá indefinidamente e a execução do programa, no qual encontra-se inserido o comando while, não termina. Se seu programa estiver correto, você pode assumir que a <condição> negada é válida após a execução do comando while.
Por exemplo, o programa abaixo não vai terminar nunca:
program Loop;
var i: integer;
begin
i := 1;
while i <> 10 do
begin
writeln (i);
i := i + 2
end;
end.
O que há de errado com o trecho de programa acima?
EXEMPLO
program TesteWhile;
var I, J : integer;
BEGIN
I := 0;
while I < 5 do
I := I + 1;
writeln( I );
J := 0;
while J < 5 do
begin
J := J + 1;
writeln( J );
end;
END.
EXEMPLO
Suponha que precisássemos calcular o produto de dois números inteiros x e y sem utilizarmos o operador de multiplicação. Poderíamos fazer isto somando y vezes o valor de x. Desta forma utilizaríamos repetidamente a função de soma para implementar uma função mais complexa multiplicação:
program multiplicacao;
var x, y, produto, auxiliar: integer;
begin
readln(x, y);
produto:= 0;
auxiliar:= y;
while auxiliar > 0 do
begin
produto:= produto + x;
auxiliar:= auxiliar - 1
end;
writeln(produto)
end.
Após o término da execução do comando while (auxiliar = 0), teremos produto = x*y, como desejávamos.
3.11 COMANDO DE REPETIÇÃO REPEAT – UNTIL
O comando repeat possui a seguinte sintaxe:
repeat
<comando-1>;
<comando-2>;
...
<comando-n>
until <condição>
O comando repeat age de forma muito parecida com a do comando while. A principal diferença é que aqui os comandos são executados antes de se testar o valor de <condição>. Assim, a seqüência de comandos <comando-1>; <comando-2>; ...; <comando-n> é executada pelo menos uma vez, independentemente do valor inicial da condição.
Outro fato a ser mencionado é que o comando repeat, ao contrário do comando while, admite uma seqüência de comandos entre as palavras chaves repeat e until, não havendo, portanto, necessidade de delimitar a seqüência a ser controlada pelo comando repeat por um begin e um end.
A seqüência de comandos controlada, portanto, é executada pelo menos uma vez sendo o processo repetitivo interrompido quando a avaliação da <condição>, ao final de uma execução da seqüência de comandos controlada, for verdadeira. Quando termina a execução do comando repeat, você pode assumir que a <condição> é verdadeira.
A figura abaixo ilustra o fluxo de controle do comando repeat:
EXEMPLO
Considere o seguinte trecho de programa:
i = 1;
while i <= 5 do
...