Académique Documents
Professionnel Documents
Culture Documents
ALGORITMOS
LPG - I Prof. Flavio Marcello
DEFINIO (o que)
Definio do Problema Projetar a Soluo Revises (ALGORITMO) Documentao Codificar a Soluo (Programar em Linguagem de Computador) Testar o Programa
3
Passo Difcil
DESENVOLVIMENTO (como)
ALGORITMOS
o
ALGORITMOS
o
Procedimento passo a passo para resolver um problema Pessoas tem inteligncia e habilidade racional => fazem perguntas para se esclarecer. Computador no tem senso prprio => deve receber instrues explcitas (algoritmos)
Os Computadores, infelizmente s fazem aquilo que mandamos e no necessariamente o que desejamos que eles faam! No deve haver ambigidade nas instrues do programa Ex. calcule as mdias das notas neste teste
o
ALGORITMOS
o
ALGORITMOS
Um algoritmo correto deve possuir 4 qualidades:
1- O algoritmo deve ter um incio 2- Cada passo do algoritmo deve ser uma instruo que possa ser realizada 3- A ordem dos passos deve ser precisamente determinada 4- O algoritmo deve ter um fim
7 8
preciso separar a Fase de Resoluo do Problema da Fase de Implementao Algoritmo: uma seqncia ordenada, e sem ambigidade, de passos que levam soluo de um dado problema!
10
11
12
ESTRUTURA CONDICIONAL
Incio Trocar Pneu Fim E se o estepe estiver vazio? Isto traz necessidade de uma deciso entre dois cursos
Incio se <o estepe est vazio> ento chamar borracheiro seno mudar o pneu fim se Fim
13
14
ESTRUTURA CONDICIONAL
ESTRUTURA SEQUENCIAL
Incio se <o estepe est vazio> ento chamar borracheiro seno levantar o carro desparafusar a roda remover a roda colocar o estepe parafusar a roda abaixar o carro fim se Fim
Incio se <o estepe est vazio> ento chamar borracheiro seno mudar o de pneu A atividade mudar o pneu pode ser mais detalhada fim se Fim
15
16
ESTRUTURA SEQUENCIAL
Incio se <o estepe est vazio> ento chamar borracheiro seno levantar o carro A desparafusar atividade de desparafusar a roda a roda pode ser mais detalhada remover a roda colocar o estepe parafusar a roda Aabaixar atividade de parafusar a roda o carro pode fim se ser mais detalhada Fim
ESTRUTURA SEQUENCIAL
Incio se <o estepe est vazio> ento chamar borracheiro seno levantar o carro desparafusar o 1o parafuso desparafusar o 2o parafuso desparafusar o 3o parafuso desparafusar o 4o parafuso remover a roda colocar o estepe parafusar o 1o parafuso parafusar o 2o parafuso parafusar o 3o parafuso parafusar o 4o parafuso abaixar o carro fim se Fim
17 18
ESTRUTURA SEQUENCIAL
Incio se <o estepe est vazio> ento chamar borracheiro seno levantar o carro desparafusar o 1o parafuso parafuso desparafusar o 2oinconveniente A repetio desparafusar o 3o parafuso o desparafusar o 4 parafuso remover a roda colocar o estepe parafusar o 1o parafuso parafusar o 2o parafuso A repetio inconveniente parafusar o 3o parafuso parafusar o 4o parafuso abaixar o carro fim se Fim
19
ESTRUTURA DE REPETIO
Incio se <o estepe est vazio> ento chamar borracheiro seno levantar o carro enquanto <houver parafuso para desapertar> faa desparafusar a roda fim enquanto remover a roda colocar o estepe enquanto <houver parafuso para apertar> faa parafusar a roda fim do enquanto abaixar o carro fim se Fim
20
Incio remova a lmpada queimada coloque a nova lmpada Fim O que necessrio para remover a lmpada queimada?
21
22
posicione a escada debaixo da Incio lmpada queimada remova a lmpada queimada suba na escada at que a lmpada coloque nova lmpada possa seraalcanada Fim gire a lmpada queimada no anti-horrio at que se a O sentido que necessrio para remover solte queimada? lmpada
Incio remova a lmpada queimada coloque a nova lmpada Fim O que necessrio para colocar a lmpada nova?
23
24
escolha uma lmpada da mesma Incio potncia da queimada remova aalmpada queimada posicione nova lmpada no coloque a nova lmpada soquete Fim gire a lmpada no sentido horrio ela se firme O at queque necessrio para colocar a desa da escada lmpada nova?
25
26
Diversos passos deste algoritmo implicam operaes mais escolha uma lmpada da mesma potncia da queimada elaboradas que devem ser posicione a nova lmpada no soquete expressas explicitamente gire a lmpada no sentido horrio at que ela se firme
desa da escada
Fim
enquanto <no alcanar a lmpada> faa posicione a escada debaixo da lmpada queimada suba um degrau da escadapossa ser alcanada suba na escada at que a lmpada fim gire enquanto a lmpada queimada no sentido anti-horrio at que se
solte remova a lmpada queimada escolha uma lmpada da mesma potncia da queimada posicione a nova lmpada no soquete gire a lmpada no sentido horrio at que ela se firme desa da escada Fim
enquanto <a lmpada no soltar> faa posicione a escada debaixo da lmpada queimada gire aescada lmpada no sentido anti-horrio suba na at que a lmpada possa ser alcanada fim gire enquanto a lmpada queimada no sentido anti-horrio at que se
solte remova a lmpada queimada escolha uma lmpada da mesma potncia da queimada posicione a nova lmpada no soquete gire a lmpada no sentido horrio at que ela se firme desa da escada Fim
se <tiver lmpada da mesma potncia> ento suba na escada at que a lmpada possa ser alcanada selecione a lmpada gire a lmpada queimada no sentido anti-horrio at que se posicione a nova lmpada no soquete solte gire a lmpada no sentido horrio at que se firme remova lmpada queimada desa da a escada escolha lmpada da mesma potncia da queimada seno desauma da escada posicione a nova lmpada no soquete fim se
gire a lmpada no sentido horrio at que ela se firme desa a escada Fim
Incio
remova a lmpada queimada se <tiver lmpada da mesma potncia> ento selecione a lmpada posicione a nova lmpada no soquete enquanto <a lmpada no prender> faa gire a lmpada no sentido horrio fim enquanto desa da escada seno desa da escada fim se Fim
36
posicione a escada debaixo da lmpada queimada enquanto <no alcanar a lmpada> faa suba um degrau da escada fim enquanto enquanto <a lmpada no soltar> faa gire a lmpada no sentido anti-horrio fim enquanto
Desenvolvimento do Algoritmo
Comeamos com uma afirmao genrica da soluo do problema e prosseguimos at o algoritmo final, aumentando sistematicamente o nvel de detalhamento.
Desenvolvimento do Algoritmo
Como saber se j temos um nvel suficiente de detalhes no algoritmo? Isso depende do agente que ir executar o algoritmo Os computadores tm um conjunto muito limitado de instrues e o algoritmo deve ser expresso nos termos dessas instrues.
38
37
Passo 5: Formular um esboo geral do algoritmo, no se concentrando em detalhes (revisar mentalmente) Passo 6: verificar se necessrio gerar valores internamente ao algoritmo e levantar as variveis necessrias e os valores iniciais de cada uma (indicar o propsito) Passo 7: levantar e analisar todas as transformaes necessrias para, dadas as entradas e valores gerados internamente, produzir as sadas especificadas (mapeamento entrada sada)
40
39
FIM
42
EXERCCIOS
Elabore um algoritmo para fazer pipoca numa panela de fogo, usando manteiga, sal e milho de pipoca. Elabore um algoritmo para realizar uma chamada telefnica em um telefone pblico, usando carto.
43