• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Aula 04   estruturas de repetição
 

Aula 04 estruturas de repetição

on

  • 178 views

 

Statistics

Views

Total Views
178
Views on SlideShare
178
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Aula 04   estruturas de repetição Aula 04 estruturas de repetição Presentation Transcript

    • 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
    • ESTRUTURAS DE REPETIÇÃO for; while; Repeat until; Profº.: Tácito Henrique ::: Introdução a linguagem Pascal
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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