490 likes | 572 Views
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. Lógica. Arte do bem pensar
E N D
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?
Lógica • Arte do bem pensar • Vem do grego logos, que significa “linguagem-discurso 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 Paula Júlia
Exemplo 2 • Todo que bebe leite é mamífero. • Seres humanos bebem leite. • Logo, todo ser humano é mamífero. • (e é animal, mas não um cavalo ) Todo mamífero é animal. Todo cavalo é mamífero. Logo, todo cavalo é animal.
Exemplo 3 • Qual o valor de X na sequência abaixo? 5 + 2 = 7 7 + 2 = 9, etc. Logo, 17 + 2 = 19. X é 19.
Exemplo 4 • E na sequência abaixo? 12 + 1 = 13 13 + 2 = 15 15 + 3 = 18, etc. Logo, 33 + 7 = 40. X é 40.
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 Brasil-Argentina. 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?
Resolução de problemas Diariamente, deparamo-nos com os mais variados tipos de problemas
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 Tipos de problemas Heurísticos 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 Sequência Ordem Pensar com ordem Utilizar a lógica • Uma sequência finita e ordenada de passos semambiguidadeque leva à resolução de um problema em um tempo finito. • Origem da palavra: • Sobrenome do matemático persa do século IX, Mohamed ben Musa Al-Khowarizmi.
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; Algoritmo Objetivo
Resolução de Problemas Algorítmicos Início 1 Identificar o problema Definir as entradas e as saídas 2 Decompor 3 Projetar o algoritmo Refinar passo a passo Converter o algoritmo em linguagem de programação 4 Testar solução 5 Fim
Resolução de Problemas Algorítmicos1 – Identificar o problema • Em sala de aula: enunciados • Fora de sala: necessário identificar
Resolução de Problemas Algorítmicos2 – 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). Saídas Entradas ?
Resolução de Problemas Algorítmicos3 – 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ítmicos4 – Converter o algoritmo em declarações
Resolução de Problemas Algorítmicos5 – Testar o programa resultante • Teste o algoritmo com diversos dados de entrada e verifique os resultados. Conjunto de regras que determinam a ordem e as relações das palavras na frase
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 Definir as entradas e as saídas 2 Decompor 3 Projetar o algoritmo Refinar passo a passo Converter o algoritmo em linguagem de programação 4 Testar solução 5 Fim
Problema 1 • 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 Entradas Saídas mapa robô sobre o ladrilho com ponto ladrilho inicial do robô
Problema 1 Frente Direita Frente Frente Esquerda
Problema 1 Mais tarde neste curso
Problema 1 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 Definir as entradas e as saídas 2 Decompor 3 Projetar o algoritmo Refinar passo a passo Converter o algoritmo em linguagem de programação 4 Testar solução 5 Fim
Problema 2 Determinar quantos carneiros tem cada um dos dois pastores X e Y
Problema 2 Dê-me um de seus carneiros que ficamos com igual número de carneiros Saídas Entradas X + 1 = Y – 1 X Y Y + 1 = 2(X – 1) Dê-me um de seus carneiros que ficarei com o dobro dos seus
Problema 2 Isolar o X na primeira equação X = Y – 2 Substituir X na segunda equação 2((Y – 2) – 1) = Y + 1 Encontrar o valor de Y Y = 7 Substituir Y na primeira equação X + 1 = 7 – 1 Encontrar o valor de X X = 5 Apresentar X e Y X = 5 e Y = 7
Problema 2 Mais tarde neste curso
Problema 2 X = 5 e Y = 7 X + 1 = Y – 1 5 + 1 = 7 – 1 Y + 1 = 2(X – 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 Definir as entradas e as saídas 2 Decompor 3 Projetar o algoritmo Refinar passo a passo Converter o algoritmo em linguagem de programação 4 Testar solução 5 Fim
Problema Inicial Quantos e quais animais se equilibram com o carneiro?
Problema Inicial Entradas Saídas lobo + carneiro + macaco = porco porco = 4 lobos carneiro 2 lobos = 4 macacos
Problema Inicial lobo + carneiro + macaco = porco (Equação 1) porco = 4 lobos (Equação 2) 2 lobos = 4 macacos (Equação 3) Isolar lobos em Equação 3 → lobo = 2 macacos Substituir lobos em Equação 2 → porco = 8 macacos Substituir lobo e porco na Equação 1 → carneiro = 5 macacos Guardar o resultado em carneiro Apresentar carneiro
Problema Inicial Mais tarde neste curso
Problema Inicial • 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 • 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? • 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. • 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: FromNoviceto Professional. Springer eBooks, 2ª edição. Disponível em: http://dx.doi.org/10.1007/978-1-4302-0634-7.