Disciplina: Lógica e Matemática Computacional Professora: Chaiene Minella, MSc [email protected] chaiene.yolasite.com Importante !!! AVALIAÇÃO: 07/06/2016 Conteúdo Lógica de Predicados (Quantificadores) Lógica de programação (Algoritmos, diagramas de blocos, estruturas de seleção, estruturas de repetição e sub-rotinas) Quantificadores Particularização Universal Essa regra diz que podemos deduzir P(x), P(y), P(z), P(a), etc. de (∀x)P(x), retirando, assim, um quantificador universal. Exemplo: (∀x)[H(x) → M(x)] ^ H(s) → M(s) 1. 2. 3. 4. (∀x)(H(x) → M(x)) H(s) H(s) → M(s) M(s) hip hip 1 pu 2, 3 mp * No passo 3, um símbolo constante foi substituído em todo o escopo do quantificador universal, como permitido pela particularização universal. 4 Particularização Existencial Essa regra nos permite retirar um quantificador existencial. Ela diz que, a partir de (Ǝx)P(x), podemos deduzir P(x), P(y), P(z), P(a), etc. Observação: Use a particularização existencial no início da sequência de demonstração. Exemplo: (∀x)[P(x) → Q(x)] ^ (Ǝy)P(y) → Q(a) 1. 2. 3. 4. 5. (∀x)[P(x) → Q(x)] (Ǝy)P(y) P(a) P(a) → Q(a) Q(a) hip hip 2 pe 1 pu 3, 4 mp 5 Generalização Universal A generalização universal permite a inserção de um quantificador universal. Exemplo: (∀x)[P(x) → Q(x)] ^ (∀x)P(x) → (∀x)Q(x) 1. 2. 3. 4. (∀x)[P(x) → Q(x)] (∀x)P(x) P(x) → Q(x) P(x) 5. Q(x) 6. (∀x)Q(x) hip hip 1 pu 2 pu (Note que não existe restrição sobre usar novamente um nome em pu) 3, 4 mp 5 gu 6 Generalização Existencial A regra permite a inserção de um quantificador existencial. De P(x) ou P(a) podemos deduzir (Ǝx)P(x). Exemplo: (∀x)P(x) → (Ǝx)P(x) 1. (∀x)P(x) 2. P(x) 3. (Ǝx)P(x) hip 1 pu 2 ge 7 Obs.: Simbolicamente, [(∀x)A(x)]’ é equivalente a (Ǝx)[A(x)]’ [(Ǝx)A(x)]’ é equivalente a (∀ x)[A(x)]’ Damos o nome de Negação (neg). Esta regra pode ser incluída na tabela de equivalência. 8 Algoritmos Introdução à Lógica de Programação Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. 10 Introdução à Lógica de Programação Até mesmo as coisas mais simples, podem ser descritas por sequências lógicas. Por exemplo: “Trocar um pneu de carro” 1)Parar o carro 2)Sinalizar 3)Pegar o macaco 4)Subir o carro 5)Retirar os parafusos 6)Trocar o pneu 7)Colocar os parafusos 8)Descer o carro 11 Introdução à Lógica de Programação Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais. 12 Introdução à Lógica de Programação Onde temos: ENTRADA São os dados de entrada do algoritmo PROCESSAMENTO São os procedimentos utilizados para chegar ao resultado final SAÍDA São os dados já processados 13 Introdução à Lógica de Programação Exemplo de Algoritmo Imagine o seguinte problema: Calcular a média final dos alunos da turma. Os alunos realizarão quatro provas: P1, P2, P3 e P4. Onde: Média Final = (P1+P2+P3+P4) / 4 Para montar o algoritmo proposto, faremos três perguntas: a) Quais são os dados de entrada? R: Os dados de entrada são P1, P2, P3 e P4 b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados de entrada e dividi-los por 4 (quatro). c) Quais serão os dados de saída? R: O dado de saída será a média final 14 Introdução à Lógica de Programação Algoritmo Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Receba a nota da prova4 Some todas as notas e divida o resultado por 4 Mostre o resultado da divisão 15 Diagrama de blocos Diagrama de Blocos O que é um diagrama de bloco? O diagrama de blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento. Sua principal função é a de facilitar a visualização dos passos de um processamento. 17 Diagrama de Blocos 18 Diagrama de Blocos 19 Estruturas de Seleção Estruturas de Seleção São aquelas que permitem alterar o Fluxo de Execução, de forma a selecionar qual parte deve ser executada; Essa “decisão” de execução é tomada a partir de uma condição, que pode resultar apenas em Verdade ou Falsidade; Uma condição é representada por expressões relacionais ou lógicas; As estruturas de seleção podem ser classificadas em simples, compostas ou encadeadas; 21 Estruturas de Seleção Seleção Simples se <condição> então início // início do bloco verdade comando 1; comando 2; ... comando n; fim; // fim do bloco verdade fim se; 22 Estruturas de Seleção Seleção Simples Quando a <condição> for verdadeira o “bloco verdade” é Executado; Quando a <condição> for falsa o “bloco verdade” não é Executado; 23 Estruturas de Seleção Seleção Simples: Média aritmética com aprovação início // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual // entrada de dados leia (N1, N2, N3, N4); // processamento MA := (N1 + N2 + N3 + N4) / 4; // saída de dados escreva (MA); se (MA >= 7) então escreva (“Aluno Aprovado !”); fim se; fim. 24 Estruturas de Seleção Seleção Composta se <condição> então início // início do bloco verdade comando 1; comando n; fim; // fim do bloco verdade senão início // início do bloco falsidade comando 1; comando n; fim; // fim do bloco falsidade fim se; 25 Estruturas de Seleção Seleção Composta Quando a <condição> for verdadeira o “bloco verdade” é Executado; ou Quando a <condição> for falsa o “bloco falsidade” é Executado; 26 Estruturas de Seleção Seleção Composta: Média Aritmética com aprovação e reprovação início real: N1, N2, N3, N4, // notas bimestrais MA; // média anual leia (N1, N2, N3, N4); MA := (N1 + N2 + N3 + N4) / 4; escreva (MA); se (MA >= 7) então início escreva (“Aluno Aprovado !”); escreva (“Parabéns !”); fim; senão início escreva (“Aluno Reprovado !”); escreva (“Estude mais !”); fim; fim se; fim. 27 Estruturas de Seleção Seleção Encadeada Ocorre quando uma seleção tem como ação uma outra seleção. Uma seleção encadeada pode ser: Heterogênea: Quando não é possível identificar padrão de comportamento; Homogênea: Quando é possível identificar padrão de comportamento; se – então – se: quando depois de cada então ocorre outro se se – senão – se: quando depois de cada senão ocorre outro se 28 Estruturas de Seleção Seleção Encadeada Heterogênea início inteiro: A, B, C; // tamanho dos lados leia (A, B, C); se (A<B+C) e (B<A+C) e (C<A+B) então se (A=B) e (B=C) então escreva (“Triangulo Equilátero”); senão se (A=B) ou (B=C) ou (A=C) então escreva (“Triângulo Isósceles”); senão escreva (“Triangulo Escaleno”); fim se; fim se; senão escreva (“Estes valores não formam um triângulo”); fim se; fim. 29 Estruturas de Seleção Seleção Encadeada Homogênea se – então – se se <Cond1> então se <Cond2> então se <Cond3> então se <Cond4> então W; fim se; fim se; fim se; fim se; É equivalente a: se <Cond1> e <Cond2> e <Cond3> e <Cond4> então W; fim se; 30