Sunteți pe pagina 1din 33

Universidade Federal da Paraba

Centro de Informtica
Introduo Programao

Prof. Bruno Jefferson


bruno@ci.ufpb.br

Bruno Jefferson (2014)

Roteiro
Introduo
 Definio
 Caractersticas
 Formas de Representao


Descrio Narrativa
Fluxograma
Linguagem Algortmica


Exerccios

Introduo
Diferente do que ensina o senso comum,
os computadores no possuem
inteligncia.
 Ele deve ser orientado a realizar as mais
diversas tarefas.
 Como instruir o computador para a
execuo de tarefas?


Atravs da descrio de um conjunto de


passos em um linguagem que o computador
capaz de entender.
Bruno Jefferson (2014)

Introduo


Essa sequncia de passos computacionais


que orientam o computador na execuo
de tarefas chamada de algoritmo.

Bruno Jefferson (2014)

Definio
Um algoritmo um conjunto no ambguo e
ordenado de passos executveis que definem
um processo finito. (Turing e Church, 1936).
 Se os passos de um algoritmo puderem
ser executados por um computador,
ento ele denominado de algoritmo
computacional.


Exemplos
Instrues para se utilizar um aparelho
eletrodomstico.
 Uma receita para preparo de algum prato.
 Realizar uma ligao em um telefone
pblico.
 Sacar dinheiro em um caixa eletrnico.
 Fazer um sanduche.


Exemplos


Algoritmo para fritar um ovo


1.
2.
3.
4.
5.
6.
7.
8.

Retire o ovo da geladeira.


Coloque a frigideira no fogo.
Coloque leo na frigideira.
Quebre o ovo, separando a casca.
Ponha o ovo e a clara na frigideira.
Espere um minuto.
Apague o fogo.
Retire o ovo da frigideira.
Bruno Jefferson (2014)

Exemplos


Ir para a escola
1.
2.
3.
4.

Acordar cedo
Ir ao banheiro
Abrir o armrio para escolher roupa
Se o tempo estiver quente ento
pegar uma camiseta e uma cala

Seno
pegar um agasalho e cala jeans

5.
6.
7.
8.

Vestir a roupa escolhida


Tomar caf
Pegar uma conduo
Descer na parada da escola
8

Exemplos


Sacar dinheiro no banco 24 horas


1.
2.
3.
4.
5.

Ir at um banco 24 horas
Colocar carto
Digitar a senha
Solicitar quantia desejada
Se o saldo for maior ou igual a quantia desejada
ento
sacar;

Seno
mostrar mensagem de impossibilidade de saque

6. Retirar dinheiro e o carto


7. Sair do banco 24 horas
9

Exemplos


Trocar lmpada
1. Enquanto a lmpada no estiver livre no
soquete faa
Gire a lmpada queimada no sentido anti-horrio.

2. Posicione a lmpada nova no soquete.


3. Gire a lmpada no sentido horrio.
4. Enquanto a lmpada no estiver firme no
soquete faa
Gire a lmpada no sentido horrio.

5. Se lmpada no acender ento


Volte para passo 1.
10

Problema

Bruno Jefferson (2014)

11

Algoritmo soluo
1.
2.
3.
4.
5.
6.
7.
8.
9.

Encha a vasilha de nove litros.


Usando a vasilha de nove litros, encha a de quatro.
Coloque a quantidade que sobrou (cinco litros) na
terceira vasilha (v3 = 5);
Esvazie a vasilha de quatro litros.
Encha novamente a vasilha de nove litros.
Usando a vasilha de nove litros, encha a de quatro.
Esvazie a de quatro litros.
Usando a sobra da de nove litros, encha novamente a
de quatro litros.
Coloque a sobra da de nove litros (um litros), na
terceira vasilha (v3 = 5 + 1 = 6).
Bruno Jefferson (2014)

12

Caractersticas


Definio
As aes devem ser definidas rigorosamente e
sem ambiguidades.

Finitude
Um algoritmo deve sempre terminar aps um
nmero finito de passos.

Caractersticas


Efetividade
Cada passo/instruo/etapa de um algoritmo
deve ser executvel.

Entradas
Um algoritmo deve ter zero ou mais entradas.

Sadas
Pelo menos um valor produzido.

Caractersticas


Exemplo 1
Sacar dinheiro do caixa eletrnico
1. Ir at um caixa eletrnico. Ambos falham na
caracterstica de
2. Digitar a senha.
definio.
3. Escolher a opo de saque.
4. Solicitar a quantia desejada
5. Se o saldo for maior que a quantia, sacar.
6. Retire o carto.

Caractersticas


Exemplo 2
Sacar dinheiro do caixa eletrnico
1. Ir at um caixa eletrnico.
2. Faa um carto magntico.
Falha na
3. Colocar o carto.
caracterstica de
4. Digitar a senha.
efetividade.
5. Escolher a opo de saque.
6. Solicitar a quantia desejada.
7. Se o saldo for maior que a quantia, sacar.
8. Retire o carto.

Caractersticas


Exemplo 3
Sacar dinheiro do caixa eletrnico
1. Ir at um caixa eletrnico.
2. Colocar o carto.
Falha na
3. Digitar a senha.
caracterstica de
4. Escolher a opo de saque.
finitude.
5. Solicitar a quantia desejada.
6. Se o saldo for maior que a quantia, sacar.
7. Retire o carto.
8. Voltar ao passo 1.

Formas de Representao
Descrio Narrativa

Fluxograma
Linguagem Algortmica

Formas de Representao


Descrio Narrativa
Os algoritmos so expressos diretamente em
linguagem natural.

Fluxograma
Representao grfica na qual formas
geomtricas determinam os passos do
algoritmo.

Linguagem Algortmica
Consiste na definio de um pseudolinguagem
de programao, cujos comandos so
descritos em linguagem natural.

Descrio Narrativa


Exemplos

Fritar um ovo.
Ir para a escola.
Sacar dinheiro em um banco 24 horas.
Trocar a lmpada.

Bruno Jefferson (2014)

20

Fluxograma


Exemplo 1

Bruno Jefferson (2014)

21

Fluxograma

Exemplo 2

Bruno Jefferson (2014)

22

Linguagem Algortmica


Exemplo
Somar trs nmeros
inicio
escreva(Digite trs nmeros);
leia(n1, n2, n3);
s n1 + n2 + n3;
escreva(O valor armazenado em S eh , s);
fim

Bruno Jefferson (2014)

23

Formas de Representao


Problema

Faa um algoritmo que recebe como entrada


dois nmeros reais, divide o primeiro pelo
segundo e imprime o resultado, caso ele seja
maior do que zero.

Formas de Representao


Descrio Narrativa
1. Solicite que sejam informados dois nmeros.
2. Calcule a diviso entre eles.
3. Reproduza o resultado, caso ele seja maior
que zero.

O algoritmo est claro o suficiente?


Como informar os nmeros?
Quem ser o divisor? E o dividendo?
De que forma o resultado ser informado?
Onde?

Formas de Representao


Fluxograma

Incio

Incio e fim de
programa

x1, x2

Operao de
entrada de dados

y = x1 / x2;

Operao de sada

resultado

Fim

y>0

Incio e fim de
programa

Operao de atribuio

Operao de deciso

Formas de Representao


Linguagem Algortmica

ALGORITMO Divide_Numeros
DECLARE x1, x2, y: NUMRICO
ESCREVA(digite dois numeros:);
LEIA(x1, x2);
y = x1 / x2;
SE (y > 0) ENTO
escreva(resultado = , y);
FIM_ALGORITMO

Formas de Representao
Representao

Descrio
Narrativa

Vantagens
- Facilidade na
elaborao.

Desvantagens
- Distante das linguagens
de programao.
- Impreciso.
- Baixa confiabilidade.

Fluxograma

- Figuras dizem mais que


palavras.
- Padro mundial.

- Difcil de representar
medida que o algoritmo
cresce.

Linguagem
Algortmica

- Usa-se o portugus
como base.
- Prximo as linguagens
de programao.

- Poder de expresso
reduzido.
- No padronizado.

Abordagem Dividir-para-Conquistar
Divide-se sucessivamente o problema em
subproblemas menores at que possam
ser resolvidos de forma trivial.
 As solues dos subproblemas so
combinadas para gerar a soluo do
problema original.


Abordagem Dividir-para-Conquistar


Exemplo: Algoritmo Troca de pneu


1.
2.
3.
4.
5.

Pegue o macaco e levante o carro;


Retire o pneu furado;
Pegue o estepe, coloque-o na roda e aperte os parafusos;
Rebaixe o carro;
Guarde o pneu furado e o macaco;

Problema dividido em 5 subproblemas;


Subproblemas so independentes
 Podem ser atribudos a pessoas diferentes;
 Subproblema 1 para um amigo, subproblema 2 para
outro, etc.
30

Abordagem Dividir-para-Conquistar


Refinando o subproblema 1: Pegue o


macaco e levante o carro.
1.1. Remova o macaco do porta-malas;
1.2. Coloque o macaco sob o carro e prximo ao
pneu furado;
1.3. Insira a manivela no macaco
1.4. Coloque um calo sob o carro para impedi-lo de
se mover
1.5. Levante o carro com o macaco at que haja
espao o suficiente para colocar o estepe;

31

Abordagem Dividir-para-Conquistar


Refinando o subproblema 1.4:


Coloque um calo sob o carro para
impedi-lo de se mover.
1.4.1. se o carro est virado para o topo de uma ladeira
ento
coloque um calo atrs de um pneu;
seno
coloque um calo na frente de um pneu;

32

Exerccios


Com base no pseudocdigo do algoritmo


Divide_Numeros, elabore um
procedimento, que recebe 3 (trs) notas
de um aluno como entrada de dados,
calcula e imprime a mdia entre elas, alm
de informar se o aluno foi aprovado ou
reprovado.

S-ar putea să vă placă și