Você está na página 1de 59

INF1005: Programao I

Algoritmos e
Pseudocdigo
Tpicos Principais
Definio de Algoritmo
Exemplos Bsicos
Formas de representao
Condicionais
Exemplos com Condicionais
Repeties
Exemplos com Repeties
Definio de Algoritmo

Um algoritmo uma sequncia de aes


que resolve um problema.

Problema Algoritmo
Definio de Algoritmo

Mais formalmente: Um algoritmo uma


sequncia finita de instrues bem definidas
e no ambguas, cada uma das quais pode
ser executada mecnicamente num perodo
de tempo finito e com uma quantidade de
esforo finito.
Exemplos Bsicos
Receita de um bolo de chocolate:
1. Bater duas claras em neve
2. Adicionar duas gemas
3. Adicionar uma xcara de aucar
4. Adicionar duas colheres de margarina
5. Adicionar uma xcara de farinha de trigo
6. Adicionar uma colher de ch de fermento
7. Adicionar uma xcara de chocolate em p
8. Levar batedeira at formar uma massa homognea
9. Colocar numa forma e levar ao forno em fogo brando
Exemplos Bsicos
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
Representao
Linguagem Natural: Os algoritmos so
expressos diretamente em linguagem natural (o
portugus, por exemplo).
Fluxograma: Representao grfica que emprega
formas geomtricas padronizadas para indicar as
diversas aes e decises que devem ser executadas
para resolver o problema.
Pseudocdigo: Emprega uma linguagem
intermediria entre a linguagem natural e uma
linguagem de programao para descrever algoritmos.
Formas de
Representao
Problema: A partir de 3 notas de um aluno,
calcular sua mdia aritmtica e escrever na
tela se ele foi aprovado ou reprovado,
levando em conta que a mdia para
aprovao deve ser pelo menos 5.0.
Formas de
Representao
Linguagem natural:
1. Obter as 3 notas das provas do aluno
2. Calcular a mdia aritmtica das 3 notas
3. Comparar a mdia com o valor 5.0
4. Se for maior ou igual, escrever
aprovado
5. Caso contrrio, escrever reprovado
Formas de
Representao
Fluxograma:
Formas de
Representao
Fluxograma:

bug
Formas de
Representao
Pseudocdigo:
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
Representao
Pseudocdigo:
variaveis
media, nota1, nota2, nota3
inicio armazenam
leia nota1, nota2 e nota3 informaes
media = (nota1+nota2+nota3)/3 necessrias para
se (media >= 5) entao
escreva aluno aprovado
soluo do
senao problema
escreva aluno reprovado
fim
fim
Formas de
Representao
Problema: A partir das trs notas de um
aluno, calcular sua mdia aritmtica e
determinar se ele foi aprovado, vai fazer
prova final ou foi reprovado. O aluno
aprovado se tem mdia maior ou igual a
5.0, reprovado se tem mdia menor que
3.0 e tem que fazer prova final se no cai
em nenhum dos casos anteriores.
Formas de
Representao
Fluxograma:

OBS: Tem um
erro nesse
diagrama.
Quem consegue
ver?
Formas de
Representao
Dica: O erro est
Fluxograma: aqui
Formas de
Representao
variaveis
media, nota1, nota2, nota3
inicio

Pseudocdigo:
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, ns precisamos


controlar a execuo de um bloco de
instrues, s permitindo sua execuo
quando uma condio 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:
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
escreva s executar se (media >= 5) entao
se mdia for maior ou escreva aluno aprovado
igual a 5 senao
escreva aluno reprovado
fim
fim
Condicionais

se (media >= 5) entao


escreva aluno aprovado
fim
Condicionais
se (condio verdadeira) entao
se (media >= 5) entao instruo 1
escreva aluno aprovado instruo 2
fim ...
fim
Condicionais
Podemos tratar tambm quando
uma condio falsa

Executa quando se (media >= 5) entao


condio escreva aluno aprovado
verdadeira senao
escreva aluno reprovado
fim
Condicionais
Podemos tratar tambm quando
uma condio falsa

se (media >= 5) entao


escreva aluno aprovado
senao
escreva aluno reprovado
Executa quando fim
condio falsa
Condicionais
Podemos incluir condicionais dentro
dos blocos de instrues de
condicionais
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) entao
Bloco executa senao
escreva aluno aprovado

apenas quando se (media >= 3) entao


escreva aluno em prova final
mdia < 5 senao
escreva aluno reprovado
fim
fim
fim
Testes Condicionais
Podemos incluir testes condicionais
dentro dos blocos de instrues de
testes condicionais
variaveis
media, nota1, nota2, nota3
inicio
Instruo leia nota1, nota2 e nota3
media = (nota1+nota2+nota3)/3
executa apenas se (media >= 5) entao
quando escreva aluno aprovado
senao
mdia < 5 e se (media >= 3) entao
escreva aluno em prova final
mdia >= 3 senao
escreva aluno reprovado
fim
fim
fim
Testes Condicionais
Podemos incluir testes condicionais
dentro dos blocos de instrues
variaveis
media, nota1, nota2, nota3
inicio
leia nota1, nota2 e nota3
Instruo media = (nota1+nota2+nota3)/3
executa apenas se (media >= 5) entao
escreva aluno aprovado
quando senao
se (media >= 3) entao
mdia < 3 escreva aluno em prova final
senao
escreva aluno reprovado
fim
fim
fim
Testes Condicionais
Outra forma de escrever o
pseudocdigo anterior:
variaveis
media, nota1, nota2, nota3 variaveis
inicio media, nota1, nota2, nota3
leia nota1, nota2 e nota3 inicio
media = (nota1+nota2+nota3)/3 leia nota1, nota2 e nota3
se (media >= 5) entao media = (nota1+nota2+nota3)/3
escreva aluno aprovado se (media >= 5) entao
senao escreva aluno aprovado
se (media >= 3) entao senao se (media >= 3) entao
escreva aluno em prova final escreva aluno em prova final
senao senao
escreva aluno reprovado escreva aluno reprovado
fim fim
fim fim
fim
Expresses Booleanas

A expresso que escrevemos at agora


para testar se uma condio verdadeira
chama-se expresso booleana.
Uma expresso booleana sempre gera um
resultado verdadeiro ou falso.
Expresses Booleanas
usaremos os seguintes formatos de expresses
booleanas:
- mdia > 5 (mdia maior que 5?)
- mdia < 5 (mdia menor que 5?)
- mdia >= 5 (mdia maior ou igual a 5?)
- mdia <= 5 (mdia menor ou igual a 5?)
- mdia != 5 (mdia diferente de 5?)
- mdia == 5 (mdia igual a 5?)
Combinando
Expresses Booleanas

Ns podemos combinar expresses


booleanas de duas formas
Essas combinaes que ns veremos geram
um resultado verdadeiro ou falso.
Combinando
Expresses Booleanas
Usando a conjuno e
se(media < 5 e media >= 3) entao
escrever em prova final
fim
Combinando
Expresses Booleanas
Usando a conjuno e
se(media < 5 e media >= 3) entao
escrever em prova final
fim
Expresso 1 Expresso 2 Resultado
Falso
Falso Falso
Falso Falso
Verdadeiro Falso
soFasl
Verdadeiro Falso
Verdadeiro
Verdadeiro Verdadeiro
dd
Combinando
Expresses Booleanas
Usando a disjuno ou
se(nota == A ou nota == B) entao
escrever passou com louvor
fim
Combinando
Expresses Booleanas
Usando a disjuno ou
se(nota == A ou nota == B) entao
escrever passou com louvor
fim
Expresso 1 Expresso 2 Resultado
Falso
Falso Falso
Falso
Verdadeiro Verdadeiro
soFasl
Verdadeiro Falso Verdadeiro
Verdadeiro
Verdadeiro Verdadeiro
dd
Exemplos com
Condicionais
Problema: Escreva um pseudocdigo que
obtm as 3 notas de um aluno, calcula sua
mdia e caso o aluno tenha sido aprovado,
escreva na tela Aprovado. O aluno
aprovado se ele teve mdia 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 pseudocdigo que
obtm as 3 notas de um aluno, calcula sua
mdia e caso o aluno esteja em prova final,
escrever Prova final. O aluno fica em
prova final se ele teve mdia 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
Repeties

Existem diversos problemas que, para


resolv-los, precisamos executar uma
sequncia de instrues vrias vezes.
Para programar uma repetio, precisamos
criar um lao (loop).
Repeties
Uma forma de criar uma repetio usar
a palavra enquanto.

enquanto(expresso booleana) faa


instruo 1
instruo 2
...
fim
Repeties
Uma forma de criar uma repetio usar
a palavra enquanto.

enquanto(expresso booleana) faa


instruo 1
instruo 2
... instrues executam
fim enquanto expresso
booleana for
verdadeira
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:

numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
0
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
0
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
0 0
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
1 0
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
1 0
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
1 01
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
2 01
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
2 01
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
2 012
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
3 012
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1
fim

Valor do Tela do
3 012
nmero Computador
Repeties
Para escrever os nmeros 0, 1 e 2 na tela:
numero = 0
enquanto(numero < 3) faa
escrever numero
numero = numero + 1 falso
fim

Valor do Tela do
3 012
nmero Computador
Exemplos com
Repeties

Problema: Escreva um pseudocdigo que l


o nmero de alunos de uma turma e
depois para cada aluno, l a suas 3 notas da
prova e no final escreve a mdia da turma.
Exemplos com
Repeties
variaveis
num_alunos, i
media, mediaTurma, nota1, nota2, nota3
inicio
leia num_alunos
i=0
mediaTurma = 0
enquanto(i < num_alunos) faa
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
Repeties

Problema: Ler um nmero no negativo e


escrever na tela seu fatorial.
Exemplos com
Repeties
variaveis
f, n
inicio
leia n
f=1
enquanto(n > 1) faa
f=f*n
n=n-1
fim
escreva f
fim