Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
IEC037 Introdução à Programação de Computadores Aula 02 – Método de Resolução de Problemas Turma: 03 Professor: Leandro Galvão E‐mail: galvao@icomp.ufam.edu.br Página: ipc‐t03.weebly.com 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 “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 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 5 7 9 11 13 15 17 X 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. 12 13 15 18 22 27 33 X 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 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 Tipos de problemas Algoritmo Uma sequência finita e ordenada de passos sem ambiguidade que leva à resolução de um problema. Origem da palavra: Sobrenome do matemático persa do século IX, Mohamed ben Musa Al‐Khwarizmi. Sequência Ordem Pensar com ordem Utilizar a lógicaSequência Ordem Pensar com ordem Utilizar a lógica Objetivo 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; Resolução de Problemas Algorítmicos Fim Início 1 Definir as entradas e as saídas2 Projetar o algoritmo3 Converter o algoritmo em linguagem de programação4 Testar solução5 Decompor Refinar passo a passo Identificar o problema Resolução de Problemas Algorítmicos 1 – Identificar o problema Em sala de aula: enunciados Fora de sala: necessário identificar 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). Resolução de Problemas Algorítmicos 2 – Definir Entradas e Saídas ?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 Há resultados? verifique se estão corretos Resultados incorretos? verifique as condições, operações ou ordem dos passos 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 Fim Início 1 Definir as entradas e as saídas2 Projetar o algoritmo3 Converter o algoritmo em linguagem de programação4 Testar solução5 Decompor Refinar passo a passo Identificar o problema 11 • Identificar o problema 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? 22 • Definir entradas e saídas mapa ladrilho inicial do robô Entradas robô sobre o ladrilho com ponto Saídas Problema 1 33 • Projetar o algoritmo 1. Frente 2. Direita 3. Frente 4. Frente 5. Esquerda Problema 1 44 • Converter o algoritmo em declarações da linguagem de programação Mais tarde neste curso Problema 1 55 • Testar o programa resultante Problema 1 1. Frente 2. Direita 3. Frente 4. Frente 5. 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 Fim Início 1 Definir as entradas e as saídas2 Projetar o algoritmo3 Converter o algoritmo em linguagem de programação4 Testar solução5 Decompor Refinar passo a passo Identificar o problema 11 • Identificar o problema Determinar quantos carneiros tem cada um dos dois pastores X e Y Problema 2 22 • Definir entradas e saídas Entradas X Saídas Y Problema 2 X + 1 = Y – 1 Dê‐me um de seus carneiros que ficamos com igual número de carneiros Y + 1 = 2(X – 1) Dê‐me um de seus carneiros que ficarei com o dobro dos seus 33 • 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 = 5 e Y = 7 Problema 2 44 • Converter o algoritmo em declarações da linguagem de programação Mais tarde neste curso Problema 2 55 • Testar o programa resultante Problema 2 X + 1 = Y – 1 Y + 1 = 2(X – 1) 5 + 1 = 7 – 1 7 + 1 = 2(5 – 1) X = 5 e Y = 7 Problema Inicial Qual a resposta da figura abaixo? Processo de resolução de problemas algorítmicos Fim Início 1 Projetar o algoritmo3 Converter o algoritmo em linguagem de programação4 Testar solução5 Decompor Refinar passo a passo Identificar o problema 2 Definir as entradas e as saídas 11 • Identificar o problema Quantos e quais animais se equilibram com o carneiro? Problema Inicial 22 • Definir entradas e saídas lobo + carneiro + macaco = porco porco = 4 lobos Entradas 2 lobos = 4 macacos Saídas carneiro Problema Inicial 33 • Projetar o algoritmo lobo + carneiro + macaco = porco (Equação 1) porco = 4 lobos (Equação 2) 2 lobos = 4 macacos (Equação 3) Problema Inicial 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 44 • Converter o algoritmo em declarações da linguagem de programação Mais tarde neste curso Problema Inicial 55 • Testar o programa resultante 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 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?