Aula 04 estruturas de repetição

3,854 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,854
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
75
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Aula 04 estruturas de repetição

  1. 1. INTRODUÇÃO A LINGUAGEM PASCAL Profº.: Tácito Henrique tacito.graca@gmail.com CEMA – Centro Educacional Miguel Alves Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  2. 2. ESTRUTURAS DE REPETIÇÃO for; while; Repeat until; Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  3. 3. O que é uma estrutura de repetição? • Exemplo “Fahrenheit” //Programa (muito ruim) que gera uma tabela de conversão de temperaturas em graus Fahrenheit para graus Celsius program TabelaDeConversaoDeTemperatura var fahrenheit : integer; begin writeln(Tabela de conversão graus Fahrenheit/graus Celsius'); writeln('-------------------------------------------------'); writeln(' Fahrenheit | Celsius'); writeln('-------------------------------------------------'); Fahrenheit = 10; writeln(' ',Fahrenheit, ' | ', 5.0*(Fahrenheit - 32)/9); Fahrenheit = 11; writeln(' ',Fahrenheit, ' | ', 5.0*(Fahrenheit - 32)/9); . . . {Mais "uma porção" de comandos!!!} Fahrenheit = 80; writeln(' ',Fahrenheit, ' | ', 5.0*(fahrenheit - 32)/9); end. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  4. 4. O que é uma estrutura de repetição? • Existem momentos na programação onde numa determinada parte do programa precisa ser executada diversas vezes. • Toda vez que precisamos repetir determinado número de vezes uma determinada sequência de comandos, usamos um laço de repetição. • Ele corresponde a repetição do mesmo trecho um número X de vezes sem ter de escrever o mesmo trecho X vezes Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  5. 5. O que é uma estrutura de repetição? • A linguagem Pascal possui os comandos: • for; • while do • repeat until • São chamados estruturas de repetição ou laços, cujas execuções redundam em repetições da execução de uma determinada sequência de comandos. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  6. 6. O comando for • O comando for é uma estrutura de repetição que repete a execução de uma dada sequência de comandos um número de vezes que pode ser determinado pelo próprio programa • Sintaxe for Variável := Expressão1 to Expressão2 do seqüência de comandos Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  7. 7. O comando for • A semântica deste comando é muito simples: • Quando executado, o valor da Expressao1 é armazenado na variável de controle e o conteúdo desta (Vc) é comparado com o valor da Expressao2 (VFinal); se Vc <=VFinal, a sequência de comandos é executada. • Em seguida o conteúdo da variável de controle é automaticamente incrementado de uma unidade (+1) e nova comparação é feita com VFinal. Isto tudo se repete até que o conteúdo da variável de controle seja maior que o valor da Expressao2. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  8. 8. O comando for • Problema • O programa deverá exibir na tela uma sequência de números reais começando do número 1 até o número 10. • O programa não deve ter interação com o usuário. {Programa que exibe de 1 a 10} program De1a10; var i : integer; begin for i := 1 to 10 do write(i, ‘ ’); end. exibe na tela 1 2 3 4 5 6 7 8 9 10 Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  9. 9. O comando for • Se, por alguma razão, se pretende que a variável de controle seja decrementada e, portanto, que o Valor final seja menor que o Valor inicial, deve-se substituir a reposição to pela "preposição" downto. • Assim: var i : integer; begin for i := 5 downto 1 do write(i, ' '); end. exibe na tela: 5 4 3 2 1 Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  10. 10. O comando for Exercícios Resolvidos 1 {Programa para gerar uma tabela de conversão de temperaturas em graus Fahrenheit para graus Celsius} program TabelaDeConversaoFarenheitCelsius; uses Crt; var Farenheit : integer; Celsius: real; begin ClrScr; writeln('Tabela de conversao graus Farenheit/graus Celsius'); writeln('-------------------------------------------------'); writeln(' Farenheit | Celsius'); writeln('-------------------------------------------------'); for Farenheit := 20 to 80 do begin Celsius := 5.0*(Farenheit - 32)/9; writeln(' ', Farenheit,' ', Celsius:0:2); end; end. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  11. 11. O comando while • Quando devemos utilizar o comando for? • O comando for deve ser utilizado quando o número de repetições de execução de uma sequência de comandos é conhecido a priori. • Quando isto não acontece, deve-se usar o comando while, que possui a seguinte sintaxe: while Expressão lógica do sequência de comandos Semântica: • Durante a execução, a Expressão lógica é avaliada. • Se for verdadeira, a sequência de comandos é executada e o processamento retorna ao próprio comando while. • Se for falsa, a sequência não é executada e o processamento se transfere para o comando seguinte. • Cuidado com os loops infinitos, toda estrutura deve possuir uma condição de parada válida e possível de ser atingida. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  12. 12. O comando while Exercícios Resolvidos 2 • Crie um programa que calcule as notas médias de 5 alunos. Deve pegar duas notas e exibir o resultado por aluno. program mediaclasse; var nota1, nota2, media : real; //declaração das variáveis do algoritmo contador : integer; //declaração do contador Begin contador := 1; //atribuição de valor ao contador repeat//início da estrutura de repetição writeln ('Digite as notas do aluno ',contador,':'); writeln ('Primeira nota:'); read (nota1); writeln ('Segunda nota:'); read (nota2); media := (nota1 + nota2)/2; writeln ('O aluno ',contador,' teve média igual a: ',media); contador := contador + 1; until contador > 5; end. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  13. 13. Comando while • O número de execuções da sequência de comandos associada a um comando while pode ser zero. • Há situações em que é importante se garantir a execução de uma sequência de comandos pelo menos uma vez. • Uma delas é a verificação da consistência dos dados de entrada. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  14. 14. Comando while • Benefícios • Garantia dos resultados • Habilita o programa recusar dados incompatíveis com a entrada do programa Exemplo Caso seu programa necessite receber um mês do ano, sabemos que o valor deve estar entre 1 e 12. Uma solução seria: var Mes : integer; begin writeln('Digite o mes: '); readln(Mes); while (Mes < 1) or (Mes > 12) begin writeln(Chr(7), 'Digitacao errada! Digite de novo'); writeln('Digite o mes: '); readln(Mes); end; Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  15. 15. Comando repeat until • O comando repeat until define uma estrutura de repetição que garante que uma sequência de comandos • seja executada pelo menos uma vez. Sua sintaxe é repeat sequência de comandos; until Expressão lógica; • Semântica: • A sequência de comandos é executada e a Expressão é avaliada; • se o valor da Expressão for false, a sequência de comandos é novamente executada e tudo se repete; • do contrário, o comando que segue a estrutura é executado. • Isto significa que a execução da sequência de comandos será repetida até que a Expressão lógica seja verdadeira. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  16. 16. Comando repeat until • Pode-se também utilizar o comando repeat until para execuções sucessivas de um programa. Neste caso, é comum se fazer uma pergunta do tipo Deseja continuar (S/N)? var Resp : char; . . . repeat {sequência de comandos do programa propriamente dito} writeln('Deseja continuar (S/N)?'); readln(Resp); until UpCase(Resp) = 'N'; Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  17. 17. Exercícios Resolvidos Exercício 1 • Consideremos um programa para determinar a soma dos n primeiros números pares positivos, n informado pelo usuário. • Naturalmente, o sistema pode gerar os números pares que se pretende somar, através do comando Par := 2 e da repetição do comando Par = Par + 2. • Para que o sistema gere o próximo par, o anterior já deverá ter sido somado. Isto pode ser feito através do comando Soma = 0 e da repetição do comando Soma = Soma + Par. Temos então o seguinte programa. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  18. 18. Exercícios Resolvidos Exercício 1 {Programa que soma os n primeiros números pares, n dado} program SomaPares; var Soma, Par, n, i : integer; begin write('Digite o valor de n: '); readln(n); Par := 2; Soma := 0; for i := 1 to n do begin Soma := Soma + Par; Par := Par + 2; end; writeln('Soma dos ', n, ' primeiros números pares: ', Soma); end. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  19. 19. Exercícios Resolvidos Exercício 2 • Faça um algoritmo que receba o preço de custo e o preço de venda de 10 produtos. • Mostre como resultado se houve lucro, prejuízo ou empate para cada produto. • Informe media de preço de custo e do preço de venda. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  20. 20. Exercícios Resolvidos Exercício 2 program MediaPreco var x, i: integer; precoVenda, precoCusto: real; mediaCusto, mediaVenda: real; begin // Seção de Comandos for i := 1 to 10 do begin write('Digite o preço de custo: '); read(precoCusto); write('Digite o preço de venda: '); read(precoVenda); mediaCusto := mediaCusto + precoCusto; mediaVenda := mediaVenda + precoVenda; if precoVenda < precoCusto then writeln('Houve prejuízo na venda') else if precoVenda = precoCusto then writeln('Houve empate na venda'); if precoVenda > precoCusto then writeln('Houve lucro na venda'); end; writeln('A média de preço de custo foi: ',mediaCusto/10); writeln('A média de preço de venda foi: ',mediaVenda/10); end. Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  21. 21. Exercícios Resolvidos Exercício 3 program tabuada; var num:real; cont:integer; begin repeat clrscr; write('Digite um número para ver sua tabuada de multiplicação '); read(num); cont:=1; while cont<=10 do //temos aqui uma repetição dentro de outra begin writeln(num:4:0,' x ',cont,' = ',(num*cont):6:0); cont:=cont+1; //a cada repetição o cont aumenta +1 end; readkey; {parada para ver o resultado até ser teclado algo} until num=0; {condição para parar a repetição principal} clrscr; write('Foi digitado o número 0! programa encerrado!'); readkey; end Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
  22. 22. Exercícios de Fixação • Exercício 01 • Escrever um algoritmo que gere a tabela de conversão de temperaturas: • De Celsius para Fahrenheit • De Celsius para Kelvin • De Kelvin para Fahrenheit • O programa deverá permitir que o usuário possa escolher qual tabela será gerada e caso não deseje gerar nenhuma sair. • Exercício 02 • Escreva um algoritmo que receba vários números digitados pelo usuário, até que o usuário digite 0. Ao digitar 0, o algoritmo termina. • Exercício 03 • Escreva um algoritmo que solicite ao usuário que digite o seu login e a sua senha. • Caso o login e a senha estejam errados, pedir para digitar novamente. • Caso estejam corretos, escrever: “Login efetuado com sucesso.” O login deve ser o seu nome e a senha deve ser a palavra “digital”. • Exercício 04 • Escreva um algoritmo que mostre ao usuário os sabores de sorvete de uma sorveteria o programa deverá sempre exibir o menu até que uma das opções seja selecionada. • (1) – Creme com Passas / (2) – Chocolate / (3) – Morango / (4) – Abacaxi / (5) - Coco Profº.: Tácito Henrique ::: Introdução a linguagem Pascal

×