Documente Academic
Documente Profesional
Documente Cultură
Sensibilização
Desafio 1: Liberte o prisioneiro
Regras:
- Liberte o prisioneiro;
- Você só libertará o prisioneiro se conseguir colocar 6 litros de água na balança, nem a mais nem a menos que isso!
Liberte o Prisioneiro
2
Desafio 1: Liberte o prisioneiro
4
Outra descrição da solução (2/2)
Enquanto a garrafa 7 não tem 6 litros faça
se garrafa 7 com água
transferir da garrafa 7 p/a 5
encher garrafa 7
transferir a água da garrafa 7 para a 5
esvaziar a garrafa 5
Colocar a garrafa de 7 litros na porta
5
Desafio 2
Considere o seguinte ambiente:
– 1 balança como a do desenho abaixo
– 9 bolas, sendo que uma é mais leve do que as demais
Objetivo: descobrir qual é a bola mais leve com o menor número possível de pesagens,
no pior caso.
6
Solução do desafio 2(1/4)
Solução (?)
– 1ª pesagem
» 1ª possibilidade: pesos iguais bola extra é a
mais leve!!!
» 2ª possibilidade: a bola mais leve está no grupo
mais leve descarta-se a bola extra e o grupo
mais pesado e realiza-se nova pesagem
– 2ª pesagem
» descarta-se o grupo mais pesado e realiza-se
nova pesagem
– 3ª pesagem
» determina-se a bola mais leve!!!!
7
Solução do desafio 2(2/4)
Solução
– 1ª pesagem
» 1ª possibilidade: pesos iguais a bola está no
grupo extra 6 bolas são descartadas e
realiza-se nova pesagem
» 2ª possibilidade: pesos diferentes bola mais
leve está no grupo mais leve 6 bolas são
descartadas e realiza-se nova pesagem
– 2ª pesagem
» determina-se a bola mais leve!!!!
8
Solução do desafio 2(3/4)
1) Divida as bolas em 3 grupos iguais
2) Escolha dois grupos para pesar e reserve o grupo extra
3) Coloque-os cada um em um lado da balança
4) Se os pesos forem iguais, descarte ambos os grupos
Senão, descarte o grupo mais pesado e o grupo extra
5) Divida as bolas do grupo (que sobrou) em 3 grupos
6) Escolha dois grupos para pesar e reserve o grupo extra
7) Coloque-os cada um em um lado da balança
8) Se os pesos forem iguais descarte ambos os grupos
Senão, descarte o grupo mais pesado e o grupo extra
9) A bola que restou é a mais leve
9 9
Solução do desafio 2(4/4)
10 10
Outros Exercícios
http://www.leoakio.com/jogos.html
Pinguim
Ponte Escura
Sapo
Exercício 1
Escreva um roteiro (receita) que descreva, passo a passo, as etapas necessárias para
trocar uma lâmpada no teto (algoritmo para trocar uma lâmpada no teto).
21
Uma Solução Ex 1(1/4)
22
Uma Solução Ex 1(2/4)
23
Ex1: Lâmpada deve ser trocada? (3/4)
● Ligue o interruptor.
● SE a lâmpada não acender, então:
● Pegue uma escada;
● Posicione-a embaixo da lâmpada;
● Desligue o interruptor
● Pegue uma lâmpada nova;
● Suba na escada com a lâmpada nova na mão;
● Desenrosque a lâmpada velha que está bucal,segurando-a;
● Coloque e enrosque a lâmpada nova no bucal;
● Desça da escada com a lâmpada velha na mão
● Jogue a lâmpada velha no lixo
● Ligue o interruptor.
● Guarde a escada E se a lâmpada nova
não funcionar?
24
Ex1: Lâmpada nova funciona? (4/4)
● Ligue o interruptor.
● SE a lâmpada que está no bucal não acender, então:
● Pegue uma escada;
● Posicione-a embaixo da lâmpada;
● Faça
● Desligue o interruptor
● Busque uma lâmpada nova;
● Suba na escada com a lâmpada nova na mão;
● Desenrosque a lâmpada velha que está bucal, segurando-a;
● Coloque a lâmpada nova no bucal e enrosque-a nele;
● Desça da escada com a lâmpada velha na mão
● Jogue a lâmpada velha no lixo
● Ligue o interruptor.
● ENQUANTO a lâmpada que está no bucal não acender:
● Guarde a escada
25
Exercício 2
Escreva um algoritmo para fazer um hambúrguer com alface e tomate
26
Uma Solução Ex2
1. Pegar o pão
2. Cortar o pão ao meio e deixá-lo aberto
3. Passar maionese nos dois lados de dentro do pão
4. Pegar e cortar alface e tomate
5. Colocar alface e tomate em um lado do pão
6. Pegar o Hambúrguer
7. Fritar o Hambúrguer
8. Colocar o Hambúrguer no outro lado do pão
9. Fechar o pão
27
Funciona?
Um robô humano que executa fielmente os algoritmos, pode seguir este modo de usar para
lavar seu pet?
Modo de usar:
1. Molhe o pelo de seu pet
2. Aplique o shampoo.
3. Enxague e repita.
28
NO QUE DÁ????? (1/3)
Execute o algoritmo abaixo:
1. Desenhar um círculo
2. Traçar sobre este círculo, de forma imaginária 2 eixos, x e y, perpendiculares entre si que se cruzam na origem.
(o plano cartesiano ortogonal )
3. Desenhar um JJJ.
4. Posicioná-lo sobre o eixo do X, com a ponta do triângulo encostando no círculo .
5. Desenhar um JJJ .
6. Posicioná-lo sobre o eixo do Y , com a ponta do triângulo encostando no círculo
JJJ
1. Desenhe um retângulo com comprimento equivalente a 2/3 do raio do círculo
2. Desenhe um triângulo, fora do retângulo, com a base encostada no lado menor do retângulo e com altura igual
a 1/3 do raio do círculo
29
NO QUE DÁ????? (2/3)
30
NO QUE DÁ????? (3/3)
Desenhar um círculo ( QUAL O RAIO?)
Traçar sobre este círculo, de forma imaginária 2 eixos, x e y,
perpendiculares entre si que se cruzam na origem. (plano
cartesiano ortogonal )( Qual o sentido?)
Desenhar um JJJ. (diferença no comprimento p/hora e
minuto, qual altura?)
valores necessários para alguém desenhar um JJJ :
comprimento: proporção do raio desejado em função Um algoritmo deve ser uma sequência finita,
do uso: h ou min precisa, sem ambiguidade de passos que
altura: proporção fixa em relação ao raio desejado descrevem as etapas para resolver um
Posicioná-lo sobre o eixo do X, com a ponta do triângulo problema de forma automática e repetitiva!
encostando no círculo .
Desenhar um JJJ .
Posicioná-lo sobre o eixo do Y , com a ponta do triângulo
encostando no círculo
JJJ
Desenhe um retângulo com comprimento equivalente a 2/3 do raio do
círculo e de altura...
Desenhe um triângulo, fora do retângulo, com a base encostada no
lado menor do retângulo e com altura igual a 1/3 do raio do círculo
31
Linguagem para descrever a solução de um problema (1/2)
32
Linguagem para descrever a solução de um problema (2/2)
Para que o algoritmo possa ser executado por uma máquina é importante que as instruções
estejam corretas, sem ambiguidades e escritas numa linguagem que ela compreenda.
Uma linguagem natural (ainda) não é adequada para escrever algoritmos executáveis
por máquinas
o linguagens naturais tem ambiguidade e redundância
o um texto em linguagem natural pode exigir a interpretação de quem o lê
33
Linguagens
Linguagem humana: composta pelo alfabeto, símbolos e números
Linguagem de Máquina: linguagem binária, composta por 0 e 1
0 0 0
0 1 1 1
1
Todo dado coletado pelos computadores, as instruções por ele executadas, bem
como os resultados de um processamento são sempre constituídos de conjuntos
ordenados de zeros e uns.
34
Exercício 3(1/2)
Construir um passo a passo (algoritmo) para instruir uma pessoa a mostrar o peso em KG de um
pacote cujo peso em G é informado
35
Exercício 3(2/2)
Construir um passo a passo (algoritmo) para instruir UM ROBÔ como mostrar o peso em KG
de um pacote cujo peso em G é informado
Deve ser escrito numa linguagem que ele compreenda:
Instruções disponíveis 0 0 0 0 0 0 0 0 0 0 # read: 0
read 0 0 0 0 0 0 0 0 0 0 0 #0
write 1 0 0 0 0 0 0 0 0 1 0 # armazena const: 2
storeconst2 1 1 1 1 1 0 1 0 0 0 # 1000
add 3 0 0 0 0 0 0 0 0 0 1 #1
sub4 0 0 0 0 0 0 0 1 1 0 # divisão: 6
0 0 0 0 0 0 0 0 0 0 #0
mul 5
0 0 0 0 0 0 0 0 0 1 #1
div6
0 0 0 0 0 0 0 1 1 1 #armazena: 7
store 7
0 0 0 0 0 0 0 0 1 0 #2
0 0 0 0 0 0 0 0 0 1 # write: 1
0 0 0 0 0 0 0 0 1 0 #2
"linguagem de máquina", é
projetada para um
computador e não para uma
pessoa
36
Linguagem de Programação
Uma linguagem de programação facilita a comunicação de instruções para
um computador
Deve ser formal e precisa
– como notações matemáticas, fórmulas químicas, ...
– porque é necessário descrever, com precisão, as instruções a serem executadas
Existem diversas LP, e cada uma tem determinadas características que a tornam
adequada
– para a solução de determinados tipos de problemas
– para expressar (escrever) soluções para esses tipos de problemas
Tradução de Programas
Um algoritmo escrito em uma linguagem de alto nível(programa) deve ser
traduzido para a linguagem de máquina para que possa ser executado por
ela
45
Hardware X Software
46
Modelo de um Computador
47
Modelo de um Computador
“Cérebro” do
computador
48
Modelo de um Computador
Executa instruções
armazenadas na memória
principal
Modelo de um Computador
55
Números inteiros na memória
Números também são armazenados na representação binária
Cada bit armazena um algarismo do número em binário
7 6 5 4 3 2 1 0
Exemplo: Número +9
E o sinal?
38
0 0 0 0 1 0 0 1
Número -9 7 6 5 4 3 2 1 0
45
1 0 0 0 1 0 0 1
56
Números reais em ponto fixo na memória
Parte dos bits para a parte inteira e parte para a decimal
inteira fracionária
7 6 5 4 3 2 1 0
Exemplos:
Número +9.0 Número -9.0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
23
0 1 0 0 1 0 0 0
32
1 1 0 0 1 0 0 0
57
Números reais em ponto flutuante
7 6 5 4 3 2 1 0
Sinal
Exemplos 7 6 5 4 3 2 1 0
Número -9.0
8 1 1 0 0 1 0 0 1