File

Propaganda
IEC037
Introdução à Programação de Computadores
Aula 02 – Método de Resolução de
Problemas
Turma:
Professor:
E-mail:
Página:
Ambiente virtual:
Problema Inicial

Qual a resposta da figura abaixo?
Conteúdo
1. Introdução à lógica
2. Introdução ao método
de resolução de
problemas
Lógica

Arte do bem pensar

Vem do grego logos, que significa “linguagemdiscurso e pensamento-conhecimento”

Estuda e ensina a colocar “ordem no pensamento”

Normalmente associada à Matemática, mas é uma
ferramenta das demais ciências
O que acontece quando não
utilizamos a Lógica?



Trabalhos desordenados
Complexidade em tarefas simples
Retrabalho
Onde e quando utilizamos a Lógica?




Pensar
Falar, argumentar
Escrever
Proceder corretamente
Como podemos exercitar?



Exercícios
Jogos
Programando
Exemplo 1




Rosa é mãe de Ana
Paula é filha de Rosa
Júlia é filha de Ana
Logo, Júlia é neta de
Rosa e sobrinha de
Paula.
Rosa
Ana
Júlia
Paula
Exemplo 2






Todo mamífero é animal.
Todo cavalo é mamífero.
Logo, todo cavalo é animal.
Todo que bebe leite é mamífero.
Seres humanos bebem leite.
Logo, todo ser humano é mamífero.
 (e
é animal, mas não um cavalo )
Exemplo 3

Qual o valor de X na sequência abaixo?
5
7
9
11 13 15 17
5+2=7
7 + 2 = 9, etc.
Logo, 17 + 2 = 19.
X é 19.
X
Exemplo 4

E na sequência abaixo?
12 13 15 18 22 27 33
12 + 1 = 13
13 + 2 = 15
15 + 3 = 18, etc.
Logo, 33 + 7 = 40.
X é 40.
X
Exercícios






Um caracol quer subir um poste de 10m de altura. Durante o dia,
sobe 2m. À noite, escorrega 1m. Em quanto tempo atingirá o topo
do poste?
Qual o dobro da metade de 2?
Um quarto tem 4 cantos, cada canto tem 1 gato, cada gato vê 3
gatos, quantos gatos tem na sala?
O pai do padre é filho do meu pai. O que eu sou do padre?
Um avião lotado de passageiros parte do Rio de Janeiro em
direção a Buenos Aires. Por uma fatalidade cai na fronteira BrasilArgentina. Onde serão enterrados os sobreviventes?
Dois pais e dois filhos entraram em um bar e pediram três
refrigerantes, cada um tomou uma garrafa inteira, ou seja,
nenhum deles deixou de beber seu refrigerante. Como isso foi
possível?
Conteúdo
1. Introdução à lógica
2. Introdução ao método
de resolução de
problemas
Resolução de problemas
Diariamente,
deparamo-nos com os
mais variados tipos de
problemas
Tipos de problemas
Heurísticos


Não podem ser
resolvidos através de
uma série direta de
ações
Exemplos:
Expandir uma empresa
 Tornar um quadro
‘bonito’
 Convocar jogadores de
futebol para a seleção

Algorítmicos


Podem ser resolvidos
com uma série de
ações
Exemplos:
 Fazer
um bolo
 Pagar contas vencidas
 Controlar a
temperatura de um
ambiente fechado
Algoritmo

Uma sequência finita e ordenada de passos sem
ambiguidade que leva à resolução de um problema
em um tempo finito.
Sequência

Ordem
Pensar com
ordem
Utilizar a
lógica
Origem da palavra:

Sobrenome do matemático persa do século IX, Mohamed
ben Musa Al-Khowarizmi.
Algoritmo

Pode haver várias soluções
para um mesmo problema
→ pode haver vários
algoritmos


Todos devem chegar ao
resultado (objetivo) desejado
de forma correta;
Uns algoritmos podem ser
mais rápidos e outros mais
seguros;
Objetivo
Resolução de Problemas Algorítmicos
Início
1
Identificar o problema
2
Definir as entradas e as
saídas
Decompor
3
Projetar o algoritmo
4
Converter o algoritmo em
linguagem de programação
5
Testar solução
Fim
Refinar
passo a passo
Resolução de Problemas Algorítmicos
1 – Identificar o problema


Em sala de aula: enunciados
Fora de sala: necessário identificar
Resolução de Problemas Algorítmicos
2 – Definir Entradas e Saídas



Entradas: Todos os recursos e informações que o
sistema precisa para chegar ao seu objetivo.
Saída: o resultado esperado pelo sistema.
Processamento: tratamento dado à entrada visando
chegar ao objetivo final (saída).
Entradas
?
Saídas
Resolução de Problemas Algorítmicos
3 – Projetar o algoritmo

Você já resolveu um problema similar?
Analogia – enunciado diferente, mas estrutura de solução
é semelhante.
 Generalização – solução particular é conhecida, mas
deseja-se uma solução geral.
 Especialização – conhece-se a solução geral, que serve de
base para uma particular.
 Decomposição – se o problema é complicado, pode ser
quebrado em partes menores.
 Redução – Se um problema é difícil, tente resolver um mais
simples.

Resolução de Problemas Algorítmicos
4 – Converter o algoritmo em declarações
Vocabulário
humano
Vocabulário
da máquina
Resolução de Problemas Algorítmicos
5 – Testar o programa resultante

Teste o algoritmo com diversos dados de entrada e
verifique os resultados.
Sem
resultados?
verifique problema de sintaxe
Conjunto de
regras que
determinam
a ordem e as
relações das
palavras na
frase
Há
resultados?
verifique se estão corretos
Resultados
incorretos?
verifique as condições,
operações ou ordem dos passos
Problema 1

Fazer um robô chegar ao ladrilho marcado com um
ponto, contornando os obstáculos.
Processo de resolução de problemas
algorítmicos
Início
1
Identificar o problema
2
Definir as entradas e as
saídas
Decompor
3
Projetar o algoritmo
4
Converter o algoritmo em
linguagem de programação
5
Testar solução
Fim
Refinar
passo a passo
Problema 1
1




• Identificar o problema
Robô deve ser guiado a um ladrilho indicado.
Robô não pode ocupar o mesmo ladrilho que
contém uma caixa.
Robô não pode atravessar as paredes do mapa.
Quais os movimentos que o robô pode fazer?
Problema 1
2
• Definir entradas e saídas
Entradas
mapa
ladrilho inicial
do robô
Saídas
robô sobre o
ladrilho com ponto
Problema 1
• Projetar o algoritmo
3
1.
2.
3.
4.
5.
Frente
Direita
Frente
Frente
Esquerda
Problema 1
4
• Converter o algoritmo em declarações da linguagem de
programação
Mais tarde neste curso
Problema 1
• Testar o programa resultante
5
1.
2.
3.
4.
5.
Frente
Direita
Frente
Frente
Esquerda
Problema 2



Um pastor diz para outro: “Dê-me um de seus carneiros que
ficamos com igual número de carneiros.”
O outro responde: “Nada disso, dê-me um de seus carneiros
que ficarei com o dobro dos seus”.
Quantos carneiros têm cada um?
Processo de resolução de problemas
algorítmicos
Início
1
Identificar o problema
2
Definir as entradas e as
saídas
Decompor
3
Projetar o algoritmo
4
Converter o algoritmo em
linguagem de programação
5
Testar solução
Fim
Refinar
passo a passo
Problema 2
1
• Identificar o problema
Determinar quantos
carneiros tem cada um dos
dois pastores X e Y
Problema 2
2
• Definir entradas e saídas
Dê-me um de seus carneiros que
ficamos com igual número de carneiros
X+1=Y–1
Y + 1 = 2(X – 1)
Dê-me um de seus carneiros que
ficarei com o dobro dos seus
Entradas
Saídas
X
Y
Problema 2
3
• Projetar o algoritmo
1. Isolar o X na primeira equação
X=Y–2
2. Substituir X na segunda equação
2((Y – 2) – 1) = Y + 1
3. Encontrar o valor de Y
Y=7
4. Substituir Y na primeira equação
X+1=7–1
5. Encontrar o valor de X
X=5
6. Apresentar X e Y
X=5eY=7
Problema 2
4
• Converter o algoritmo em declarações da linguagem de
programação
Mais tarde neste curso
Problema 2
5
• Testar o programa resultante
X=5eY=7
X+1=Y–1
Y + 1 = 2(X – 1)
5+1=7–1

7 + 1 = 2(5 – 1)

Problema Inicial

Qual a resposta da figura abaixo?
Processo de resolução de problemas
algorítmicos
Início
1
Identificar o problema
2
Definir as entradas e as
saídas
Decompor
3
Projetar o algoritmo
4
Converter o algoritmo em
linguagem de programação
5
Testar solução
Fim
Refinar
passo a passo
Problema Inicial
1
• Identificar o problema
Quantos e quais animais se
equilibram com o carneiro?
Problema Inicial
2
• Definir entradas e saídas
Entradas
Saídas
lobo + carneiro + macaco = porco
porco = 4 lobos
2 lobos = 4 macacos
carneiro
Problema Inicial
3
• Projetar o algoritmo
lobo + carneiro + macaco = porco
porco = 4 lobos
2 lobos = 4 macacos
Isolar lobos em Equação 3
→
Substituir lobos em Equação 2
→
Substituir lobo e porco na Equação 1 →
Guardar o resultado em carneiro
Apresentar carneiro
(Equação 1)
(Equação 2)
(Equação 3)
lobo = 2 macacos
porco = 8 macacos
carneiro = 5 macacos
Problema Inicial
4
• Converter o algoritmo em declarações da linguagem de
programação
Mais tarde neste curso
Problema Inicial
5
• Testar o programa resultante
•
•
•
5 macacos, ou
2 lobos e 1 macaco, ou
1 lobo e 3 macacos.
Para praticar

Light-Bot | armorgames.com/play/6061/light-bot-20
Para praticar

Robozzle | www.robozzle.com
Exercícios
1. Usando uma jangada, um camponês precisa
atravessar uma cabra, um leão e um fardo de capim
para a outra margem do rio. A jangada só tem lugar
para ele e mais uma de suas três cargas. O que ele
deve fazer para atravessar o rio com seus pertences
intactos?
2. Uma garota tem a mesma quantidade de irmãs e de
irmãos. Mas cada irmão tem o dobro de irmãs em
relação ao número de irmãos. Há quantos irmãos e
irmãs nessa família? Explique.
3. Um pai de 80kg e suas 2 filhas (40kg cada) precisam
sair de uma ilha com um barco. Porém, a capacidade
do barco é de 80kg. Como farão para sair da ilha?
Referências bibliográficas




Menezes, Nilo Ney Coutinho (2010). Introdução à
Programação com Python. Editora Novatec.
Farrer, Harry (2011). Algoritmos Estruturados, 3ª
edição. Editora LTC.
Forbellone, A. L. V.; Eberspächer, H. F. (2006) Lógica
de Programação, 3ª edição. Pearson.
HETLAND, Magnus Lie (2008). Beginning Python:
From Novice to Professional. Springer eBooks, 2ª
edição. Disponível em:
http://dx.doi.org/10.1007/978-1-4302-0634-7.
Dúvidas?
Download