SlideShare ist ein Scribd-Unternehmen logo
1 von 36
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);

Weitere ähnliche Inhalte

Was ist angesagt?

Videoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoVideoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoaldoirjava
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9Felipe Santos
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03  - Exercícios de Leitura e AtribuiçãoAlgoritmos 01 - Semana 03  - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03 - Exercícios de Leitura e AtribuiçãoEder Samaniego
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Introdução - Algoritmos
Introdução - AlgoritmosIntrodução - Algoritmos
Introdução - AlgoritmosPsLucas
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para FaçaEder Samaniego
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psMauro Pereira
 
Conceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios iConceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios iRobson Ferreira
 
Programar Em Pascal
Programar Em PascalProgramar Em Pascal
Programar Em PascalPepe Rocker
 

Was ist angesagt? (18)

Videoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programaçãoVideoulas de algoritmos e lógica de programação
Videoulas de algoritmos e lógica de programação
 
Aula 2 aed - pseudocódigo
Aula 2   aed - pseudocódigoAula 2   aed - pseudocódigo
Aula 2 aed - pseudocódigo
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Apostila de portugol (algoritmo)
Apostila de portugol (algoritmo)Apostila de portugol (algoritmo)
Apostila de portugol (algoritmo)
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Lista exercícios
Lista exercíciosLista exercícios
Lista exercícios
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03  - Exercícios de Leitura e AtribuiçãoAlgoritmos 01 - Semana 03  - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
A3 se
A3 seA3 se
A3 se
 
Introdução - Algoritmos
Introdução - AlgoritmosIntrodução - Algoritmos
Introdução - Algoritmos
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para Faça
 
Lógica De Programação
Lógica De ProgramaçãoLógica De Programação
Lógica De Programação
 
Guia para traducao algoritmos x l ps
Guia para traducao algoritmos x l psGuia para traducao algoritmos x l ps
Guia para traducao algoritmos x l ps
 
Conceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios iConceitos e técnicas de programação lista de exercícios i
Conceitos e técnicas de programação lista de exercícios i
 
Programar Em Pascal
Programar Em PascalProgramar Em Pascal
Programar Em Pascal
 

Ähnlich wie Algop - aula 04 pascal 1

Algoritmos - Aula 07 C - Resolucao de Exercicios - Resolucao
Algoritmos - Aula 07 C - Resolucao de Exercicios - ResolucaoAlgoritmos - Aula 07 C - Resolucao de Exercicios - Resolucao
Algoritmos - Aula 07 C - Resolucao de Exercicios - ResolucaoRodrigo Kiyoshi Saito
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Lista de exercício
Lista de exercício   Lista de exercício
Lista de exercício Jota Thin
 
Algoritmo Variaveis
Algoritmo   VariaveisAlgoritmo   Variaveis
Algoritmo VariaveisAndré Nobre
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bitsRicardo Bolanho
 
Alg aula 03 - construcao algoritmos2 tp1
Alg   aula 03 - construcao algoritmos2 tp1Alg   aula 03 - construcao algoritmos2 tp1
Alg aula 03 - construcao algoritmos2 tp1Thalles Anderson
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Aula 6 1 linguagem pascal-parte_1
Aula 6   1 linguagem pascal-parte_1Aula 6   1 linguagem pascal-parte_1
Aula 6 1 linguagem pascal-parte_1Duane Bertoldo
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Aula 11- Algoritmos e Programação.pptx
Aula 11- Algoritmos e Programação.pptxAula 11- Algoritmos e Programação.pptx
Aula 11- Algoritmos e Programação.pptxLemosManuel
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Isaac Barros
 

Ähnlich wie Algop - aula 04 pascal 1 (20)

Algop - aula 04
Algop - aula 04Algop - aula 04
Algop - aula 04
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Algop - aula 03
Algop - aula 03Algop - aula 03
Algop - aula 03
 
Algoritmos - Aula 07 C - Resolucao de Exercicios - Resolucao
Algoritmos - Aula 07 C - Resolucao de Exercicios - ResolucaoAlgoritmos - Aula 07 C - Resolucao de Exercicios - Resolucao
Algoritmos - Aula 07 C - Resolucao de Exercicios - Resolucao
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Lista de exercício
Lista de exercício   Lista de exercício
Lista de exercício
 
Algoritmo Variaveis
Algoritmo   VariaveisAlgoritmo   Variaveis
Algoritmo Variaveis
 
Algop - aula 06 resposta exercícios
Algop - aula 06 resposta exercíciosAlgop - aula 06 resposta exercícios
Algop - aula 06 resposta exercícios
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bits
 
Alg aula 03 - construcao algoritmos2 tp1
Alg   aula 03 - construcao algoritmos2 tp1Alg   aula 03 - construcao algoritmos2 tp1
Alg aula 03 - construcao algoritmos2 tp1
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Aula 6 1 linguagem pascal-parte_1
Aula 6   1 linguagem pascal-parte_1Aula 6   1 linguagem pascal-parte_1
Aula 6 1 linguagem pascal-parte_1
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Introducao logica
Introducao logicaIntroducao logica
Introducao logica
 
Lab inf 1_ aula_4
Lab  inf 1_ aula_4Lab  inf 1_ aula_4
Lab inf 1_ aula_4
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Exercicios facebook
Exercicios facebookExercicios facebook
Exercicios facebook
 
Aula 11- Algoritmos e Programação.pptx
Aula 11- Algoritmos e Programação.pptxAula 11- Algoritmos e Programação.pptx
Aula 11- Algoritmos e Programação.pptx
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1
 

Mehr von Thiago Toscano Ferrari (8)

Algop - aula 08 - respostas
Algop - aula 08 - respostasAlgop - aula 08 - respostas
Algop - aula 08 - respostas
 
Algop - aula 08
Algop - aula 08Algop - aula 08
Algop - aula 08
 
Algop - aula 07 resposta exercícios
Algop - aula 07 resposta exercíciosAlgop - aula 07 resposta exercícios
Algop - aula 07 resposta exercícios
 
Algop - aula 07
Algop - aula 07Algop - aula 07
Algop - aula 07
 
Algop - aula 06
Algop - aula 06Algop - aula 06
Algop - aula 06
 
Algop - aula 05
Algop - aula 05Algop - aula 05
Algop - aula 05
 
Algop - aula 02
Algop - aula 02Algop - aula 02
Algop - aula 02
 
Teste 1 - Engenharia mecânica
Teste 1 - Engenharia mecânicaTeste 1 - Engenharia mecânica
Teste 1 - Engenharia mecânica
 

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);