9 estrutura for - letícia duboc · ler$aalturae$perguntar:$a$alturalidaé$maior$que$o$...

10
12/16/12 1 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

Upload: phungtu

Post on 08-Feb-2019

212 views

Category:

Documents


0 download

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.