2. Linguagem Algorítmica
A seguir, respostas dos exercícios
propostos na AULA 03 (aula anterior –
Estruturas de Decisão – comando de
seleção se ... então ... senão), na
linguagem Pascal:
3. Exercício 01
Algoritmo Maior;
inteiro num1, num2;
InicioE
screver("Digite um número inteiro:");
Ler(num1);
Escrever("Digite outro número inteiro:");
Ler(num2);
Se (num1 > num2) Então
Escrever(num1," é o maior.");
senão
Escrever(num2," é o maior.");
fimSe;
fim.
4. Exercício 02
Algoritmo Maior_Menor;
inteiro A, B, C; // pode ser A,B,C:inteiro; tanto faz
inicio
Escrever("Digite o número A:");
Ler(A);
Escrever("Digite o número B:");
Ler(B);
Escrever("Digite o número C:");
Ler(C);
5. Exercício 02-Continuação
Se (A > B) então
Se (B > C) então// neste caso A > B > C
Escrever("A é o maior e C é o menor número.")
Senão // neste caso C > B
Se (A > C) então // se for verdadeiro, A > C > B
Escrever("A é o maior e B é o menor número.");
Senão // C > A > B
Escrever("C é o maior e B é o menor número.");
FimSe;
FimSe;
Senão // continua no próximo slide
6. Exercício 02-Continuação
Senão // neste caso B > A
Se (A > C) então // neste caso B > A > C
Escrever("B é o maior e C é o menor número.");
Senão // neste caso C > A
Se (B > C) // se for verdadeiro, B > C > A
Escrever("B é o maior e A é o menor número.");
Senão // C > B > A
Escrever("C é o maior e A é o menor número.");
FimSe;
FimSe;
FimSe;
Fim. // fim do programa Maior_Menor
7. Exercício 03 e 04
Algoritmo Triangulo;
real S1, S2, S3, A, B, C;
inicio
Escrever("Digite o lado S1:");
Ler(S1);
Escrever("Digite o lado S2:");
Ler(S2);
Escrever("Digite o lado S3:");
Ler(S3);
8. Exercício 03 e 04 - Continuação
// descobrir o maior dos lados e guardar na variável A (as variáveis B e C guardam os outros lados)
Se ((S1 > S2) E (S1 > S3)) Então // se S1 for o maior
inicio
A = S1;
B = S2;
C = S3;
fim
senão
inicio
Se ((S2 > S1) E (S2 > S3)) Então // se S2 for o maior
inicio
A = S2;
B = S1;
C = S3;
fim
senão // S3 é o maior
inicio
A = S3;
B = S1;
C = S2;
FimSe;
FimSe;
9. Exercício 03 e 04 - Continuação
// Constatar o tipo do triângulo e exibir mensagem
Se (A >= (B + C)) Então
Escrever("Nenhum triângulo é formado")
Senão
Se (A^2 == (B^2 + C^2)) Então
Escrever("Triângulo retângulo")
Senão
Se (A^2 > (B^2 + C^2)) Então
Escrever("Triângulo obtusângulo")
Senão
Escrever("Triângulo acutângulo");
FimSe;
FimSe;
FimSe;
Fim.
10. Exercício 05
Algoritmo Indice_Poluicao;
real indice;
inicio
Escrever("Digite o índice de poluição:");
Ler(indice);
Se (indice < 0.30) Então
Escrever("Indice aceitável.")
Senão
Se (indice > 0.50) Então
Escrever("As indústrias A, B e C devem ser notificadas.")
Senão
Se (indice > 0.40) Então
Escrever("As indústrias A e B devem ser notificadas.")
Senão
Escrever("A indústria A deve ser notificada.");
FimSe;
FimSe;
FimSe;
Fim.
11. Exercício 06
Algoritmo Soma_Ou_Multiplica;
A, B, C :inteiro; // declaração de variáveis no padrão Pascal
inicio
Escrever("Digite um número inteiro:");
Ler(A);
Escrever("Digite outro número inteiro:");
Ler(B);
Se (A = B) Então
C := A + B // atribuição pode ser := (padrão Pascal)
Senão
C := A * B;
FimSe;
Escrever("O resultado é “, C);
Fim.
12. Exercício 07
Algoritmo Dobro_Ou_Triplo;
numero:inteiro;
Inicio
Escrever("Digite um número inteiro:");
Ler(numero);
Se (numero > 0) Então // caso seja positivo
Escrever("O dobro é “, numero * 2);
Senão // caso seja negativo
Escrever("O triplo é “, numero * 3);
FimSe;
Fim.
13. Exercício 08
Algoritmo Peso_Ideal;
altura, peso:real;
sexo:caracteres;
Inicio
Escrever("Digite a altura:");
Ler(altura);
Escrever("Digite o sexo (F ou M):");
Ler(sexo);
Se (sexo == "F") Então
peso = (72.7 * altura) - 58
Senão
peso = (62.1 * altura) - 44.7;
FimSe;
Escrever("O peso ideal é “, peso);
Fim.
14. Exercício 09
Algoritmo IMC;
altura, peso, IMC:real;
Inicio
Escrever("Digite a altura:");
Ler(altura);
Escrever("Digite o peso:");
Ler(peso);
IMC = peso / (altura*altura);
Se (IMC < 18.5) Então
Escrever("Abaixo do peso.")
Senão
Se ((IMC >= 18.5) && (IMC < 25)) Então
Console.WriteLine("Peso normal;“)
Senão
Se ((IMC >= 25) && (IMC < 30)) Então
Escrever("Acima do peso.")
Senão
Escrever("Obeso.");
FimSe;
FimSe;
FimSe;
Fim.
15. Exercício 10
Algoritmo Situacao_Aluno;
identificacao:caracteres;
nota1, nota2, nota3, ME, Media_Aproveitamento:real;
inicio
Escrever("Digite o número de identificação do aluno:");
Ler(identificacao);
Escrever("Digite a primeira nota:");
Ler(nota1);
Escrever("Digite a segunda nota:");
Ler(nota2);
Escrever("Digite a terceira nota:");
Ler(nota3);
Escrever("Digite a Média dos Exercícios:");
Ler(ME);
Media_Aproveitamento := (nota1 + nota2 * 2 + nota3 * 3 + ME) / 7;
Escrever("Número do Aluno: " + identificacao);
Escrever("Nota01: " + nota1);
Escrever("Nota02: " + nota2);
Escrever("Nota03: " + nota3);
Escrever("Médias dos exercícios: " + ME);
Escrever("Média de Aproveitamento: " + Media_Aproveitamento);
16. Exercício 10 - Continuação
Se (Media_Aproveitamento >= 90) Então
Escrever("Conceito A - Aprovado")
Senão
Se ((Media_Aproveitamento >= 75) && (Media_Aproveitamento < 90)) Então
Escrever("Conceito B - Aprovado")
Senão
Se ((Media_Aproveitamento >= 60) && (Media_Aproveitamento < 75)) Então
Escrever("Conceito C - Aprovado")
Senão
Se ((Media_Aproveitamento >= 40) && (Media_Aproveitamento < 60)) Então
Escrever("Conceito D - Reprovado")
Senão
Escrever("Conceito E - Reprovado");
FimSe;
FimSe;
FimSe;
Fim.
17. Sintaxe de um Programa
Todo programa em PASCAL deve ter a
seguinte forma:
program <nome>;
<bloco>.
Onde:
<nome> - nome do programa
<bloco> - corpo do programa
18. Bloco do programa
O <bloco> é formado por:
declarações
begin
seqüência de comandos
end
E as declarações de variáveis:
var lista-de-variáveis: tipo;
onde tipo=integer, real, boolean, string, char.
19. Comentários
Usado apenas para aumentar a clareza do
programa, não é analisado pelo computador:
{ comentário } ou (* comentário *)
var matr: string; { nr. de matricula }
nota: real; { nota de prova }
cod: integer; (*código do curso*)
21. Expressões Aritméticas
Ordem de prioridade:
1a: *, /, div, mod
2a: +, -
div - quociente da divisão inteira
mod - resto inteiro da divisão inteira
exemplo1: x = 11 div 4 = 2, y = 11 mod 4 = 3
exemplo2: u = sqrt(p*(p-a)*(p-b)*(p-c))
exemplo3: v = exp(b*ln(a)) = eb*ln a
22. Expressões Lógicas
Relações
A<>B, nome=´João´, a<0, x>1
Operadores lógicos
p and q, p or q, not p
Ex: (idade>25) and (nome =´Maria´)
Prioridade dos operadores lógicos e aritméticos
1a: not
2a: *, /, div, mod, and
3a: +, -, or
4a: =, <>, <, <=, >=, >
23. Comando de Atribuição
Identificador := expressão
var A, B, X, Y: integer;
K, Media: real;
teste: boolean;
cor: string;
K:=1;
A:=K;
Media := A+B/2;
teste := (X=0) and (Y<>2);
cor := ‘verde’;
25. E/S
leia(A, B, C)
leia
A, B, C
escreva(A, B, C)
escreva
A, B, C
Pseudocódigo
Fluxograma
Pascal
write(A, B, C)
ou
writeln(A, B, C)
read(A, B, C)
ou
readln(A, B, C)
26. Comandos de Entrada e
Saída
Escrita
var n, p: string;
x, a: integer;
begin
x := 0;
read (n,a);
x := x + a;
p := n;
write (p,x);
a := x + a;
writeln (a);
x := x + a;
write (n, x, a);
end.
Entrada:
Joao 25
Saída ?
27. Comandos de Entrada e
Saída
Formatação na escrita
program formata;
var a,b: real;
begin
a:=3.2;
b:=5.81;
write (a:4:2, ‘+’, b:5:2, ‘=‘ , a+b:7:3);
end.
Saída=3.20+5.81=9.010
28. Mapeando Programas para Pascal
Exemplo do programa para calcular a área do
triângulo retângulo:
Linguagem Algorítmica
Algoritmo Area_Triangulo;
base, altura, área: real;
Inicio
escrever(“Digite a altura do triângulo:”);
ler (altura);
escrever(“Digite a base do triângulo:”);
ler(base);
área ¬ (altura*base)/2;
escreva (área);
fim
Pascal
Program Area_Triangulo;
var area, altura, base: real;
begin
write (‘Digite a altura do triangulo: ‘);
Readln(altura);
write (‘Digite a base do triangulo: ‘);
Readln(base);
area := altura*base/2;
write (‘A área do triângulo é igual a: ‘,area);
End.
Observe que as instruções read e write servem para ler dados
fornecidos pelo usuário e para escrever informações na tela,
respectivamente. Estas duas instruções podem ser seguidas por ln e,
neste caso uma linha será pulada na tela após a execução da instrução.
29. Tipos de variáveis
Integer (Inteiro):
de -32768 a 32767.
Real (Real):
positivos de 3.4x10-38 a 3.4x1038.
Suportam notação científica:
452.13 = 4.5213e2
char (caractere):
usam ‘’ para serem designados: 'a' 'B' '+'
valores entre 0 e 255
é diferente de um número inteiro
boolean (lógico):
podem ser TRUE ou FALSE
30. Importante: Identação!
Qual dos códigos abaixo é mais legível?
program visual; var alpha,beta:real; begin
alpha := a + b; beta:= b / a end.
program visual;
var
alpha,
beta : real;
begin
alpha := a + b;
beta := b / a
end.
(1)
(2)
31. Tabela verdade de
operadores booleanos
Operadores:
not : negação
and : conjunção
or : disjunção
32. Condição - Linguagem Pascal
program condicao;
var A, B, C, menor: real;
begin
readln(A,B,C);
if (A<B) and (A<C) then
menor:=A
else
if B<C then
menor:=B
else
menor:=C;
write (menor);
end.
simples
if condicao then
bloco;
composta
if condicao then
bloco1
else
bloco2;
sem ‘;’
33. Exemplos
Algoritmo que lê dois números e escreve a soma dos mesmos:
Algoritmo Soma;
num1,num2,soma:inteiro;
Inicio
Escrever(“Digite um número:”);
Ler(num1);
Escrever(“Digite outro número:”);
Ler(num2);
soma := num1 + num2;
Escrever(“A soma é “, soma);
Fim.
(como fica no Pascal? – próximo slide)
34. Exemplos
Algoritmo que lê dois números e escreve a soma dos mesmos em Pascal:
program soma;
uses crt; {usado para ampliar as funcionalidades do programa}
var num1, num2,soma:integer;
begin
write('Digite um número:');
readln(num1);
write('Digite outro número:');
readln(num2);
soma := num1 + num2;
writeln('A soma é ',num1 + num2);
readkey; {Congela tela aguardando o usuário pressionar uma tecla}
end.
35. Exercício 07 da Aula 03
Algoritmo que lê um número e informa o dobro se o número for
positivo, e o triplo se o número for negativo:
program Dobro_Ou_Triplo;
uses crt;
var numero:integer;
begin
write('Digite um número:');
readln(numero);
if (numero > 0) then
writeln('O dobro é ',numero*2)
else
writeln('O triplo é ',numero*3);
readkey;
end.
36. Atividade
Estudar as resoluções dos exercícios
propostos na AULA 03 em Linguagem
Algorítmica (expostos no início desta
aula) e transcrevê-los em Pascal
(sugestão de ferramenta para
desenvolver em Pascal – FreePascal,
é gratuito, sendo possível baixá-lo na
Internet);