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. 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 ICC - 2ª Aula LÓGICA PROGRAMAÇÃO 1 2 Ø 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. Ø Programação: é responsável pela instrução do computador, do que e de como um problema deve ser resolvido. 3 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 q u e p o s s a m a l t e r a r o comportamento do algoritmo devem ser especificadas e tratadas. 4 1
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 6 1) 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 7 21 16 10 30 22 13 7 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 8 2
1) 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 9 3) A soma do quadrado de dois números consecutivos é 1861. Quais são os dois números? x 2 + (x + 1) 2 = 1861 resposta: 30 e 31 10 Exemplos: a) algoritmo do tipo descrição narrativa para somar 3 números. b) algoritmo do tipo descrição narrativa para sacar dinheiro em um Banco 24h. Exemplo: algoritmo do tipo descrição narrativa para trocar uma lâmpada 1 Remova a lâmpada 2 Coloque uma nova lâmpada. 12 3
Detalhando ou refinando os passos: 1.1 Coloque uma escada embaixo da lâmpada 1.2 Suba na escada até alcançar a lâmpada 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 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 Ordenando os passos, temos: 1 - Coloque uma escada embaixo da lâmpada 2 - Escolha uma lâmpada nova de mesma potência/ voltagem da 3 - Suba na escada até alcançar a lâmpada 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 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 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 5 - Escolha uma lâmpada nova de mesma potência/voltagem da 6 - Suba na escada até alcançar a lâmpada 7 - Gire a lâmpada queimada no sentido anti-horário até que ela se solte. 8 - Posicione a lâmpada nova no soquete. 9 - Gire a lâmpada no sentido horário, até que ela se firme. 10 - Desça da escada. 11 - Guarde a escada. 16 4
Estrutura de Repetição ENQUANTO condição FAÇA comando1 comando2 comandon 17 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 5 - Escolha uma lâmpada nova. 6 - ENQUANTO a potência/volt. não for a mesma da queimada FAÇA 7 - Descarte a lâmpada escolhida 8 - Escolha outra lâmpada 9 - Suba um degrau da escada 18 10 - ENQUANTO não possa alcançar a lâmpada queimada FAÇA 11 - Suba um degrau da escada. 12 - Gire a lâmpada queimada no sentido antihorário. 13 - ENQUANTO a lâmpada não estiver livre do soquete FAÇA 14 - Gire a lâmpada queimada no sentido anti-horário. 15 - Posicione a lâmpada nova no soquete. 16 - Gire a lâmpada no sentido horário. 17 - ENQUANTO a lâmpada não estiver firme no soquete FAÇA 18 - Gire a lâmpada no sentido horário. 19 - Desça da escada. 20 - Guarde a escada. 19 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
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. 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. 21 22 6