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: ?
Valendo um cupcake!
• Desafio 2:
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
Exemplo – Fazer um sanduíche
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-econquistar
• 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