SlideShare uma empresa Scribd logo
Algoritmos e 
Programação 
Prof. Marcos Saúde 
marcosr@pitagoras.com.br
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:
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.
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);
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
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
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);
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;
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.
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.
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.
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.
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.
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.
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);
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.
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
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.
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*)
Expressões 
 Aritméticas 
 Lógicas 
 Literais
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
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: =, <>, <, <=, >=, >
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’;
Entrada e Saída (E/S) 
 As ações que executam estas tarefas são: 
 Obter dados: 
 leia(dado1, …, dadon); 
 Apresentar dados: 
 escreva(dado1, …, dadon); 
 Exemplos: 
 leia(NOME, IDADE); 
 leia(PRODUTO, QUANTIDADE, VALOR); 
 escreva(SOMA, MÉDIA); 
 escreva(“Nome: ”, NOME, “Idade: ”, IDADE);
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)
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 ?
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
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.
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
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)
Tabela verdade de 
operadores booleanos 
Operadores: 
not : negação 
and : conjunção 
or : disjunção
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 ‘;’
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)
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.
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.
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);

Mais conteúdo relacionado

PPT
Aula 3 algoritmos
PPT
Exercicios Php
PDF
Lista de exercício resposta
PPTX
Algoritmos - Procedimentos
PPTX
Aula 5 algoritimos(continuacao)
PDF
Algoritmos resolvidos lista 2
DOC
Apostila de portugol_(algoritmo)
Aula 3 algoritmos
Exercicios Php
Lista de exercício resposta
Algoritmos - Procedimentos
Aula 5 algoritimos(continuacao)
Algoritmos resolvidos lista 2
Apostila de portugol_(algoritmo)

Mais procurados (17)

DOC
Videoulas de algoritmos e lógica de programação
PDF
Aula 2 aed - pseudocódigo
PPT
Material de Apoio de Algoritmo e Lógica de Programação
DOC
Apostila de portugol (algoritmo)
PDF
Curso De Algoritmo Aula 9
TXT
Exercicios resolvidos visu alg vetores
PDF
Lista exercícios
TXT
Exercicios resolvidos visuAlg
PPTX
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
PDF
Algoritmos e lp parte3-pseudocódigo
PDF
Lista de exercicios algoritmos resolvida-
PDF
PPT
Introdução - Algoritmos
PPTX
Aula 04 Estruturas de repetição 02 - Para Faça
PPT
Lógica De Programação
PDF
Guia para traducao algoritmos x l ps
PDF
Conceitos e técnicas de programação lista de exercícios i
Videoulas de algoritmos e lógica de programação
Aula 2 aed - pseudocódigo
Material de Apoio de Algoritmo e Lógica de Programação
Apostila de portugol (algoritmo)
Curso De Algoritmo Aula 9
Exercicios resolvidos visu alg vetores
Lista exercícios
Exercicios resolvidos visuAlg
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
Algoritmos e lp parte3-pseudocódigo
Lista de exercicios algoritmos resolvida-
Introdução - Algoritmos
Aula 04 Estruturas de repetição 02 - Para Faça
Lógica De Programação
Guia para traducao algoritmos x l ps
Conceitos e técnicas de programação lista de exercícios i
Anúncio

Semelhante a Algop - aula 04 pascal 1 (20)

PPT
Algop - aula 04
PPT
Unidade-I-Introdução-a-Algoritmos-e-Programas.ppt
PPT
Unidade-I-Introdução-a-Algoritmos-e-Programas.ppt
PPT
Unidade-I-Introdução-a-Algoritmos-e-Programas.ppt
PPT
Unidade-I-Introdução-a-Algoritmos-e-Programas.ppt
PPT
Introdução a Algoritmos e Programas.ppt
PDF
Programação em Linguagem C - xlinguagem-c-em-uma-aula.pdf
PPT
Aula 3 - 06/04/11
PPT
Algop - aula 03
PDF
Algoritmos - Aula 07 C - Resolucao de Exercicios - Resolucao
DOCX
Exemplos registros e funções
PDF
Lista de exercício
PPSX
Algoritmo Variaveis
PPT
Algop - aula 06 resposta exercícios
PDF
5 expressoes logicas - operadores - base binaria - operadores de bits
PDF
Alg aula 03 - construcao algoritmos2 tp1
PPT
Introdução a Linguagem C
PDF
Aula 6 1 linguagem pascal-parte_1
PPT
Algoritmo
PPT
Introducao logica
Algop - aula 04
Unidade-I-Introdução-a-Algoritmos-e-Programas.ppt
Unidade-I-Introdução-a-Algoritmos-e-Programas.ppt
Unidade-I-Introdução-a-Algoritmos-e-Programas.ppt
Unidade-I-Introdução-a-Algoritmos-e-Programas.ppt
Introdução a Algoritmos e Programas.ppt
Programação em Linguagem C - xlinguagem-c-em-uma-aula.pdf
Aula 3 - 06/04/11
Algop - aula 03
Algoritmos - Aula 07 C - Resolucao de Exercicios - Resolucao
Exemplos registros e funções
Lista de exercício
Algoritmo Variaveis
Algop - aula 06 resposta exercícios
5 expressoes logicas - operadores - base binaria - operadores de bits
Alg aula 03 - construcao algoritmos2 tp1
Introdução a Linguagem C
Aula 6 1 linguagem pascal-parte_1
Algoritmo
Introducao logica
Anúncio

Mais de Thiago Toscano Ferrari (8)

PPT
Algop - aula 08 - respostas
PPT
Algop - aula 08
PPT
Algop - aula 07 resposta exercícios
PPT
Algop - aula 07
PPT
Algop - aula 06
PPTX
Algop - aula 05
PPT
Algop - aula 02
PPT
Teste 1 - Engenharia mecânica
Algop - aula 08 - respostas
Algop - aula 08
Algop - aula 07 resposta exercícios
Algop - aula 07
Algop - aula 06
Algop - aula 05
Algop - aula 02
Teste 1 - Engenharia mecânica

Último (20)

PDF
Aula 2 Normas Regulamentadoras (PARTE I).pdf
PDF
Aula_1-ConceitosBasicos de circuito eletricos.pdf
PPTX
Introdução à Agronomia - Profissionais x Desafios de Mercado x Agricultura
PPTX
Aula 04 - Fisica teorica e experimental.pptx
PDF
BIOQUIMICA 1 - REVISAO BIOQUIMICA CELULAR
PPTX
Aula 6_Delineamento em Blocos Casualizados_28.09.2020_Mestrado.pptx
PDF
Boas práticas em rebobinamento trifásico .pdf
PPT
Acidentes de trabalho e esposição riscovdfv
PDF
Aula 12-13 e 14 - UC2 NR 23 Combate a Incêndios.pdf
PPTX
Introdução à Agronomia - 5 fatos sobre a agronomia
PDF
APRESENTACAO_ NR10 Ferramentas isoladas.pdf
PPT
NR 18 Condições e Meio Ambiente de Trabalho na Indústria da Construção.ppt
PPTX
Princípios Básicos de segurança em eletricidade
PPTX
TR_Seguranca em Elevadores de Obras.pptx
PPT
Diagrama de fases de los aceros como material
PPT
O gênero resumo O gênero resumo O gênero
PDF
Normas, higiene e segurança na soldadura eléctrica
PPTX
erro balela so para baixar naã perca tempo.pptx
PPT
DIFERENTES SINTOMAS E SINAIS DE PLANTAS.
PDF
eletronica-basica_capitulo_01_2017_1s.pdf
Aula 2 Normas Regulamentadoras (PARTE I).pdf
Aula_1-ConceitosBasicos de circuito eletricos.pdf
Introdução à Agronomia - Profissionais x Desafios de Mercado x Agricultura
Aula 04 - Fisica teorica e experimental.pptx
BIOQUIMICA 1 - REVISAO BIOQUIMICA CELULAR
Aula 6_Delineamento em Blocos Casualizados_28.09.2020_Mestrado.pptx
Boas práticas em rebobinamento trifásico .pdf
Acidentes de trabalho e esposição riscovdfv
Aula 12-13 e 14 - UC2 NR 23 Combate a Incêndios.pdf
Introdução à Agronomia - 5 fatos sobre a agronomia
APRESENTACAO_ NR10 Ferramentas isoladas.pdf
NR 18 Condições e Meio Ambiente de Trabalho na Indústria da Construção.ppt
Princípios Básicos de segurança em eletricidade
TR_Seguranca em Elevadores de Obras.pptx
Diagrama de fases de los aceros como material
O gênero resumo O gênero resumo O gênero
Normas, higiene e segurança na soldadura eléctrica
erro balela so para baixar naã perca tempo.pptx
DIFERENTES SINTOMAS E SINAIS DE PLANTAS.
eletronica-basica_capitulo_01_2017_1s.pdf

Algop - aula 04 pascal 1

  • 1. Algoritmos e Programação Prof. Marcos Saúde marcosr@pitagoras.com.br
  • 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*)
  • 20. Expressões  Aritméticas  Lógicas  Literais
  • 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’;
  • 24. Entrada e Saída (E/S)  As ações que executam estas tarefas são:  Obter dados:  leia(dado1, …, dadon);  Apresentar dados:  escreva(dado1, …, dadon);  Exemplos:  leia(NOME, IDADE);  leia(PRODUTO, QUANTIDADE, VALOR);  escreva(SOMA, MÉDIA);  escreva(“Nome: ”, NOME, “Idade: ”, IDADE);
  • 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);