9 estrutura for - letícia duboc · ler$aalturae$perguntar:$a$alturalidaé$maior$que$o$...
TRANSCRIPT
12/16/12
1
Estruturas de Repetição
Slides adaptados de Ana Luisa
Tipos de estrutura de repetição n For – usada quando se sabe previamente a quan3dade de repe3ções;
n While – repete enquanto a condição é verdadeira. Testa a condição no inicio
n Repeat – repete até que a condição seja verdadeira. Testa a condição no fim
12/16/12
2
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
12/16/12
3
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.
12/16/12
4
Exercício n Elabore um programa que leia a altura e o sexo (masculino,feminino) de 5 pessoas. Calcule:
n O número de homens n A média de altura das mulheres; n 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 Atribuir um valor inicial ao maior e ao menor. Qual? n Ler a altura e perguntar: A altura lida é maior que o mais alto até o momento? Se não, é menor que o mais baixo?
n Alterar os limites se for o caso
12/16/12
5
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.
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
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
12/16/12
6
if (num > 5) then begin cont5 := cont5 + 1;
soma5 := soma5 + num;
end; end; soma5 := soma5/cont5
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;
Exercício
n Elabore um programa Pascal que calcule e escreva a seguinte soma:
n S=
21 + 22 +...+ 250
50 49 1
12/16/12
7
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 + 36x37 +...+ 1x2
1 2 37
12/16/12
8
�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.
12/16/12
9
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 ; var idade,i,contC:integer; estado: char; //C,S,V,D Begin contC := 0; for i:= 1 to 10 do begin clrscr; writeln('ʹDigite a idade da pessoa 'ʹ,i,'ʹ:'ʹ);
readln(idade); writeln('ʹDigite o estado civil da pessoa 'ʹ,i,'ʹ:'ʹ); readln(estado); if (estado = 'ʹC'ʹ) then contC := contC + 1; end; writeln('ʹTotal de casadas:'ʹ,contC); End.
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.
12/16/12
10
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.