Estruturas de Repetição Slides adaptados de Ana Luisa Tipos de estrutura de repetição 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
For i:=inicio to fim Do Bloco Como realiza: inicializa i com o valor do inicio Executa o bloco Retorna ao For Soma 1 a iável i e verifica se é maior que fim Repete o processo i é uma iável inteira Inicio e fim são iáveis ou constantes inteiras Elabore um programa Pascal que leia 10 valores e determine a sua média. Program cmedia ; x,soma,media:real; j:integer; soma:=0; for j:= 1 to 10 do write('digite um valor '); readln(x); soma:=soma+x; media:=soma/10; writeln('a media é ', media:0:2); Variável acumuladora 2
Repita o exercício anterior para n valores Program cmedian ; x,soma,media:real; j,n:integer; soma:=0; write('digite a quan3dade de valores ');readln(n); for j:= 1 to n do write('digite um valor ');readln(x); soma:=soma+x; media:=soma/n; writeln('a media é ', media:0:2); Elabore um programa Pascal que leia 10 valores e determine o maior Program MaiorDe10 ; x,maior:real; cont:integer; {usando o comando For} For cont:= 1 to 10 do write('digite um valor '); readln(x); If (i = 1) then Maior := x else if x > maior then maior:=x; write('o maior é ',maior:0:2); 3
Exercício 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; 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 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
Program Homens_e_mulheres ; altura,somaf,maior,menor:real; sexo: char; i,contm,contf:integer; contm := 0; contf := 0; somaf := 0; maior := 0; menor := 5; for i:= 1 to 5 do writeln('digite a altura da pessoa ',i); readln(altura); writeln('digite o sexo da pessoa ',i); readln(sexo); if (sexo = 'M') then contm := contm + 1; //iavel contadora writeln('contm atè o momento: ',contm); end else //feminino contf := contf + 1; writeln('contf atè o momento: ',contf); somaf := somaf + altura; writeln('somaf atè o momento: ',somaf); writeln('maior atè o momento: ',maior); writeln('menor atè o momento: ',menor); if (altura > maior) then maior := altura; if (altura < menor) then menor := altura; 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); Exercício Faça um programa que leia 10 numeros inteiros e calcule: o numero de pares media dos números maiores que 5 o maior número 5
Program Pares_maior_media ; i,num,maior,contp,cont5:integer; soma5:real; contp := 0; cont5 := 0; soma5 := 0; for i:= 1 to 10 do 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 cont5 := cont5 + 1; soma5 := soma5 + num; soma5 := soma5/cont5 Exercício Elabore um programa Pascal que calcule e escreva a seguinte soma: S= 2 1 + 2 2 +...+ 2 50 50 49 1 6
Program Serie ; i,den:integer; soma,num : real; soma := 0; for i:= 1 to 50 do num := exp(i*ln(2)); den := 51 i; writeln('num/den: ',num,'/',den); soma := soma + num/den; writeln(soma); Exercicio Elabore um programa Pascal que calcule e escreva a seguinte soma: S= 37x38 + 36x37 +...+ 1x2 1 2 37 7
Program Serie ; i,den:integer; soma,num : real; soma := 0; for i:= 1 to 37 do num := i * (i+1); den := 38 - i; writeln('num/den: ',num,'/',den); soma := soma + num/den; writeln(soma); Exercício Faça um programa que leia uma frase e conte o numero de letras 'a Program Frase ; frase,letra: string; conta,tam,i :integer; conta := 0; writeln('ʹdigite uma frase'ʹ); readln(frase); tam := length(frase); for i:= 1 to tam do letra := copy(frase,i,1); if (letra = 'ʹa'ʹ) then conta := conta + 1; writeln('ʹnumero de a:'ʹ,conta); 8
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 ; idade,i,contc:integer; estado: char; //C,S,V,D contc := 0; for i:= 1 to 10 do 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; writeln('ʹtotal de casadas:'ʹ,contc); Exemplo - Readkey Faça um programa que some a série 1 + 1/2 + 1/3 + 1/4... 1/50 Program Soma ; soma:real; i:integer; soma := 0; for i:= 1 to 50 do writeln(1,'ʹ/'ʹ,i); readkey; soma := soma + 1/I; writeln(soma); 9
Exemplo - Break Faça um programa que verifique se um número é primo Program Primo ; num,i:integer; writeln('ʹdigite um numero:'ʹ); readln(num); for i:= 2 to num- 1 do writeln(i); if (num mod i = 0) then writeln(i); break; writeln('ʹultimo:'ʹ,i); if (i = num) then writeln('ʹ primo ) else writeln( Não é primo'ʹ); 10