Upload
tacito-graca
View
724
Download
10
Embed Size (px)
Citation preview
INTRODUÇÃO A
LINGUAGEM PASCAL Profº.: Tácito Henrique
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