Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian Algoritmos e Programação Informática II Ciência da Computação A&P 1 Sumário Noções de lógica Representação do Conhecimento Lógica na Programação Lógica e Algoritmo: Resolução de um Problema Algoritmos: formas de apresentação Descrição Narrativa Fluxograma Pseudocódigo Estruturas Básicas de Controle Sequenciação Seleção Repetição 2 1 A&P Noções de Lógica Lógica: estudo filosófico do raciocínio válido Sequência coerente, regular e necessária de acontecimentos Consequência Lógica (Exemplos) Lógica: se Sócrates é homem e todos os homens são mortais, então Sócrates é mortal Definição: se Carlos é solteiro, então ele não é casado Causal: se chover, então o telhado fica molhado Decisão: se o Santos ganhar, eu vou festejar O que essas implicações têm em comum? Não pode acontecer de o antencedente ser verdadeiro e o consequente ser falso A&P 3 Representação do Conhecimento: um exemplo Argumento: sequência de premissas seguida de uma conclusão Formalização de Argumentos Se neva, então faz frio. Está nevando. Logo, está fazendo frio. Conclusão Representação: Vocabulário p : “neve” q : “frio” Formalização {p→q, p} |= q Consequência Lógica 4 2 A&P Lógica na programação Qual a importância da Lógica na programação? Representar o raciocínio Permite focar a resolução do problema A&P 5 Lógica na programação Para desenvolver um software: Representar uma abstração da realidade. Abstração por quê? Porque um software não é algo palpável, “real” Ele simula uma realidade. Por exemplo: Facebook, o software estabelece uma realidade de que as pessoas estão se comunicando 6 3 A&P Lógica na programação A construção de um software considera: Representar uma realidade (Abstração e Lógica) Selecionar os dados relacionados ao problema que será resolvido Processar os dados Definir operações Obter os resultados esperados A&P 7 Lógica e Algoritmo Algoritmo: sequência ordenada de operações, e sem ambiguidades, para resolução de um problema Ex: Receita de Bolo Entradas? Saída? Processos? Descrição dos passos? 8 4 A&P Lógica e Algoritmo A&P 9 Lógica e Algoritmo Características Fundamentais: 1. Não ser ambíguo; 2. Permitir entrada de dados; 3. Fornecer informações como saída; 4. Cada etapa deve ser realizada em um tempo finito; 5. Ter fim. 10 5 A&P Algoritmos: Formas de apresentação Algoritmos podem ser representados por: Descrição Narrativa Fluxograma Pseudocódigo A&P 11 Descrição narrativa Uso da língua nativa para descrever cada etapa. Exemplo: Receita de Bolo 1. 2. 3. 4. 5. 6. 7. 8. Providencie manteiga, ovos, 2 Kg de farinha, leite, etc Misture os ingredientes Despeje a mistura na fôrma de bolo Leve a fôrma ao forno Espere 20 minutos Retire a fôrma do forno Deixe esfriar Prove 12 6 A&P Descrição narrativa Vantagens: A língua nativa é bastante conhecida por nós Não é necessário aprender nenhum conceito novo Desvantagens: Imprecisão Pode proporcionar diferentes interpretações Extenso Normalmente, escreve-se muito, para dizer pouca coisa A&P 13 Fluxograma Uso de símbolos gráficos para representar cada etapa. Início Leia NUM Os símbolos são padronizados DOBRO ← NUM*2 Escreva DOBRO Fim 14 7 A&P Fluxograma Vantagens: Entendimento gráfico é mais simples Padrão amplamente conhecido Desvantagens: Conhecer os símbolos Pouca atenção aos dados, dificultando a transcrição para um programa Complica-se à medida que o algoritmo cresce. A&P 15 Pseudocódigo ou Portugol Uso de pseudo-linguagem de programação para representar cada etapa lógica Comandos e instruções são em português ou inglês. Algoritmo CALCULA_DOBRO 1. 2. 3. 4. 5. início Leia NUM DOBRO 2 * NUM Escreva DOBRO fim 16 8 A&P Pseudocódigo ou Portugol Vantagens: Independência da solução. Usa o português como linguagem de base; Permite definir quais e como os dados são estruturados; Trata-se de solução lógica apenas. Não interessa quem vai executar. Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. Desvantagens: Exige a definição de uma linguagem não real para trabalho; Não padronizado. Estruturas Básicas de Controle Algoritmos e Programação Informática II 17 18 9 A&P Estruturas Básicas de Controle Qualquer estruturação lógica depende de estruturas de controle: Sequenciação Seleção Repetição A&P 19 Exemplo: Sequenciação Problema: Trocar uma lâmpada Solução (Algoritmo explorando sequenciação) Algoritmo trocar_lâmpada_versão1 1. 2. 3. 4. 5. 6. 7. pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar lâmpada queimada; colocar lâmpada nova; descer da escada; 20 10 A&P Exemplo: Seleção ou Decisão Problema: Trocar uma lâmpada Solução (Algoritmo explorando sequenciação e seleção) Algoritmo trocar_lâmpada_versão2 acionar o interruptor; se a lâmpada não acender, então 1. 2. pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar lâmpada queimada; colocar lâmpada nova. descer da escada; a. b. c. d. e. f. g. A&P 21 Exemplo: Repetição Problema: Trocar 10 lâmpadas queimadas Solução (Algoritmo explorando sequenciação, seleção e repetição) Algoritmo trocar_lâmpada_versão3 Para 10 lâmpadas, faça 1. i. ii. iii. 2. ir até o interruptor da lâmpada 1 de 10; acionar o interruptor; se a lâmpada não acender, então a. pegar uma escada; b. posicionar a escada embaixo da lâmpada; c. buscar uma lâmpada nova; d. subir na escada; e. retirar lâmpada queimada; f. colocar lâmpada nova; g. Descer da escada; Repetir etapas para próxima lâmpada 22 11 A&P • Até aqui vimos o seguinte: 23 12