Aula 14
Ciclo de Repetição
Comandos
de repetição – Repeat until (repetir…até) |
||
|
|
|
|
Repeat until (repita até) O comando repeat executa repetidamente uma
sequência de comandos "até" (until) que
uma dada condição seja verdadeira Sintaxe: repeat <comando1>; <comando2>; <comando3>; until <condição>; Observação: este comando não
precisa de begin
(início) e end (fim) para demarcar o corpo da
repetição |
repeat seqüência A de comandos; until condição; repeat - until - são palavras-chaves condição - é uma expressão lógica Nesta estrutura, a seqüência
A de comandos será repetida até que a condição se torne verdadeira. Quando isto ocorrer, a repetição é
interrompida e a sequência de comandos, que estiver logo após a estrutura,
passa a ser executada. Como o until é um
delimitador, não é necessário colocar-se um ponto-e-vírgula (;) após o
comando que o precede. |
|
|
|
|
A) Altera o funcionamento do programa para que comece no nº 5; program
repeatUntilLoop; var a: integer; begin a := 10; repeat writeln('value
of a: ', a); a := a + 1 until a = 20; end. |
B) Explica o funcionamento
do programa program Historia_2; uses crt; var Resp
: char; begin clrscr; repeat writeln
('Era uma vez um bolo inglês...'); writeln
('Quer que eu conte outra vez? [S]im ou [N]ão '); readln (Resp); until (Resp
= 'N') or (Resp = 'n'); writeln
('Adeus...'); end. |
|
C) Compila o seguinte programa e descreve, por palavras tuas o seu
funcionamento program tabuada; uses CRT; var num:real; cont:integer; begin repeat clrscr; write('Digite um número para ver sua tabuada de
multiplicação '); read(num); cont:=0; while
cont<10 do
{temos aqui uma repetição dentro de outra} begin writeln(num:4:2,'
x ',cont,' = ',(num*cont):6:2); cont:=cont+1; {a cada repetição o cont
aumenta +1} end; readkey;
{parada para ver o resultado até ser teclado algo} until
num=0; {condição para parar a repetição principal} clrscr; write('Foi
digitado o número 0! programa encerrado!'); readkey; end. |
D) Compila o seguinte programa e descreve, por palavras tuas o seu
funcionamento program xxxx; uses crt; VAR rpta : char; n,i
: integer; BEGIN rpta:='S'; Repeat Write('Ingrese
n : '); readln(n); i:=1; Repeat Writeln(i:3,'corresponde',i*2:10,i*3:10); i:=i+1 Until i>n; Write('Desea continuar [S] Si, [N] No
: '); Readln(rpta) Until (rpta<>'s')
and (rpta<>'S') END. |
|
|
|
|
Prova da importância de “alinhar os programas no compilador” |
|
|
program ex1; // 33 linhas uses crt; var a, b : real; oper : string[1]; valido : boolean;
begin writeln('CALCULADORA SIMPLES'); write('Valor 1: '); readln(a); repeat write('Operador (+, -, /, *): '); readln(oper);
until (oper='+')
or (oper='-') or (oper='/')
or (oper='*'); repeat write('Valor 2: '); readln(b); if (oper='/')
and (b=0) then begin valido := false;
writeln('ERRO! Divisao por zero!'); end else valido := true; until valido; write('Resultado: '); if (oper='+')
then writeln(a+b:0:10) else begin if (oper='-')
then writeln(a-b:0:10) else begin if (oper='*')
then writeln(a*b:0:10) else writeln(a/b:0:10); end; end; write('Prima ENTER para fechar...'); readln; end. |
D) Compila o seguinte
programa e descreve, por palavras tuas o seu funcionamento program ex1; // 33 linhas uses crt; var a, b : real; oper : string[1]; valido : boolean;
begin writeln('CALCULADORA
SIMPLES'); write('Valor 1: '); readln(a);
repeat write('Operador (+, -, /, *): '); readln(oper); until (oper='+')
or (oper='-') or (oper='/')
or (oper='*'); repeat write('Valor 2: '); readln(b);
if (oper='/') and (b=0) then begin valido := false; writeln('ERRO! Divisao
por zero!'); end else valido := true; until valido;
write('Resultado:
'); if (oper='+') then writeln(a+b:0:10)
else begin if (oper='-') then writeln(a-b:0:10)
else begin if (oper='*') then writeln(a*b:0:10)
else writeln(a/b:0:10); end; end; write('Prima ENTER para fechar...'); readln; end. |
ENVIAR AO
PROFESSOR (PROFCARLOS2006@gmail.com) A) Altera o
funcionamento do programa para que comece no nº 5; B) Explica o
funcionamento do programa; B1) Explica porque razão
do código (Resp = 'S') or (Resp = 's') C) Altera o programa de forma a
que o nº 7 possa ser qualquer nº digitado pelo utilizador. D) Compila o seguinte programa e descreve, por
palavras tuas o seu funcionamento D) Compila o seguinte programa e descreve, por palavras
tuas o seu funcionamento |
Spanish never hurt Comandos
de repetição – Repeat until (repetir…até) mais sobre repeat |
||
|
|
|
|
Spanish never hurt Escreve o enunciado do programa. PROGRAM EJER49;
USES CRT;
VAR respuesta:CHAR; BEGIN ClrScr; REPEAT WRITELN ('DESEA CONTINUAR: S/N ');
READLN (respuesta); UNTIL respuesta='N'; END.
|
Escreve o enunciado do programa 1. PROGRAM EJER50; 2. USES CRT; 3. 4. VAR tiempo:REAL; 5. VAR cap_ini,cap_fin:REAL; 6. CONST interes = 0.05; 7. BEGIN 8. ClrScr; 9. 10. WRITE ('Intruduzca
el capital para calcular cuanto tardara '); 11. WRITE ('en duplicarse, con un interes del
5%: '); 12. 13. READLN (cap_ini); 14. WRITELN (''); 15. 16. IF cap_ini
< 0 THEN 17. BEGIN 18. WRITE ('No se puede incluir un capital
negativo'); 19. EXIT; 20. END; 21. 22. tiempo:=0; 23. cap_fin:= cap_ini; 24. 25. REPEAT 26. cap_fin:=cap_fin + (cap_fin * interes); 27. tiempo:= tiempo + 1; 28.
UNTIL cap_fin > (cap_ini
* 2); 29. 30. WRITELN
('Tardara',tiempo:3:0,' años en
duplicarse'); 31.
WRITELN ('Capital final: ',cap_fin:5:2,' pts'); 32.END. |
|
|
PROGRAM EJER50; USES CRT; VAR cap_ini,cap_fin:REAL; VAR num_year:INTEGER; const
INTERES=0.05; BEGIN ClrScr; num_year:=0; WRITE('Capital inicial -----: ');
READLN(cap_ini); cap_fin:=cap_ini; WHILE cap_fin
< (cap_ini*2) DO BEGIN cap_fin:=cap_fin+(cap_fin*interes); num_year:=num_year + 1; END; WRITE('Capital inicial -----: ');
WRITELN(cap_ini:5:2); WRITE('Capital final
-------: '); WRITELN(cap_fin:5:2); WRITE('Capital duplicado en '); WRITE(num_year); WRITE (' años'); END. |
|
|
|