Upload
franklinsaraujo1302
View
213
Download
0
Embed Size (px)
DESCRIPTION
Algoritmos
Citation preview
Universidade Federal da Paraba
Centro de Informtica
Introduo Programao
Prof. Bruno Jefferson
1Bruno Jefferson (2015)
Roteiro
Introduo
Definio
Caractersticas
Formas de Representao
Descrio Narrativa
Fluxograma
Linguagem Algortmica
Exerccios
Bruno Jefferson (2015) 2
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) 3
Introduo
Essa sequncia de passos que orientam o computador na execuo de tarefas chamada de algoritmo.
Bruno Jefferson (2015) 4
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) 5
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) 6
Exemplos
Algoritmo para fritar um ovo1. Retire o ovo da geladeira.
2. Acenda o fogo.
3. Coloque a frigideira no fogo.
4. Coloque leo na frigideira.
5. Quebre o ovo, separando a casca.
6. Ponha o ovo e a clara na frigideira.
7. Espere um minuto.
8. Apague o fogo.
9. Retire o ovo da frigideira.
Bruno Jefferson (2015) 7
Exemplos
8
Ir para a escola1. Acordar cedo2. Ir ao banheiro3. Abrir o armrio para escolher roupa4. Se o tempo estiver quente ento
pegar uma camiseta e uma cala
Senopegar um agasalho e cala jeans
5. Vestir a roupa escolhida6. Tomar caf7. Pegar uma conduo8. Descer na parada da escola
Bruno Jefferson (2015)
Exemplos
9
Sacar dinheiro no banco 24 horas1. Ir at um banco 24 horas2. Colocar carto3. Digitar a senha4. Solicitar quantia desejada5. Se o saldo for maior ou igual a quantia desejada
entosacar;
Senomostrar mensagem de impossibilidade de saque
6. Retirar dinheiro e o carto7. Sair do banco 24 horas
Bruno Jefferson (2015)
Exemplos
10
Trocar lmpada1. Enquanto a lmpada no estiver livre no soquete faaGire 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 faaGire a lmpada no sentido horrio.
5. Se lmpada no acender entoVolte para passo 1.
Bruno Jefferson (2015)
Problema
Suponha que voc dispe de duas vasilhas denove e quatro litros respectivamente. Comoelas no possuem marcao, no possvel termedidas intermedirias sobre o volumeocupado. O problema consiste, ento, emelaborar uma sequncia de passos, por meioda utilizao das vasilhas de nove e quatrolitros, a fim de encher uma terceira vasilhacom seis litros de gua. As vasilhas podem seresvaziadas e completadas a qualquermomento.
Bruno Jefferson (2015) 11
Problema
Bruno Jefferson (2015) 12
Algoritmo soluo
1. Encha a vasilha de nove litros.
2. Usando a vasilha de nove litros, encha a de quatro.
3. Coloque a quantidade que sobrou (cinco litros) na terceira vasilha (v3 = 5);
4. Esvazie a vasilha de quatro litros.
5. Encha novamente a vasilha de nove litros.
6. Usando a vasilha de nove litros, encha a de quatro.
7. Esvazie a de quatro litros.
8. Usando a sobra da de nove litros, encha novamente a de quatro litros.
9. 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.
2. Digitar a senha.
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.
Ambos falham na caracterstica de
definio.
Bruno Jefferson (2015) 16
Caractersticas
Exemplo 2Sacar dinheiro do caixa eletrnico
1. Ir at um caixa eletrnico.
2. Faa um carto magntico.
3. Colocar o carto.
4. Digitar a senha.
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.
Falha na caracterstica de efetividade.
Bruno Jefferson (2015) 17
Caractersticas
Exemplo 3Sacar dinheiro do caixa eletrnico
1. Ir at um caixa eletrnico.
2. Colocar o carto.
3. Digitar a senha.
4. Escolher a opo de saque.
5. Digitar a quantia desejada.
6. Se o saldo for maior que a quantia, sacar.
7. Retire o carto.
8. Voltar ao passo 1.
Falha na caracterstica de
finitude.
Bruno Jefferson (2015) 18
Formas de Representao
Linguagem Algortmica
Descrio Narrativa
Fluxograma
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 pseudolinguagemde 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 nmerosinicio
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 entradadois nmeros reais, divide o primeiro pelosegundo e imprime o resultado, caso ele sejamaior do que zero.
Bruno Jefferson (2015) 25
Formas de Representao
Descrio Narrativa1. Solicite que sejam informados dois nmeros.
2. Calcule a diviso entre eles.
3. Reproduza o resultado, caso ele seja maiorque 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
x1, x2
y = x1 / x2;
resultado
Fim
Incio e fim de programa
Operao de atribuio
Operao de entrada de dados
y > 0 Operao de deciso
Incio e fim de programa
Operao de sada
Bruno Jefferson (2015) 27
Formas de Representao
Linguagem Algortmica
algoritmo divide_numerosx1, x2, y: real;
inicioescreva(digite dois numeros:);leia(x1, x2);y = x1 / x2;
se (y > 0) entoescreva(resultado = , y);
fim-sefim
Bruno Jefferson (2015) 28
Formas de Representao
Representao Vantagens Desvantagens
Descrio Narrativa
- Facilidade na elaborao.
- 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 expressoreduzido.
- 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