12/16/12
Estruturas de Repetição
Slides adaptados de Ana Luisa
Tipos de estrutura de repetição
n 
n 
n 
For – usada quando se sabe previamente a quan3dade de repe3ções; While – repete enquanto a condição é verdadeira. Testa a condição no inicio Repeat – repete até que a condição seja verdadeira. Testa a condição no fim 1
12/16/12
For i:=inicio to fim Do Bloco
Como realiza: n  inicializa i com o valor do inicio n  Executa o bloco n  Retorna ao For n  Soma 1 a variável i e verifica se é maior que fim n  Repete o processo n  i é uma variável inteira n  Inicio e fim são variáveis ou constantes inteiras Elabore um programa Pascal que leia 10 valores e determine a sua média.
Program cmedia ; var x,soma,media:real; j:integer; Begin soma:=0; for j:= 1 to 10 do begin write('Digite um valor '); readln(x); soma:=soma+x; end; media:=soma/10; writeln('A media é ', media:0:2); End. Variável acumuladora
2
12/16/12
Repita o exercício anterior para “n” valores
Program cmedian ; var x,soma,media:real; j,n:integer; Begin soma:=0; write('Digite a quan3dade de valores ');readln(n); for j:= 1 to n do begin write('Digite um valor ');readln(x); soma:=soma+x; end; media:=soma/n; writeln('A media é ', media:0:2); End. Elabore um programa Pascal que leia 10 valores e determine o maior
Program MaiorDe10 ; var x,maior:real; cont:integer; Begin {usando o comando For} For cont:= 1 to 10 do begin write('digite um valor '); readln(x); If (i = 1) then Maior := x else if x > maior then maior:=x; end; write('O maior é ',maior:0:2); End. 3
12/16/12
Exercício
n 
n 
n 
n 
Elabore um programa que leia a altura e o sexo (masculino,feminino) de 5 pessoas. Calcule: O número de homens A média de altura das mulheres; A maior e a menor altura do grupo; n 
Dica: Faça por partes. Primeiro só calcule o número de homens e vê se funciona, depois faz a média de altura das mulheres, e por fim a maior e menor altura. Como determinar o maior e o menor
n 
n 
n 
Atribuir um valor inicial ao maior e ao menor. Qual? Ler a altura e perguntar: A altura lida é maior que o mais alto até o momento? Se não, é menor que o mais baixo? Alterar os limites se for o caso 4
12/16/12
Program Homens_e_mulheres ; var altura,somaF,maior,menor:real; sexo: char; i,contM,contF:integer; Begin contM := 0; contF := 0; somaF := 0; maior := 0; menor := 5; for i:= 1 to 5 do begin writeln('Digite a altura da pessoa ',i); readln(altura); writeln('Digite o sexo da pessoa ',i); readln(sexo); if (sexo = 'M') then begin contM := contM + 1; //variavel contadora writeln('contM atÈ o momento: ',contM); end else //feminino begin contF := contF + 1; writeln('contF atÈ o momento: ',contF); somaF := somaF + altura; writeln('somaF atÈ o momento: ',somaF); end; writeln('maior atÈ o momento: ',maior); writeln('menor atÈ o momento: ',menor); if (altura > maior) then maior := altura; if (altura < menor) then menor := altura; end; writeln('O numero de homens È: ',contM); somaF := somaF/contF; writeln('A mÈdia das alturas das mulheres È:',somaF); writeln('A maior altura È: ',maior); writeln('A menor altura È: ',menor); End. Exercício
n 
Faça um programa que leia 10 numeros inteiros e calcule: n 
o numero de pares n 
media dos números maiores que 5 n 
o maior número 5
12/16/12
Program Pares_maior_media ; var i,num,maior,contP,cont5:integer; soma5:real; Begin contP := 0; cont5 := 0; soma5 := 0; for i:= 1 to 10 do begin writeln('Digite o numero ',i); readln(num); if (i = 1) then //primeira iteracao maior := num else if (num > maior) then maior := num; if (num mod 2 = 0) then contP := contP + 1; if (num > 5) then begin cont5 := cont5 + 1; soma5 := soma5 + num; end; end; soma5 := soma5/cont5 Exercício
n 
Elabore um programa Pascal que calcule e escreva a seguinte soma: n 
S= 21
+ 22
50
49
+...+
250
1
6
12/16/12
Program Serie ; var i,den:integer; soma,num : real; Begin soma := 0; for i:= 1 to 50 do begin num := exp(i*ln(2)); den := 51 – i; writeln('num/den: ',num,'/',den); soma := soma + num/den; end; writeln(soma); End. Exercicio
n 
Elabore um programa Pascal que calcule e escreva a seguinte soma: n 
S= 37x38
1
+
36x37 +...+
2
1x2
37
7
12/16/12
Program Serie ; var i,den:integer; soma,num : real; Begin soma := 0; for i:= 1 to 37 do begin num := i * (i+1); den := 38 -­‐ i; writeln('num/den: ',num,'/',den); soma := soma + num/den; end; writeln(soma); End. Exercício
•  Faça um programa que leia uma frase e conte o numero de letras 'a’ Program Frase ;
var
frase,letra: string;
contA,tam,i :integer;
Begin
contA := 0;
writeln('ʹDigite uma frase'ʹ);
readln(frase);
tam := length(frase);
for i:= 1 to tam do
begin
letra := copy(frase,i,1);
if (letra = 'ʹa'ʹ) then
contA := contA + 1; end;
writeln('ʹnumero de a:'ʹ,contA);
End.
8
12/16/12
Exemplo -­‐‑ Clrcr
•  Faça um programa que leia 10 pessoas e seu respec3vos estado civil e conte o número de pessoas casadas Program Casados ;
readln(idade);
var
writeln('ʹDigite o estado civil da idade,i,contC:integer;
pessoa 'ʹ,i,'ʹ:'ʹ);
estado: char; //C,S,V,D
readln(estado);
Begin
if (estado = 'ʹC'ʹ) then
contC := 0;
contC := contC + 1;
for i:= 1 to 10 do
end;
begin writeln('ʹTotal de casadas:'ʹ,contC);
clrscr;
End.
writeln('ʹDigite a idade da pessoa 'ʹ,i,'ʹ:'ʹ); Exemplo -­‐‑ Readkey
•  Faça um programa que some a série 1 + 1/2 + 1/3 + 1/4 .... 1/50 Program Soma ;
var
soma:real;
i:integer;
Begin
soma := 0;
for i:= 1 to 50 do
begin
writeln(1,'ʹ/'ʹ,i);
readkey;
soma := soma + 1/I;
end;
writeln(soma);
End.
9
12/16/12
Exemplo -­‐‑ Break
•  Faça um programa que verifique se um número é primo Program Primo ;
var
num,i:integer;
Begin
writeln('ʹDigite um numero:'ʹ);
readln(num);
for i:= 2 to num-­‐‑1 do
begin
writeln(i);
if (num mod i = 0) then
begin writeln(i);
break;
end; end;
writeln('ʹultimo:'ʹ,i);
if (i = num) then
writeln('ʹ… primo’)
else
writeln(’Não é primo'ʹ); End.
10
Download

Estruturas de Repetição