algoritmo

Propaganda
Revisão Histórico das Linguagens de Programação
• Qual a única linguagem compreendida pelos computadores?
• O que é uma linguagem de programação de alto nível?
• Como fazer o computador entender um programa escrito em uma linguagem de alto nível?
• Quais são as características desejáveis de um programa escrito em linguagem de alto nível?
Perguntas?
Revisão Histórico das Linguagens de Computação
• Qual o melhor tipo de linguagem e a melhor linguagem?
Introdução à Construção de Algoritmos
Introdução à construções de algoritmos
• O computador é uma máquina utilizada na resolução de problemas
• Os problemas precisam ser precisamente definidos, geralmente sem
a utilização de um computador
• A solução deve ser então planejada por meio da escrita de um algoritmo (ainda sem o computador)
Introdução à construções de algoritmos
• Um algoritmo é um procedimento computacional, finito, bem definido, não ambíguo, que recebe alguns valores como entrada
(input) e produz alguns valores como saída (output)
• É uma sequência de passos computacionais que transformam uma dada entrada na saída desejada
Introdução à construções de algoritmos
Quem sabe fazer uma garça em Origami?
• Entrada: um papel quadrado
• Saída: uma garça de papel
• Algoritmo: ?
• Desafio: Duas pessoas desejam repartir igualmente o conteúdo de um garrafão de 8 litros de água e têm apenas duas garrafas vazias de 5 e 3 litros, além do garrafão. De que maneira eles podem resolver esse problema?
• Entrada: 1 garrafa grande cheia com 8 litros, uma garrafa média vazia com 5 litros e 1 garrafa pequena vazia
com 3 litros
• Saída: Dividir os 8 litros em duas partes iguais de 4 litros cada
• Algoritmo: ?
G M P
Situação inicial 8 0 0
Despeja a água da grande até encher a pequena 5 0 3
Despeja toda a água da pequena na média 5 3 0
Despeja a água da grande até encher a pequena 2 3 3
Despeja a água da pequena até encher a média 2 5 1
Despeja toda a água da média na grande 7 0 1
Despeja toda a água da pequena na média 7 1 0
Despeja a água da grande até encher a pequena 4 1 3
Despeja toda a água da pequena na média 4 4 0
Introdução à construções de algoritmos
• Uma boa analogia é a receita culinária
• São especificados ingredientes (entrada)
• É especificado como trabalhar os ingredientes (algoritmo)
• O resultado do processamento é o prato (saída)
Alguém tem um exemplo?
Como fazer pipoca em panela no fogão?
Exemplo – Fazer um sanduíche de hamburger
Exemplo – Fazer um sanduíche de hamburger
1.
Pegar o pão
2.
Cortar o pão ao meio
3.
Pegar a maionese
4.
Passar a maionese no pão
5.
Pegar e cortar alface e tomate
6.
Colocar alface e tomate no pão
7.
Pegar o hambúrguer
8.
Fritar o hambúrguer
9.
Colocar o hambúrguer no pão
Introdução à construções de algoritmos
• Geralmente um algoritmo é feito para manipular vários casos de entradas e não apenas um conjunto específicos de valores
• Como um algoritmo para ordenar uma sequência de números
Introdução à construções de algoritmos
• Um algoritmo é correto quando:
• Para cada caso de entrada, o programa para com saída correta
• Um algoritmo é incorreto quando:
• Ele não para quando um dado caso de entrada é introduzido
• Ou ele para com uma saída que não é a correta
• Tá com bug!
Construção de algoritmos: Dividir-­‐e-­‐
conquistar
• Modo mais comum de se construir algoritmos
• Divide-­‐se sucessivamente o problema dado em subproblemas cada vez menores, até que esses possam ser resolvidos (i.e., conquistados) de forma trivial
• Técnica também conhecida como refinamento sucessivos
O algoritmo da troca do pneu furado
Algoritmo TrocaDePneu:
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 e reaperte os parafusos
guarde o pneu furado e o macaco
O algoritmo da troca do pneu furado
Algoritmo “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 próximo ao pneu furado
1.3 insira a manivela no macaco (ou monte-­‐o de acordo com o modelo do macaco)
1.4 coloque um calço sob o carro para impedi-­‐lo de se mover
1.5 levante o carro com o macaco até que haja espaço suficiente para colocar o estepe
O algoritmo da troca do pneu furado
Algoritmo “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 próximo ao pneu furado
1.3 insira a manivela no macaco (ou monte-­‐o de acordo com o modelo do macaco)
1.4 coloque um calço sob o carro para impedi-­‐lo de se mover
1.4.1 se o carro estiver de frente para o topo de uma ladeira, então coloque o calço atrás de um pneu em bom estado senão, coloque o calço na frente de um pneu em bom estado
1.5 levante o carro com o macaco até que haja espaço suficiente para colocar o estepe
O algoritmo da troca do pneu furado
Algoritmo “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 próximo ao pneu furado
1.3 insira a manivela no macaco (ou monte-­‐o de acordo com o modelo do macaco)
1.4 coloque um calço sob o carro para impedi-­‐lo de se mover
1.5 levante o carro com o macaco até que haja espaço suficiente para colocar o estepe
1.5.1 enquanto não houver espaço suficiente para colocar o estepe, repita o seguinte: levante o carro com o macaco
Exercício
Algoritmo TrocarLâmpadaQueimada:
1. Remova a lâmpada queimada
2. Coloque a nova lâmpada
Exercício
Algoritmo TrocarLâmpadaQueimada:
1. Posicione a escada em baixo da lâmpada queimada
2. Escolha uma nova lâmpada de mesma potência da queimada
3. Suba na escada até que a lâmpada possa ser alcançada
4. Gire a lâmpada queimada no sentido anti-­‐horário até que ela se solte
5. Posicione a nova lâmpada no soquete
6. Gire-­‐a no sentido horário até que ela se firme
7. Desça a escada
Exercício
Algoritmo TrocarLâmpadaQueimada:
1.
Posicione a escada em baixo da lâmpada queimada
2.
Selecione uma nova lâmpada para a substituição
1.
3.
1.
Descarte a lâmpada selecionada
2.
Selecione uma nova
Repita até que a lâmpada possa ser alcançada
1.
4.
Se a potência não for a mesma da lâmpada queimada, então repita os passos abaixo até encontrar uma que sirva
Suba um degrau da escada
Repita até que a lâmpada fique livre do soquete
1.
Gire a lâmpada no sentido anti-­‐horário
5.
Posicione a nova lâmpada no soquete
6.
Repita até que a lâmpada esteja firme
1.
7.
Gire a lâmpada no sentido horário
Desça a escada
Formas de construir algoritmos (1)
• Descrição Narrativa
– Vantagem: não é necessário aprender nenhum conceito novo, pois uma língua natural, bem conhecida
– Desvantagem: a língua natural abre espaço para várias interpretações, o que posteriormente dificultará a transcrição do algoritmo para um programa de computador
Formas de construir algoritmos (2)
• Fluxograma
– Vantagem: o entedimento de elementos gráficos é mais simples que o entendimento de textos
– Desvantagem: é necessário aprender os símbolos dos fluxogramas e , além disso, o algoritmos resultante não apresenta detalhes, dificultanto também a transcrição para um programa de computador
Formas de construir algoritmos (2)
Fluxograma
Formas de construir algoritmos (2)
Vc que
quebrou?
LASCOU
OK
Formas de construir algoritmos (3)
• Pseudocódigo ou portugol
– Vantagem: a passagem do algoritmo para qualquer linguagem
de programação é quase imediata, bastando conhecer as palavras reservadas da linguagem que será utilizada
– Desvantagem: é necessário aprender regras do pseudocódigo, que vamos aprender!
Algoritmo Exemplo – Somar três números
Descrição Narrativa
1. Receber os tres números
2. Somar os três números
3. Imprimir resultado
Algoritmo Exemplo – Somar três números
Pseuco código
inicio
variavel inteiro n1, n2, n3, s
escrever “Digite tres numeros”
ler n1, n2, n3
s <-­ n1 + n2 + n3
escrever “O valor armazenado em S eh ”, s
fim
Primeiro Problema - Escrevendo
• Faça um algoritmo que recebe dois números e escreve a soma dos mesmos
Primeiro Problema - Escrevendo
• Solução !!
inicio
escrever ”Informe os numeros”
ler n1, n2
soma ß n1 + n2
escrever “Soma dos numeros =“ , soma
fim
Primeiro Problema – Escrevendo Fluxograma
• Solução !!
Download