6.2 Repetição ou Ciclos
Em programação, uma sequência de instruções executada repetitivamente é chamada
de ciclo. Um ciclo...
A instrução "repeat" permite especificar a execução repetitiva de uma sequência
de instruções até que certa expressão do t...
Exemplo correcto de utilização de um FOR :
Program ForExemplo;
VAR
valor : integer;
Begin
For valor := 1 to 10 do
Begin
Wr...
Próximos SlideShares
Carregando em…5
×

Instruçao repeat

93 visualizações

Publicada em

para pascal

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
93
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Instruçao repeat

  1. 1. 6.2 Repetição ou Ciclos Em programação, uma sequência de instruções executada repetitivamente é chamada de ciclo. Um ciclo é constituído por uma sequência de instruções, o corpo do ciclo, e por uma estrutura que controla a execução dessas instruções, especificando quantas vezes o ciclo deve ser executado. Cada vez que as instruções que constituem o corpo do ciclo são executadas, dizemos que se efectuou uma passagem pelo ciclo. As instruções que constituem o corpo do ciclo podem ser executadas qualquer número de vezes (eventualmente nenhuma), mas este número tem de ser finito. Há erros de semântica que podem levar a execução interminável do corpo do ciclo, criando um ciclo infinito. Neste webfolio, apresentaremos três instruções: "while", "repeat" e "for". "WHILE" A instrução "while" permite especificar a execução repetitiva de uma instrução enquanto uma determinada expressão do tipo lógico tiver o valor verdadeiro. Na definição sintáctica da instrução "while", instrução representa qualquer instrução de Pascal e expressão representa uma expressão do tipo lógico. A semântica da instrução "while" é a seguinte: Ao encontrar a instrução "while <cond> do <inst>", o computador calcula o valor de cond. Se o seu valor for "true", o computador efectua uma passagem pelo ciclo, executando a instrução inst. Em seguida volta a calcular o valor de cond e o processo repete-se enquanto o valor da cond for "true". Quando o valor de cond for "false", a execução do ciclo termina. A instrução que constitui o corpo do ciclo deve modificar o valor da expressão que controla a execução do ciclo, caso contrário, o ciclo pode nunca terminar. Exemplo de um programa que soma uma sequência de números inteiros. O fim da sequência é determinado por um número negativo: Program SomadeInteiros ; var Soma, Numero : integer; procedure Pergunte; begin writeln ('Escreva um número inteiro'); writeln ('Um número negativo termina a execução') end; {pergunte} Begin Soma := 0; Pergunte; readln (Numero); While Numero >= 0 do begin Soma := Soma + Numero; Pergunte; readln (Numero) end; writeln ('A soma é ' , Soma:3) End. "REPEAT"
  2. 2. A instrução "repeat" permite especificar a execução repetitiva de uma sequência de instruções até que certa expressão do tipo lógico tenha o valor verdadeiro. Na definição sintáctica da instrução "repeat", instrução representa qualquer instrução em Pascal e expressão representa uma expressão do tipo lógico. Em oposição à definição sintáctica de "while", a instrução "repeat" permite a especificação de uma sequência de instruções a executar e não apenas de uma instrução. Por esta razão, ao utilizarmos uma instrução "repeat" não necessitamos de recorrer a uma instrução composta, quando o corpo do ciclo tem mais de uma instrução. A razão desta decisão provém do facto de o corpo de ciclo numa instrução "repeat" estar delimitado pelas palavras "repeat" e "until", evitando assim qualquer tipo de ambiguidade quanto à determinação das instruções que pertencem ao corpo do ciclo. A semântica da instrução "repeat" é a seguinte: Ao encontrar a instrução "repeat <instr> until <cond>", o computador começa por executar as instruções que constituem o corpo do ciclo (instr), avaliando depois a expressão cond. Se o seu valor for "false", o corpo do ciclo é executado de novo e o processo repete-se. A execução do ciclo termina quando a cond produzir um valor "true". Importa salientar que a execução do ciclo só termina após uma passagem completa pelo ciclo. Tal como acontece com a instrução "while", de um modo geral, o número de vezes que o corpo de uma instrução "repeat" é executado não pode ser calculado de antemão. Contudo, em oposição à instrução "while", o corpo do ciclo de uma instrução "repeat" é sempre executado pelo menos uma vez, porque a expressão que controla a execução do ciclo só é avaliada no fim do mesmo. Exemplo de um programa com um ciclo "repeat". Program Repeat ; VAR Num:INTEGER ; Begin Num:=100; REPEAT WRITE (Num,' '); Num:=Num-2; UNTIL (Num<1); End. "FOR" Quando se pretende que um conjunto de instruções se repita um número de vezes bem determinado, recorremos à instrução FOR. A sintaxe desta instrução é a seguinte : FOR <variável> := <início> TO <fim> DO A variável de ciclo mantém o número de repetições a efectuar, servindo de contador. Esta variável pode ser qualquer tipo escalar, excepto REAL. De notar que a variável de controlo do FOR nunca deve ser alterada dentro do ciclo, sob pena de se perder por completo o número de execuções e chegarmos a resultados bem diferentes dos pretendidos.
  3. 3. Exemplo correcto de utilização de um FOR : Program ForExemplo; VAR valor : integer; Begin For valor := 1 to 10 do Begin Write ('Quadrado de ',valor,'='); Writeln (valor * valor); End; Readln End. Exemplo incorrecto de utilização de um FOR : Program ForExemplo; VAR valor : integer; Begin For valor := 1 to 10 do Begin Write ('Quadrado de ',valor,'='); Writeln (valor * valor); valor := valor + 1; End; Readln End. Saliente-se que o ciclo FOR pode assumir duas formas distintas de aplicação, isto é, a variável de controlo pode ser incrementada a cada execução, como nos exemplos anteriores, ou pode ser decrementada, sendo que neste caso a sintaxe assume a forma : FOR <variável> := <início> DOWNTO <fim> D

×