Você está na página 1de 38

Introduo a Algoritmos e

Linguagens de Programao
Aula 4 | Algoritmos

Apresentao

Luiz Augusto de M. Morais

Roteiro
Algoritmos
O que um algoritmo?

Estrutura de um algoritmo

Resolvendo problemas do mundo real

Representaes de algoritmos

Tipos de linguagem
De mquina

De montagem
(Assembly)

De programao

Compilada

Interpretada

Hbrida
UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Algoritmos

O que um algoritmo?

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

O que um algoritmo?

uma sequncia de passos finitos


para atingir um objetivo especfico

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Algoritmos

Estrutura de um algoritmo

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Estrutura de um algoritmo

Entrada

Processamento

Sada
UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Algoritmos

Resolvendo problemas
do mundo real

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Resolvendo problemas do mundo real


Receita de bolo

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Receita de bolo
Ingredientes

2 xcaras de acar

3 xcaras de farinha de trigo

4 colheres de margarina bem cheias

3 ovos

1 1/2 xcara de leite aproximadamente

1 colher (sopa) de fermento em p bem cheia

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Receita de bolo
Modo de preparo

1.Bata as claras em neve


2.Reserve
3.Bata bem as gemas com a margarina e o acar
4.Acrescente o leite e farinha aos poucos sem parar de bater
5.Por ltimo agregue as claras em neve e o fermento
6.Coloque em forma grande de furo central untada e enfarinhada
7.Asse em forno mdio, pr aquecido, por aproximadamente 40 minutos
8.Quando espetar um palito e sair limpo estar assado

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Resolvendo problemas do mundo real


Trocar uma lmpada

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Trocar uma lmpada | Tentativa 1

1.Troque a lmpada!

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Trocar uma lmpada | Tentativa 2


Detalhado

1. Pegar uma escada


2. Posicionar a escada embaixo da lmpada
3. Buscar uma lmpada nova
4. Subir na escada
5. Retirar a lmpada velha
6. Colocar a lmpada nova
7. Descer da escada

E se a lmpada no estivesse queimada?

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Trocar uma lmpada | Tentativa 3


Incluindo o teste da lmpada

1. Pegar uma escada


2. Posicionar a escada embaixo da lmpada
3. Buscar uma lmpada nova
4. Acionar o interruptor
5. Se a lmpada acender, encerre.
6. Subir na escada
7. Retirar a lmpada velha
8. Colocar a lmpada nova
9. Descer da escada

Deveramos verificar antes!

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Trocar uma lmpada | Tentativa 4


Verificando antes

1. Acionar interruptor
2. Se a lmpada acender, encerre.
3. Pegar uma escada
4. Posicionar a escada embaixo da lmpada
5. Buscar uma lmpada nova
6. Subir na escada
7. Retirar a lmpada velha
8. Colocar a lmpada nova
9. Descer da escada

Se a lmpada nova tambm no acender?

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Trocar uma lmpada | Tentativa 5


Repetindo at conseguir

1. Acionar interruptor
2. Se a lmpada acender, encerre.
3. Pegar uma escada
4. Posicionar a escada embaixo da lmpada
5. Buscar uma lmpada nova
6. Subir na escada
7. Retirar a lmpada velha
8. Colocar a lmpada nova
9. Descer da escada
10. Se lmpada nova acender, encerre
11. Repita os passos 5 a 10

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Algoritmos

Representaes de algoritmos

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Representaes de algoritmos
Linguagem natural
1.
1. Pegar
Pegar uma
uma escada
escada
2.
2. Posicionar
Posicionar aa escada
escada embaixo
embaixo da
da lmpada
lmpada
3.
3. Buscar
Buscar uma
uma lmpada
lmpada nova
nova
4.
4. Subir
Subir na
na escada
escada
5.
5. Retirar
Retirar aa lmpada
lmpada velha
velha
6.
6. Colocar
Colocar aa lmpada
lmpada nova
nova
7.
7. Descer
Descer da
da escada
escada

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Representaes de algoritmos
Pseudo-cdigo
leia
leia (x,
(x, y)
y)
se
se xx >> yy ento
ento
escreva
escreva (x
(x maior)
maior)
seno
seno
se
se yy >> xx ento
ento
escreva
escreva (y
(y maior)
maior)
seno
seno
escreva
escreva (x
(x ee yy so
so iguais)
iguais)
fim-se
fim-se
fim-se
fim-se

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Representaes de algoritmos
Fluxograma

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Tipos de linguagem

Linguagem de Mquina

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Mquina
Binrio

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Mquina

O computador s entende zeros e uns

Extremamente difcil de entender

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Tipos de linguagem

Linguagem de Montagem

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Montagem
Assembly

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Montagem

Muito difcil de entender

Incompatibilidade entre processadores

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Tipos de linguagem

Linguagem de Programao

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao

Tipo
Baixo nvel

Alto Nvel

Altssimo Nvel

Execuo
Compiladas

Interpretadas

Hbridas

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Tipo

Baixo nvel
Parecidas com cdigo de mquina

Linguagens de microprocessador e de montagem

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Tipo

Alto nvel
Guardam semelhanas da linguagem natural

C, C++, Pascal, Java

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Tipo

Altssimo nvel
Muito semelhantes linguagem natural

Ruby, Python

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Execuo

Linguagens compiladas

Cdigo-fonte

Compilador

Cdigo de mquina

Execuo

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Execuo

Linguagens compiladas
Rapidez

C, C++, Pascal

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Execuo

Linguagens interpretadas

Cdigo-fonte

Interpretador

Execuo

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Execuo

Linguagens interpretadas
Portabilidade

Python, Lua

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Execuo

Linguagens hbridas
Cdigo-fonte

Compilador

Execuo

Bytecode

Interpretador

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Linguagem de Programao | Execuo

Linguagens hbridas
Mais rpidas que linguagens interpretadas

Portabilidade

Java

UNIVERSIDADE ESTADUAL DA PARABA | PROJETOHERMES

Referncias

FERRARI, Fabrcio; CECHINEL, Cristian.


Introduo a Algoritmos e Programao. [S. l. : s. n.]

UNIVERSIDADE ESTADUAL DA PARABA | PROJETO HERMES