Algoritmos e Pseudocódigo - DI PUC-Rio

Propaganda
INF1005: Programação I
Algoritmos e
Pseudocódigo
Tópicos Principais
•
•
•
•
•
•
•
Definição de Algoritmo
Exemplos Básicos
Formas de representação
Condicionais
Exemplos com Condicionais
Repetições
Exemplos com Repetições
Definição de Algoritmo
• Um algoritmo é uma sequência de ações
que resolve um problema.
Problema
Algoritmo
Definição de Algoritmo
• Mais formalmente: Um algoritmo é uma
sequência finita de instruções bem definidas
e não ambíguas, cada uma das quais pode
ser executada mecânicamente num período
de tempo finito e com uma quantidade de
esforço finito.
Exemplos Básicos
•
Receita de um bolo de chocolate:
1.
Bater duas claras em neve
2.
Adicionar duas gemas
3.
Adicionar uma xícara de açucar
4.
Adicionar duas colheres de margarina
5.
Adicionar uma xícara de farinha de trigo
6.
Adicionar uma colher de chá de fermento
7.
Adicionar uma xícara de chocolate em pó
8.
Levar à batedeira até formar uma massa homogênea
9.
Colocar numa forma e levar ao forno em fogo brando
Exemplos Básicos
•
Para trocar um pneu de um carro:
1. Afrouxar ligeiramente as porcas
2. Suspender o carro com o macaco
3. Retirar as porcas e o pneu
4. Colocar o pneu reserva
5. Apertar as porcas
6. Abaixar o carro
7. Dar o aperto final nas porcas
•
•
•
Formas de
Representação
Linguagem Natural: Os algoritmos são
expressos diretamente em linguagem natural (o
português, por exemplo).
Fluxograma: Representação gráfica que emprega
formas geométricas padronizadas para indicar as
diversas ações e decisões que devem ser executadas
para resolver o problema.
Pseudocódigo: Emprega uma linguagem
intermediária entre a linguagem natural e uma
linguagem de programação para descrever algoritmos.
Formas de
Representação
• Problema: A partir de 3 notas de um aluno,
calcular sua média aritmética e escrever na
tela se ele foi aprovado ou reprovado,
levando em conta que a média para
aprovação deve ser pelo menos 5.0.
Formas de
Representação
• Linguagem natural:
1. Obter as 3 notas das provas do aluno
2. Calcular a média aritmética das 3 notas
3. Comparar a média com o valor 5.0
4. Se for maior ou igual, escrever
“aprovado”
5. Caso contrário, escrever “reprovado”
Formas de
Representação
• Fluxograma:
Formas de
Representação
• Fluxograma:
bug
Formas de
Representação
• Pseudocódigo:
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
escreva “aluno reprovado”
fim
fim
Formas de
Representação
• Pseudocódigo:
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
escreva “aluno reprovado”
fim
fim
armazenam
informações
necessárias para
solução do
problema
Formas de
Representação
• Problema: A partir das três notas de um
aluno, calcular sua média aritmética e
determinar se ele foi aprovado, vai fazer
prova final ou foi reprovado. O aluno é
aprovado se tem média maior ou igual a
5.0, é reprovado se tem média menor que
3.0 e tem que fazer prova final se não cai
em nenhum dos casos anteriores.
Formas de
Representação
• Fluxograma:
OBS: Tem um
erro nesse
diagrama.
Quem consegue
ver?
Formas de
Representação
• Fluxograma:
Dica:
O erro está
aqui
Formas de
Representação
• Pseudocódigo:
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
se (media >= 3) entao
escreva “aluno em prova final”
senao
escreva “aluno reprovado”
fim
fim
fim
Condicionais
• Em diversos momentos, nós precisamos
controlar a execução de um bloco de
instruções, só permitindo sua execução
quando uma condição for verdadeira.
Condicionais
• Exemplo:
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
escreva “aluno reprovado”
fim
fim
Condicionais
• Exemplo:
escreva só executará
se média for maior ou
igual a 5
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
escreva “aluno reprovado”
fim
fim
Condicionais
se (media >= 5) entao
escreva “aluno aprovado”
fim
Condicionais
se (media >= 5) entao
escreva “aluno aprovado”
fim
se (condição verdadeira) entao
instrução 1
instrução 2
...
fim
Condicionais
• Podemos tratar também quando
uma condição é falsa
Executa quando
condição
verdadeira
se (media >= 5) entao
escreva “aluno aprovado”
senao
escreva “aluno reprovado”
fim
Condicionais
• Podemos tratar também quando
uma condição é falsa
Executa quando
condição falsa
se (media >= 5) entao
escreva “aluno aprovado”
senao
escreva “aluno reprovado”
fim
Condicionais
• Podemos incluir condicionais dentro
dos blocos de instruções de
condicionais
Bloco executa
apenas quando
média < 5
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
se (media >= 3) entao
escreva “aluno em prova final”
senao
escreva “aluno reprovado”
fim
fim
fim
Testes Condicionais
• Podemos incluir testes condicionais
dentro dos blocos de instruções de
testes condicionais
Instrução
executa apenas
quando
média < 5 e
média >= 3
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
se (media >= 3) entao
escreva “aluno em prova final”
senao
escreva “aluno reprovado”
fim
fim
fim
Testes Condicionais
• Podemos incluir testes condicionais
dentro dos blocos de instruções
Instrução
executa apenas
quando
média < 3
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
se (media >= 3) entao
escreva “aluno em prova final”
senao
escreva “aluno reprovado”
fim
fim
fim
Testes Condicionais
• Outra forma de escrever o
pseudocódigo anterior:
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao
se (media >= 3) entao
escreva “aluno em prova final”
senao
escreva “aluno reprovado”
fim
fim
fim
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
escreva “aluno aprovado”
senao se (media >= 3) entao
escreva “aluno em prova final”
senao
escreva “aluno reprovado”
fim
fim
Expressões Booleanas
• A expressão que escrevemos até agora
para testar se uma condição é verdadeira
chama-se expressão booleana.
• Uma expressão booleana sempre gera um
resultado verdadeiro ou falso.
Expressões Booleanas
•
usaremos os seguintes formatos de expressões
booleanas:
-
média > 5 (média maior que 5?)
média < 5 (média menor que 5?)
média >= 5 (média maior ou igual a 5?)
média <= 5 (média menor ou igual a 5?)
média != 5 (média diferente de 5?)
média == 5 (média igual a 5?)
Combinando
Expressões Booleanas
• Nós podemos combinar expressões
booleanas de duas formas
• Essas combinações que nós veremos geram
um resultado verdadeiro ou falso.
Combinando
Expressões Booleanas
• Usando a conjunção e
se(media < 5 e media >= 3) entao
escrever “em prova final”
fim
Combinando
Expressões Booleanas
• Usando a conjunção e
se(media < 5 e media >= 3) entao
escrever “em prova final”
fim
Expressão 1
Falso
Falso
soFasl
Verdadeiro
Verdadeiro
dd
Expressão 2
Falso
Verdadeiro
Falso
Verdadeiro
Resultado
Falso
Falso
Falso
Verdadeiro
Combinando
Expressões Booleanas
• Usando a disjunção ou
se(nota == A ou nota == B) entao
escrever “passou com louvor”
fim
Combinando
Expressões Booleanas
• Usando a disjunção ou
se(nota == A ou nota == B) entao
escrever “passou com louvor”
fim
Expressão 1
Falso
Falso
soFasl
Verdadeiro
Verdadeiro
dd
Expressão 2
Falso
Verdadeiro
Falso
Verdadeiro
Resultado
Falso
Verdadeiro
Verdadeiro
Verdadeiro
Exemplos com
Condicionais
• Problema: Escreva um pseudocódigo que
obtém as 3 notas de um aluno, calcula sua
média e caso o aluno tenha sido aprovado,
escreva na tela “Aprovado”. O aluno é
aprovado se ele teve média maior ou igual
a 5 e nenhuma nota menor que 3.
Exemplos com
Condicionais
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5 e nota1 >= 3 e nota2 >= 3 e nota3 >= 3) entao
escreva “Aprovado”
fim
fim
Exemplos com
Condicionais
• Problema: Escreva um pseudocódigo que
obtém as 3 notas de um aluno, calcula sua
média e caso o aluno esteja em prova final,
escrever “Prova final”. O aluno fica em
prova final se ele teve média menor que 5
ou se tirou menos que 3 em uma de suas
provas.
Exemplos com
Condicionais
variaveis
media, nota1, nota2, nota3
inicio
leia(nota1, nota2, nota3)
media = (nota1+nota2+nota3)/3
se (media < 5 ou nota1 < 3 ou nota2 < 3 ou nota3 < 3) entao
escreva “Prova final”
fim
fim
Repetições
• Existem diversos problemas que, para
resolvê-los, precisamos executar uma
sequência de instruções várias vezes.
• Para programar uma repetição, precisamos
criar um laço (loop).
Repetições
• Uma forma de criar uma repetição é usar
a palavra enquanto.
enquanto(expressão booleana) faça
instrução 1
instrução 2
...
fim
Repetições
• Uma forma de criar uma repetição é usar
a palavra enquanto.
enquanto(expressão booleana) faça
instrução 1
instrução 2
...
instruções executam
fim
enquanto expressão
booleana for
verdadeira
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
0
Tela do
Computador
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
0
Tela do
Computador
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
0
Tela do
Computador
0
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
1
Tela do
Computador
0
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
1
Tela do
Computador
0
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
1
Tela do
Computador
01
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
2
Tela do
Computador
01
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
2
Tela do
Computador
01
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
2
Tela do
Computador
012
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
3
Tela do
Computador
012
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
3
Tela do
Computador
012
Repetições
• Para escrever os números 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faça
escrever numero
numero = numero + 1
fim
Valor do
número
3
Tela do
Computador
falso
012
Exemplos com
Repetições
• Problema: Escreva um pseudocódigo que lê
o número de alunos de uma turma e
depois para cada aluno, lê a suas 3 notas da
prova e no final escreve a média da turma.
Exemplos com
Repetições
variaveis
num_alunos, i
media, mediaTurma, nota1, nota2, nota3
inicio
leia num_alunos
i=0
mediaTurma = 0
enquanto(i < num_alunos) faça
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
mediaTurma = mediaTurma + media
i=i+1
fim
mediaTurma = mediaTurma / num_alunos
escrever mediaTurma
fim
Exemplos com
Repetições
• Problema: Ler um número não negativo e
escrever na tela seu fatorial.
Exemplos com
Repetições
variaveis
f, n
inicio
leia n
f=1
enquanto(n > 1) faça
f=f*n
n=n-1
fim
escreva f
fim
Download