Baixe o app para aproveitar ainda mais
Prévia do material em texto
NOÇÕES DE LÓGICA UNIVERSIDADE FEDERAL DE ALAGOAS UNIDADE ACADÊMICA CAMPUS DO SERTÃO EIXO DAS TECNOLOGIAS NOÇÕES DE LÓGICA ALGORITMOS Prof. Arnaldo dos Santos Júnior arnaldo@lccv.ufal.br Noções de Lógica A lógica (do grego clássico logos, que significa pensamento, ideia, argumento, relato, razão lógica ou princípio lógico). Conceituação e objetivos A lógica é a ciência do pensamento. Estuda e ensina a colocar ordem no pensamento. Determinação da veracidade de operações através de análises de formas e leis do pensammento. 2 Noções de Lógica Todo mamífero é um animal. Todo cavalo é um mamífero. Exemplo Premissa I Premissa II Portanto, todo cavalo é um animal. Através de estudo de técnicas de dedução e análise é possível verificar a validade de argumentos. Conclusão 3 Noções de Lógica Lógica no dia-a-dia Exemplo: A gaveta está fechada. Exemplo: A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta para depois pegar a caneta. 4 Noções de Lógica Uso correto das leis do pensamento, processo de raciocínio e simbolização formais na programação de computadores. Lógica de programação Objetivos Racionalidade e o desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes; Resolução com qualidade de problemas que se deseja programar. 5 Algoritmos Algoritmo pode ser definido como uma sequência lógica de passos que visam atingir um objetivo bem definido; Conceitos definido; Algoritmo é a descrição de um conjunto de comandos que, obedecidos, resultam em uma sucessão finita de ações. 6 Algoritmos Partir de um ponto inicial e chegar a um ponto final; Não ser ambíguo (ter dupla interpretação); Poder receber dados externos e ser capaz de retornar Características básicas Poder receber dados externos e ser capaz de retornar resultados aos mesmos; Ter todas suas etapas alcançáveis em algum momento do programa. 7 Algoritmos Engenharia de Produção Otimização de processos em uma indústria; Métodos para a racionalização de custos; Estratégias de controle de estoque de materiais. Aplicações na engenharia Estratégias de controle de estoque de materiais. Engenharia Civil Resolução de problemas complexos em análise de estruturas; Modelagem do comportamento de fluidos; Escoamento de águas em meios porosos. 8 Algoritmos Lógica e algoritmos no dia-a-dia Exemplo 1: Problema: Deseja-se falar com alguém através de um telefone público. Como proceder? Solução: Seguir os passos descritos no telefone (algoritmo) 1 – Retirar o telefone do gancho; 2 – Esperar o sinal; 3 – Colocar o cartão; 4 – Discar o número; 5 – Falar ao telefone; 6 – Colocar o telefone no gancho. 9 Algoritmos Lógica e algoritmos no dia-a-dia Exemplo 2: Algoritmo para o final de semana 1 – Ver a previsão do tempo; 2 – Se fizer sol2 – Se fizer sol ir à praia; Senão Estudar IC, Geometria, Cálculo ; 3 – Almoçar; 4 – Ver televisão; 5 – Dormir. 10 Algoritmos Lógica e algoritmos no dia-a-dia Exemplo 3: Algoritmo para fazer uma prova 1 – Ler a prova; 2 – Pegar a caneta; 3 – Enquanto houver questão em branco e enquanto o tempo3 – Enquanto houver questão em branco e enquanto o tempo não terminou faça Se souber fazer a questão Resolvê-la; Senão Pular para a próxima; 4 – Entregar a prova. 11 Algoritmos Lógica e algoritmos no dia-a-dia Trocar uma lâmpada Exemplo 4.1: Algoritmo para trocar uma lâmpada 1 – Pegar uma escada; 2 – Posicionar a escada em baixo da lâmpada; 3 – Buscar uma lâmpada nova; 4 – Subir na escada; 5 – Retirar a lâmpada velha; 6 – Colocar a lâmpada nova. S e q u e n c i a ç ã o L i n e a r 12 Algoritmos Lógica e algoritmos no dia-a-dia Exemplo 4.2: Algoritmo para trocar uma lâmpada com teste 1 – Pegar uma escada; E se a lâmpada não estivesse queimada? 1 – Pegar uma escada; 2 – Posicionar a escada em baixo da lâmpada; 3 – Buscar uma lâmpada nova; 4 – Acionar o interruptor 5 – Se a lâmpada não acender, faça 5.1 – Subir na escada; 5.2 – Retirar a lâmpada velha; 5.3– Colocar a lâmpada nova. Ação condicional Teste Seletivo 13 Algoritmos Lógica e algoritmos no dia-a-dia Exemplo 4.3: Algoritmo para trocar uma lâmpada com teste no início 1 – Acionar o interruptor Podemos realizar o teste no início (acionar o interruptor) 1 – Acionar o interruptor 2 – Se a lâmpada não acender, faça 2.1 - Pegar uma escada; 2.2 – Posicionar a escada em baixo da lâmpada; 2.3 – Buscar uma lâmpada nova; 2.4 – Acionar o interruptor 2.5 – Subir na escada; 2.6 – Retirar a lâmpada velha; 2.7– Colocar a lâmpada nova. 14 Algoritmos Lógica e algoritmos no dia-a-dia Exemplo 4.5: Algoritmo p/ trocar a lâmpada com teste e repetição indefinida 1 – Acionar o interruptor 2 – Se a lâmpada não acender, faça 2.1 - Pegar uma escada; 2.2 – Posicionar a escada em baixo da lâmpada; E se a lâmpada nova não funcionar? 2.2 – Posicionar a escada em baixo da lâmpada; 2.3 – Buscar uma lâmpada nova; 2.4 – Acionar o interruptor 2.5 – Subir na escada; 2.6 – Retirar a lâmpada velha; 2.7– Colocar a lâmpada nova. 3 - Se a lâmpada não acender, faça 3.1 – Retirar a lâmpada queimada; 3.2 – Colocar outra lâmpada nova; 4 - Se a lâmpada não acender, faça ......... Até quando? 15 Algoritmos Lógica e algoritmos no dia-a-dia Exemplo 4.6: Algoritmo p/ trocar a lâmpada com teste e condição de parada 1 – Acionar o interruptor 2 – Se a lâmpada não acender, faça 2.1 - Pegar uma escada; Devemos realizar a troca de lâmpadas até encontrar uma que funcione. 2.1 - Pegar uma escada; 2.2 – Posicionar a escada em baixo da lâmpada; 2.3 – Buscar uma lâmpada nova; 2.4 – Acionar o interruptor 2.5 – Subir na escada; 2.6 – Retirar a lâmpada velha; 2.7 – Colocar a lâmpada nova. 2.8 – Enquanto a lâmpada não acender, faça 2.8.1 – Retirar a lâmpada queimada; 2.8.2 – Colocar uma lâmpada nova; Condição de parada 16 Algoritmos Forma textual, usando o português coloquial; Forma gráfica. Formas de representação Algoritmo InícioInício Sequência de operações . . . . Fim da sequência. Fim do algoritmo. Forma textual Forma gráfica 17 Algoritmos De que maneira devemos escrever os algoritmos? Por meio da forma gráfica? Linguagens de programação Como resolver problemas Através da forma textual? Utilizando linguagem de máquina? Como resolver problemas por meio de algoritmos com o computador? 18 Algoritmos Linguagens de programação: programação é feita através de uma notação matemática e de algumas palavras reservadas. As linguagens de programação são bem mais simples e podem ser facilmente entendidas e utilizadas pelos usuários do computador. Linguagens de programação utilizadas pelos usuários do computador. Compiladas Interpretadas Linguagem de programação Compilador Linguagem de máquina Linguagem de programação Interpreta e executa as instruções 19 Algoritmos Em um lado de um rio se encontram, você, um lobo um coelho e uma cenoura. Você possui uma canoa que te permite levar apenas um deles de cada vez, sabendo que caso o lobo fique sozinho com o coelho o lobo o come e o mesmo acontece quando o coelho fica sozinho com a Desafios de lógica e algoritmos o mesmo acontece quando o coelho fica sozinho com a cenoura. Como fazer para atravessar todos eles em segurança para a outra margem do rio? 20 Algoritmos Elabore um algoritmo que mova os discos da haste Apara haste C. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre o menor. Desafios de lógica e algoritmos colocado um disco maior sobre o menor. 21 Algoritmos Em um algoritmo um comando que não for do entendimento do destinatário terá de ser desdobrado em novos comandos, que constituirão um refinamento do comando inicial. Refinamentos sucessivos um refinamento do comando inicial. Algoritmo Início Comando Fim do comando. Fim do algoritmo. Algoritmo Início Comando1 Comando2 Comando3 Fim do comandos. Fim do algoritmo. Refinamento 22 Algoritmos Algoritmo para calcular o salário líquido de um funcionário. Refinamentos sucessivos: Exemplo Algoritmo Leia os dados do funcionário Determine o salário Escreva o salário Fim do algoritmo. C o m a n d o s 23 Algoritmos O comando “Determine o salário” pode ser refinado: Refinamentos sucessivos: Exemplo Ref. Determine o salárioRef. Determine o salário Calcule as vantagens Calcule as deduções SALÁRIOLIQUIDO� VANTAGENS - DEDUÇÕES Fim Ref. 24 Algoritmos Estruturados Programação estruturada para a construção de algoritmos legíveis, flexíveis e de fácil manutenção. Desenvolvimento de algoritmos por etapa/refinamentos Introdução Desenvolvimento de algoritmos por etapa/refinamentos sucessivos Número limitado de estruturas de controle de fluxo; Transformação de refinamentos sucessivos em módulos. 25 Algoritmos Estruturados Técnica para resolver algoritmos com uso de refinamentos sucessivos (módulos); Módulo: grupo de comandos, constituindo um trecho do algoritmo, com uma função bem definida Exemplo: Versão final do algoritmo para o cálculo do salário Modularização Exemplo: Versão final do algoritmo para o cálculo do salário líquido de um funcionário. 26 Algoritmos Estruturados Modularização Ref. Determine o salário Calcule as vantagens Calcule as deduções SALÁRIOLIQUIDO� VANTAGENS - DEDUÇÕES Fim Ref. Módulo {Cálculo das vantagens}Módulo {Cálculo das vantagens} Salário bruto = Nhoras x SalárioHora Salário família = Nfilhos x ValorPorFilho VANTAGENS = Salário bruto + Salário família Fim Módulo Módulo {Cálculo das deduções} INSS = Salário bruto x 0,08 IRPF = Salário bruto x Taxa DEDUÇÕES = INSS + IRPF Fim Módulo 27 Algoritmos Estruturados Modularização Algoritmo: Determine o salário Ative o módulo “Cálculo das vantagens”Ative o módulo “Cálculo das vantagens” Ative o módulo “Cálculo das deduções” SALÁRIOLIQUIDO� VANTAGENS - DEDUÇÕES Escreva SALÁRIOLIQUIDO Fim Algoritmo 28 Algoritmos Estruturados Modularização Descrição hierárquica da Modularização Módulo principal Módulo Vantagens Módulo Deduções 29
Compartilhar