Baixe o app para aproveitar ainda mais
Prévia do material em texto
IEC037 Introdução à Programação de Computadores Aula 02 – Método de Resolução de Problemas Turmas: Engenharias Mecânica e de Materiais Professora: Elaine Harada Teixeira de Oliveira E-mail: elaine@icomp.ufam.edu.br Ambiente virtual: http://colabweb.ufam.edu.br Curso: 2014/01 Introdução à Programação de Computadores - Engenharias Mecânica e de Materiais 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 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? Exercícios 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 em um tempo finito. Origem da palavra: Sobrenome do matemático persa do século IX, Mohamed ben Musa Al-Khowarizmi. Sequê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ídas 2 Projetar o algoritmo 3 Converter o algoritmo em linguagem de programação 4 Testar solução 5 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. Comandos disponíveis: 1. Frente 2. Trás 3. Direita 4. Esquerda Processo de resolução de problemas algorítmicos Fim Início 1 Definir as entradas e as saídas 2 Projetar o algoritmo 3 Converter o algoritmo em linguagem de programação 4 Testar solução 5 Decompor Refinar passo a passo Identificar o problema 1 • 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? 2 • Definir entradas e saídas mapa ladrilho inicial do robô Entradas robô sobre o ladrilho com ponto Saídas Problema 1 3 • Projetar o algoritmo 1. Frente 2. Direita 3. Frente 4. Frente 5. Esquerda Problema 1 4 • Converter o algoritmo em declarações da linguagem de programação Mais tarde neste curso Problema 1 5 • 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ídas 2 Projetar o algoritmo 3 Converter o algoritmo em linguagem de programação 4 Testar solução 5 Decompor Refinar passo a passo Identificar o problema 1 • Identificar o problema Determinar quantos carneiros tem cada um dos dois pastores X e Y Problema 2 2 • 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 umde seus carneiros que ficarei com o dobro dos seus 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 = 5 e Y = 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 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 algoritmo 3 Converter o algoritmo em linguagem de programação 4 Testar solução 5 Decompor Refinar passo a passo Identificar o problema 2 Definir as entradas e as saídas 1 • Identificar o problema Quantos e quais animais se equilibram com o carneiro? Problema Inicial 2 • Definir entradas e saídas lobo + carneiro + macaco = porco porco = 4 lobos Entradas 2 lobos = 4 macacos Saídas carneiro Problema Inicial 3 • 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 4 • Converter o algoritmo em declarações da linguagem de programação Mais tarde neste curso Problema Inicial 5 • Testar o programa resultante Problema Inicial • 5 macacos, ou • 2 lobos e 1 macaco, ou • 1 lobo e 3 macacos. Para praticar code.org| code.org Para praticar RoboMind| www.robomind.net/pt/ Para praticar Light-Bot | light-bot.com Para praticar Robozzle | www.robozzle.com 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? Exercícios 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?
Compartilhar