18/08/14 Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar. Pode ser representada em qualquer uma das linguagens de programação à algoritmos. ICC - 2ª Aula – LÓGICA PROGRAMAÇÃO 1 Ø Algoritmo: é uma sequência ordenada e sem ambiguidade de passos que visam atingir um objetivo bem definido e, consequentemente levam à solução de um problema. Ø P r o g r a m a ç ã o : é responsável pela instrução do computador, do que e de como um problema deve ser resolvido. 3 PROBLEMA Foram compradas 30 canetas iguais, e pagas com uma nota de R$ 100,00, obtendo-se R$ 67,00 como troco. Quanto custou cada caneta? Supondo: X à custo de cada caneta gastei: 30X gastei + troco = 100 30X + 67 = 100 30X = 100 – 67 30X = 33 X = 33 / 30 = 1,10 à R$ 1,10 Em termos de variáveis: N = número de canetas Z = nota (valor) utilizado para pagar Y = troco X = (Z – Y) / N 2 Em um algoritmo é importante salientarmos: Ø Deve descrever exatamente quais são e em que sequência as instruções devem ser executadas; Ø A ordem dos passos deve ser precisamente determinada; Ø Eficiente: resolve o problema com o mínimo de recursos; Ø Eficaz: consegue resolver o problema em qualquer situação. Todas as situações de exceção que possam alterar o comportamento do algoritmo devem ser especificadas e tratadas. 4 1 18/08/14 Como Construir um Algoritmo Problema Existem várias formas para representar os algoritmos, como por exemplo: descrição narrativa, fluxograma ou diagrama de blocos, pseudocódigo etc. Análise Preliminar Solução Teste de Qualidade Alteração Produto Final 5 Treinando seu Cérebro 1) Treinando seu Cérebro O painel do meio no centro do alvo não tem número. O que o X representa? 12 10 7 21 X 10 30 22 13 12 10 6 2) Ao contrário Para a direita sou a espada que fere; para a esquerda sou a fera que é ferida. Que palavra sou eu? Ao contrário Lâmina/Animal 7 21 16 10 30 22 13 7 8 2 18/08/14 Treinando seu Cérebro 1) Treinando seu Cérebro Que nº dá o mesmo resultado quando dividido por -6 ou subtraído de -6? Temos: x / (-6) = (-6) – x x = 36 + 6x Assim: -5x = 36, logo x = -7,2 2) Que dois símbolos matemáticos (+, -, *, /) você deve colocar nesta conta para obter 57? 76 ? 15 ? 20 = 57 76 * 15 / 20 = 57 3) A soma do quadrado de dois números consecutivos é 1861. Quais são os dois números? x2 + (x + 1)2 = 1861 resposta: 30 e 31 9 Exemplos: a) algoritmo do tipo descrição narrativa 10 Exemplo: algoritmo do tipo descrição narrativa para trocar uma lâmpada queimada. para somar 3 números. b) algoritmo do tipo descrição narrativa para sacar dinheiro em um Banco 24h. 1 – Remova a lâmpada queimada. 2 – Coloque uma nova lâmpada. 12 3 18/08/14 Detalhando ou refinando os passos: 1.1 – Coloque uma escada embaixo da lâmpada queimada. 1.2 – Suba na escada até alcançar a lâmpada queimada. 1.3 – Gire a lâmpada queimada no sentido antihorário até que ela se solte. 2.1 – Escolha uma lâmpada nova de mesma potência/voltagem da queimada. 2.2 – Posicione a lâmpada nova no soquete. 2.3 – Gire a lâmpada no sentido horário, até que ela se firme. 2.4 – Desça da escada. 2.5 – Guarde a escada. 13 Vamos agora, fazer uma suposição: e se a lâmpada não estiver queimada? Estrutura Condicional ou de Decisão (seleção) SE condição ENTÃO comando1 comando2 comandon SENÃO comando3 comando4 comandon 15 Ordenando os passos, temos: 1 - Coloque uma escada embaixo da lâmpada queimada. 2 - Escolha uma lâmpada nova de mesma potência/ voltagem da queimada. 3 - Suba na escada até alcançar a lâmpada queimada. 4 - Gire a lâmpada queimada no sentido anti-horário até que ela se solte. 5 - Posicione a lâmpada nova no soquete. 6 - Gire a lâmpada no sentido horário, até que ela se firme. 7 - Desça da escada. 8 - Guarde a escada. 14 1 – Acionar o interruptor. 2 – SE a lâmpada NÃO acender 3 - ENTÃO Acionar o interruptor 4 Coloque uma escada embaixo da lâmpada queimada. 5Escolha uma lâmpada nova de mesma potência/voltagem da queimada. 6Suba na escada até alcançar a lâmpada queimada. 7 Gire a lâmpada queimada no sentido anti-horário até que ela se solte. 8Posicione a lâmpada nova no soquete. 9Gire a lâmpada no sentido horário, até que ela se firme. 10 Desça da escada. 11 Guarde a escada. 16 4 18/08/14 1 – Acionar o interruptor. 2 – SE a lâmpada NÃO acender 3 - ENTÃO Acionar o interruptor 4Coloque uma escada embaixo da lâmpada queimada. 5Escolha uma lâmpada nova. 6ENQUANTO a potência/volt. não for a mesma da queimada FAÇA 7Descarte a lâmpada escolhida 8Escolha outra lâmpada 9Suba um degrau da escada Estrutura de Repetição ENQUANTO condição FAÇA comando1 comando2 comandon 17 10 11 12 13 14 15 16 17 18 19 20 - ENQUANTO não possa alcançar a lâmpada queimada FAÇA Suba um degrau da escada. Gire a lâmpada queimada no sentido antihorário. ENQUANTO a lâmpada não estiver livre do soquete FAÇA Gire a lâmpada queimada no sentido anti-horário. Posicione a lâmpada nova no soquete. Gire a lâmpada no sentido horário. ENQUANTO a lâmpada não estiver firme no soquete FAÇA Gire a lâmpada no sentido horário. Desça da escada. Guarde a escada. 19 18 Exercícios 1 - Faça um algoritmo (Descrição Narrativa) para realizar a troca de um pneu furado. Utilizar estrutura de decisão e de repetição. Considere as seguintes situações: Ø qualquer pneu; Ø qualquer pneu, porém verificar se o pneu reserva está em condições de uso; Ø verificar se tem algum pneu furado; se houver, verificar o pneu reserva e então, trocar o pneu. 20 5 18/08/14 2 - Faça um algoritmo (Descrição Narrativa) para fazer uma ligação telefônica de um telefone público a cartão. Utilizar estrutura de decisão e de repetição. Verificar se o cartão tem unidades disponíveis. ü ligação local ü ligação a cobrar ü verificar se o telefone está funcionando e depois fazer a ligação local. 21 3 - Elabore um algoritmo (Descrição Narrativa) que mova três discos de uma Torre de Hanói, que consiste em três hastes (a, b, c), uma das quais serve de suporte para três discos de tamanhos diferentes (1 - 2 - 3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo é transferir os três discos para outra haste. 22 6