Académique Documents
Professionnel Documents
Culture Documents
Hlio Lopes
8/7/12
Algoritmos e Pseudocdigo
INF1005 Programao I
Prof. Hlio Lopes
lopes@inf.puc-rio.br
sala 408 RDC
algoritmos e pseudocdigo
tpicos
algoritmo definies
representao e resoluo de problemas
representao de programa
pseudocdigo
fluxograma
construes
entrada e sada
condicionais
repeties
2
8/7/12
algoritmos
algoritmo - definies
especificao precisa (no ambgua) de um
comportamento que visa resolver um problema bem
definido
programa de computador
algoritmo codificado em uma linguagem de programao
4
8/7/12
algoritmo - definies
especificao precisa (no ambgua) de um
comportamento que visa resolver um problema bem
definido
algoritmo definies
especificao precisa (no ambgua) de um
comportamento que visa resolver um problema bem
definido
condies iniciais (estado de problema)
como as coisas so
recursos
meios ou mtodos para transformar um estado de problema
8/7/12
exemplo
EX. 01
algoritmo
1.
______________________________________________
2.
______________________________________________
3.
______________________________________________
4.
______________________________________________
5.
______________________________________________
6.
______________________________________________ 7
2.
ir at o local escolhido
3.
4.
fazer o pedido
5.
pagar
6.
aguardar o pedido
7.
comer
8/7/12
Rua 5
Rua 6
Rua 7
Av.1
Av.2
Av.3
Av.4
10
8/7/12
problemas e solues
11
ruas: [4,7]
Rua 5
avenidas: [1,4]
convenes de representao:
Rua 6
posio: (r,a)
obstculo: (r1,a1,r2,a2)
Rua 7
Av.1
Av.2
Av.3
Av.4
condies iniciais:
posio: (7,1)
obstculos: { (6,2,7,2), (4,2,5,2), (5,3,6,3), (6,4,7,4) }
objetivo:
posio: (4,3)
Quais as consequncias dessa representao?
12
8/7/12
algoritmo - exemplo
objetivo: verificar se um aluno est aprovado
(mdia das 3 notas >= 5.0) ou reprovado (caso
contrrio)
13
fluxograma
incio
media
(nota1+nota2+nota3)/3;
pseudocdigo
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
no
sim
escreva
(aprovado);
escreva
(reprovado);
fim
14
8/7/12
algoritmo em pseudocdigo
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
15
algoritmo em pseudocdigo
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
16
8/7/12
algoritmo exemplo
objetivo: a partir de trs notas de um aluno, verificar se
ele est:
aprovado (mdia >= 5.0)
em prova final (mdia < 5.0 e mdia >= 3.0) ou
reprovado (mdia < 3)
17
incio
media
(nota1+nota2+nota3)/3;
sim
escreva
(aprovado);
no
media >
3.0?
no
sim
escreva
(em prova final);
escreva
(reprovado);
fim
18
8/7/12
incio
media
(nota1+nota2+nota3)/3;
no
sim
media >
3.0?
no
sim
escreva
(aprovado);
escreva
(em prova final);
escreva
(reprovado);
fim
19
fluxograma (corrigido)
objetivo: a partir de trs notas de um aluno,
verificar se ele est:
incio
media
(nota1+nota2+nota3)/3;
sim
escreva
(aprovado);
no
media >=
3.0?
no
sim
escreva
(em prova final);
escreva
(reprovado);
fim
20
10
8/7/12
algoritmo em pseudocdigo
variveis
media, nota1, nota2, nota3
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
se (media >= 3) ento
escreva aluno em prova final
seno
escreva aluno reprovado
fim-se
fim-se
fim
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno se (media >= 3) ento
escreva aluno em prova final
seno
escreva aluno reprovado
fim-se
fim
21
entrada e
sada
22
11
8/7/12
entrada e sada
pseudocdigo
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
23
exerccio
EX. 02
12
8/7/12
condicionais
25
fluxograma
variveis
media, nota1, nota2, nota3
incio
leia nota1, nota2, nota3
media = (nota1+nota2+nota3)/3
se (media >= 5) ento
escreva aluno aprovado
seno
escreva aluno reprovado
fim-se
fim
se (condio) ento
instruo V1
instruo V2
instruo Vn
seno
instruo F1
instruo F2
instruo Fn
fim-se
instrues
executadas se
a condio for
verdadeira
incio
media
(nota1+nota2+nota3)/3;
media >=
5.0?
sim
escreva
(aprovado);
instrues
executadas se
a condio for
falsa
no
escreva
(reprovado);
fim
26
13
8/7/12
dvidas?
27
exerccio
EX. 03
14
8/7/12
maior que
menor que
29
conjuno (E)
resultado s verdadeiro se
ambos os valores forem
verdadeiros
disjuno (OU)
resultado s falso se ambos
os valores forem falsos
AeB
A ou B
30
15
exerccio
8/7/12
EX. 04
repeties
32
16
8/7/12
fluxograma
incio
leia num
no
num > 0?
fim
sim
leia (nota1, nota2,
nota3);
media
(nota1+nota2+nota3)/3;
no
enquanto a condio
for verdadeira
instruo Vn
fim-enquanto
instrues executadas
sim
escreva
(reprovado);
escreva
(aprovado);
num = num - 1
quando a condio
ou se torna falsa
33
exerccio
EX. 05
variveis
num
incio
num = 0
enquanto (num < 3) faa
escreva num
num= num - 1
fim-enquanto
fim
sada
sada
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
_______________________________
valor
de num a cada iterao
I0
num
I1
I2
I3
I4
I5
I7
I8
I0
num
I1
I2
I3
I4
I5
I6
I7
I8
34
17
exerccio
8/7/12
EX. 06
exerccio
EX. 06
Em que situaes
este programa falha?
36
18
exerccio
8/7/12
EX. 07
exerccio
EX. 07
variveis
f, n
incio
leia n
f=1
enquanto (n > 1) faa
f=f*n
n=n-1
fim-enquanto
escreva f
fim
38
19
8/7/12
dvidas?
Prof. Hlio Lopes
lopes@inf.puc-rio.br
sala 408 RDC
39
20