Você está na página 1de 30

Universidade Federal da Paraba

Centro de Informtica
Introduo Programao

Prof. Bruno Jefferson


bruno@ci.ufpb.br

Bruno Jefferson (2015)

Roteiro
Introduo
 Definio
 Caractersticas
 Formas de Representao


Descrio Narrativa
Fluxograma
Linguagem Algortmica


Exerccios
Bruno Jefferson (2015)

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 uma linguagem que o computador
capaz de entender.
Bruno Jefferson (2015)

Introduo


Essa sequncia de passos que orientam o


computador na execuo de tarefas
chamada de algoritmo.

Bruno Jefferson (2015)

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.


Bruno Jefferson (2015)

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.


Bruno Jefferson (2015)

Exemplos


Algoritmo para fritar um ovo


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

Retire o ovo da geladeira.


Acenda o fogo.
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 (2015)

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
Bruno Jefferson (2015)

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
Bruno Jefferson (2015)

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.
Bruno Jefferson (2015)

10

Problema
Suponha que voc dispe de duas vasilhas de
nove e quatro litros respectivamente. Como
elas no possuem marcao, no possvel ter
medidas intermedirias sobre o volume
ocupado. O problema consiste, ento, em
elaborar uma sequncia de passos, por meio
da utilizao das vasilhas de nove e quatro
litros, a fim de encher uma terceira vasilha
com seis litros de gua. As vasilhas podem ser
esvaziadas e completadas a qualquer
momento.
Bruno Jefferson (2015)

11

Problema

Bruno Jefferson (2015)

12

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 (2015)

13

Caractersticas


Definio
As aes devem ser definidas rigorosamente e
sem ambiguidades.

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

Bruno Jefferson (2015)

14

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.

Bruno Jefferson (2015)

15

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.

Bruno Jefferson (2015)

16

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. Digitar a quantia desejada.
7. Se o saldo for maior que a quantia, sacar.
8. Retire o carto.
Bruno Jefferson (2015)

17

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. Digitar a quantia desejada.
6. Se o saldo for maior que a quantia, sacar.
7. Retire o carto.
8. Voltar ao passo 1.
Bruno Jefferson (2015)

18

Formas de Representao
Descrio Narrativa

Fluxograma
Linguagem Algortmica

Bruno Jefferson (2015)

19

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.
Bruno Jefferson (2015)

20

Descrio Narrativa


Exemplos

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

Bruno Jefferson (2015)

21

Fluxograma


Exemplo 1

Bruno Jefferson (2015)

22

Fluxograma

Exemplo 2

Bruno Jefferson (2015)

23

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 (2015)

24

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.

Bruno Jefferson (2015)

25

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?
Bruno Jefferson (2015)

26

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

Operao de atribuio

Operao de deciso

Incio e fim de
programa
Bruno Jefferson (2015)

27

Formas de Representao


Linguagem Algortmica
algoritmo divide_numeros
x1, x2, y: real;
inicio
escreva(digite dois numeros:);
leia(x1, x2);
y = x1 / x2;
se (y > 0) ento
escreva(resultado = , y);
fim-se
fim

Bruno Jefferson (2015)

28

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.

Bruno Jefferson (2015)

29

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.

Bruno Jefferson (2015)

30