SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Exp12cdr ppt concecao messianica
Exp12cdr ppt concecao messianicaExp12cdr ppt concecao messianica
Exp12cdr ppt concecao messianicaameliapadrao
 
Estruturas externa-e-interna de "Frei Luís de Sousa"
Estruturas externa-e-interna de "Frei Luís de Sousa"Estruturas externa-e-interna de "Frei Luís de Sousa"
Estruturas externa-e-interna de "Frei Luís de Sousa"Maria Góis
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Poema Liberdade, de Fernando Pessoa
Poema Liberdade, de Fernando PessoaPoema Liberdade, de Fernando Pessoa
Poema Liberdade, de Fernando PessoaDina Baptista
 
Coesão textual
Coesão textualCoesão textual
Coesão textualgracacruz
 
resumo 12º ano economia c 1º período
resumo 12º ano economia c 1º períodoresumo 12º ano economia c 1º período
resumo 12º ano economia c 1º períodoLia Treacy
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Mecanismos de Coesão
Mecanismos de CoesãoMecanismos de Coesão
Mecanismos de Coesãonelsonalves70
 
O Texto Expositivo
O Texto ExpositivoO Texto Expositivo
O Texto Expositivo713773
 
D.Fernando Infante de Portugal
D.Fernando Infante de PortugalD.Fernando Infante de Portugal
D.Fernando Infante de PortugalIolanda Pinheiro
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoRegis Magalhães
 
ComemD. João I in Mensagem, de Fernando Pessoa
ComemD. João I in  Mensagem, de Fernando Pessoa ComemD. João I in  Mensagem, de Fernando Pessoa
ComemD. João I in Mensagem, de Fernando Pessoa Ana Cristina Matias
 
"Mensagem" de Fernando Pessoa- "O Infante"
"Mensagem" de Fernando Pessoa- "O Infante""Mensagem" de Fernando Pessoa- "O Infante"
"Mensagem" de Fernando Pessoa- "O Infante"VniaRodrigues30
 

Mais procurados (20)

Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Exp12cdr ppt concecao messianica
Exp12cdr ppt concecao messianicaExp12cdr ppt concecao messianica
Exp12cdr ppt concecao messianica
 
Estruturas externa-e-interna de "Frei Luís de Sousa"
Estruturas externa-e-interna de "Frei Luís de Sousa"Estruturas externa-e-interna de "Frei Luís de Sousa"
Estruturas externa-e-interna de "Frei Luís de Sousa"
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
O desejado
O desejadoO desejado
O desejado
 
Poema Liberdade, de Fernando Pessoa
Poema Liberdade, de Fernando PessoaPoema Liberdade, de Fernando Pessoa
Poema Liberdade, de Fernando Pessoa
 
Coesão textual
Coesão textualCoesão textual
Coesão textual
 
Proposição
ProposiçãoProposição
Proposição
 
resumo 12º ano economia c 1º período
resumo 12º ano economia c 1º períodoresumo 12º ano economia c 1º período
resumo 12º ano economia c 1º período
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Mecanismos de Coesão
Mecanismos de CoesãoMecanismos de Coesão
Mecanismos de Coesão
 
Valor aspetual
Valor aspetualValor aspetual
Valor aspetual
 
O Texto Expositivo
O Texto ExpositivoO Texto Expositivo
O Texto Expositivo
 
D.Fernando Infante de Portugal
D.Fernando Infante de PortugalD.Fernando Infante de Portugal
D.Fernando Infante de Portugal
 
Logica Algoritmo 05 Repeticao
Logica Algoritmo 05 RepeticaoLogica Algoritmo 05 Repeticao
Logica Algoritmo 05 Repeticao
 
ComemD. João I in Mensagem, de Fernando Pessoa
ComemD. João I in  Mensagem, de Fernando Pessoa ComemD. João I in  Mensagem, de Fernando Pessoa
ComemD. João I in Mensagem, de Fernando Pessoa
 
"Mensagem" de Fernando Pessoa- "O Infante"
"Mensagem" de Fernando Pessoa- "O Infante""Mensagem" de Fernando Pessoa- "O Infante"
"Mensagem" de Fernando Pessoa- "O Infante"
 

Semelhante a Aula 04 estruturas de repetição

aula 06 - Logica de programacao
aula 06 - Logica de programacaoaula 06 - Logica de programacao
aula 06 - Logica de programacaoAislan Rafael
 
Estrutura de controle repetição C++
Estrutura de controle repetição C++Estrutura de controle repetição C++
Estrutura de controle repetição C++Sedu
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_javaMirlem Pereira
 
Aula 05 - Comandos de repeticao - JAVA.pdf
Aula 05 - Comandos de repeticao - JAVA.pdfAula 05 - Comandos de repeticao - JAVA.pdf
Aula 05 - Comandos de repeticao - JAVA.pdfCarlosCarlos73688
 
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
Alg   aula 05-2 - estruturas de-repeticao tp1 (para)Alg   aula 05-2 - estruturas de-repeticao tp1 (para)
Alg aula 05-2 - estruturas de-repeticao tp1 (para)Thalles Anderson
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticaoLee Aragão
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08André Phillip Bertoletti
 
Conceitos e técnicas de programação aula 5
Conceitos e técnicas de programação aula 5Conceitos e técnicas de programação aula 5
Conceitos e técnicas de programação aula 5Robson Ferreira
 
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlex Camargo
 
0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisãoEvelyneBorges
 

Semelhante a Aula 04 estruturas de repetição (20)

Algoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - LacosAlgoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - Lacos
 
aula 06 - Logica de programacao
aula 06 - Logica de programacaoaula 06 - Logica de programacao
aula 06 - Logica de programacao
 
Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08Construcao de Algoritmos - Aula 08
Construcao de Algoritmos - Aula 08
 
Estrutura de controle repetição C++
Estrutura de controle repetição C++Estrutura de controle repetição C++
Estrutura de controle repetição C++
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
 
Aula 05 - Comandos de repeticao - JAVA.pdf
Aula 05 - Comandos de repeticao - JAVA.pdfAula 05 - Comandos de repeticao - JAVA.pdf
Aula 05 - Comandos de repeticao - JAVA.pdf
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
Alg   aula 05-2 - estruturas de-repeticao tp1 (para)Alg   aula 05-2 - estruturas de-repeticao tp1 (para)
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
 
15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao15080590 aula6-estrutura-de-repeticao
15080590 aula6-estrutura-de-repeticao
 
Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08Lógica de Programação - Unimep/Pronatec - Aula08
Lógica de Programação - Unimep/Pronatec - Aula08
 
Conceitos e técnicas de programação aula 5
Conceitos e técnicas de programação aula 5Conceitos e técnicas de programação aula 5
Conceitos e técnicas de programação aula 5
 
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Algop - aula 07
Algop - aula 07Algop - aula 07
Algop - aula 07
 
Aula 4 aed - parte 1
Aula 4   aed - parte 1Aula 4   aed - parte 1
Aula 4 aed - parte 1
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Algop - aula 06
Algop - aula 06Algop - aula 06
Algop - aula 06
 
Aula 05 subprogramas
Aula 05   subprogramasAula 05   subprogramas
Aula 05 subprogramas
 
Exercicios facebook
Exercicios facebookExercicios facebook
Exercicios facebook
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetição
 
0000364 aula 5 estruturas de decisão
0000364 aula 5   estruturas de decisão0000364 aula 5   estruturas de decisão
0000364 aula 5 estruturas de decisão
 

Aula 04 estruturas de repetição

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