ALGORITMOS – AULA 1 Profª Amanda Gondim NOÇÕES DE LÓGICA O que é lógica? A lógica trata da correção do pensamento Ensina-nos a usar corretamente as leis do pensamento É a arte de pensar corretamente A forma mais complexa do pensamento é o raciocínio Ordem da razão (nossa razão pode funcionar desordenadamente) ou ordem no pensamento 2 EXISTE LÓGICA NO DIA-A-DIA? Exemplos: a) A gaveta está fechada. A agenda está na gaveta. Preciso primeiro abrir a gaveta, para depois pegar a agenda. b) Ana é mais velha do que João João é mais velho do que Pedro Portanto, Ana é mais velha do que Pedro. 3 ALGORITMO • Exemplo: • Receita de bolo, onde você tem uma série de ingredientes necessários, uma sequência de diversos passos a serem cumpridos para que se consiga fazer determinado tipo de bolo (objetivo bem definido). • Mapa para se chegar à UFERSA, que também possui uma sequência de passos a serem seguidos e um objetivo bem definido. 4 ALGORITMO Problema de uma lâmpada queimada que deve ser trocada, atividade bem cotidiana. Pegue uma escada; Posicione-a embaixo da lâmpada; Busque uma lâmpada nova; Suba na escada; Retire a lâmpada; Coloque uma lâmpada nova; Acenda o interruptor. 5 ALGORITMO O objetivo de trocar a lâmpada queimada pode ser atingido com tal algoritmo que descreve a sequência de passos a ser seguida. Porém, e se a lâmpada não estiver queimada? podemos efetuar um teste antes de trocá-la. ligue o interruptor SE a lâmpada não acender, então: pegue uma escada posicione-a embaixo da lâmpada busque uma lâmpada nova suba na escada retire a lâmpada coloque uma lâmpada nova Ligue o interruptor. 6 ALGORITMO E se a lâmpada nova não funcionar? O objetivo portanto não foi atingido. Devemos então trocar a lâmpada diversas vezes, até que funcione. ligue o interruptor; O fluxo sequencial de SE a lâmpada não acender, então: execução foi alterado de pegue uma escada; posicione-a embaixo da lâmpada; busque uma lâmpada nova; suba na escada; retire a lâmpada; coloque uma lâmpada nova. ENQUANTO a lâmpada não acender: retire a lâmpada; coloque outra lâmpada. forma que após a ação “coloque outra lâmpada” o teste “se a lâmpada não acender” volte a ser executado o número de vezes necessário para se atingir o objetivo. (fluxo repetitivo) 7 ALGORITMOS NÃO COMPUTACIONAIS Exemplo: Fazer um Sanduíche 1. 2. 3. 4. 5. 6. 7. 8. 9. Pegar o pão Cortar o pão ao meio Pegar a maionese Passar a maionese no pão Pegar e cortar alface e tomate Colocar alface e tomate no pão Pegar o Hambúrguer Fritar o Hambúrguer Colocar o Hambúrguer no pão 8 ALGORITMOS NÃO COMPUTACIONAIS Você pode estar pensando: “Mas eu realizo essas atividades de maneira diferente!” Esse pensamento é correto, pois às vezes um problema pode ser resolvido de diversas maneiras, porém, gerando a mesma resposta, ou seja, podem existir vários algoritmos para solucionar o mesmo problema. 9 PORTUGUÊS ESTRUTURADO (PORTUGOL) Para que o algoritmo possa ser executado por uma máquina é importante que as instruções sejam corretas e sem ambiguidades. Portanto, a forma especial de linguagem que utilizaremos é bem mais restrita que o Português e com significados bem definidos para todos os termos utilizados nas instruções. 10 PORTUGUÊS ESTRUTURADO (PORTUGOL) O português estruturado é, na verdade, uma simplificação extrema do Português, limitada a umas poucas palavras e estruturas que têm um significado muito bem definido. 11 ALGORITMOS COMPUTACIONAIS Um programa é um conjunto de milhares de instruções que indicam ao computador, passo a passo, o que ele tem que fazer. Logo, um programa nada mais é do que um algoritmo computacional descrito em uma linguagem de programação. 12 MÉTODO PARA CONSTRUÇÃO DE ALGORITMOS Para construção de qualquer algoritmo, é necessário seguir estes passos: Compreender completamente o problema a ser resolvido, destacando os pontos mais importantes e os objetos que o compõem. Definir os dados de entrada, ou seja, quais dados serão fornecidos. 13 MÉTODO PARA CONSTRUÇÃO DE ALGORITMOS Definir o processamento, ou seja, quais cálculos serão efetuados. O processamento é responsável pela transformação dos dados de entrada em dados de saída. Definir os dados de saída. Construir o algoritmo. Testar o algoritmo realizando simulações. 14 TIPOS DE ALGORITMOS Os três tipos mais utilizados de algoritmos são: Descrição Narrativa Fluxograma Pseudocódigo ou Portugol ou Português Estruturado 15 DESCRIÇÃO NARRATIVA Consiste em analisar o enunciado do problema e escrever, utilizando uma linguagem natural (por exemplo, a língua portuguesa), os passos a serem seguidos para sua resolução. Vantagem: Não é necessário aprender nenhum conceito novo, pois é a linguagem natural. 16 DESCRIÇÃO NARRATIVA Exemplo: Somar três números 1. 2. 3. Recebe os três números Somar os três números Mostrar o resultado obtido 17 FLUXOGRAMA Utiliza símbolos gráficos predefinidos para a resolução do problema. Algoritmos 18 FLUXOGRAMA Exemplo: Somar três números 19 PORTUGUÊS ESTRUTURADO Consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para sua resolução. Vantagem: A passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas dessa linguagem que serão utilizadas. 20 PORTUGUÊS ESTRUTURADO A estrutura geral de um algoritmo é: Algoritmo "<nome do algoritmo>" var < declaração de variáveis> inicio < lista de comandos> fimalgoritmo 21 PORTUGUÊS ESTRUTURADO Exemplo: Somar três números ALGORITMO Soma var A, B, C, D: inteiro inicio escreva (“Digite o valor de A: ”) leia (A) escreva (“Digite o valor de B: ”) leia (B) escreva (“Digite o valor de C: ”) leia (C) D <- A + B + C escreva (“D= ”, D) fimalgoritmo 22 EXERCÍCIOS 1. Faça um algoritmo para mostrar o resultado da multiplicação de dois números (Descrição Narrativa, Fluxograma e Pseudocódigo): a) Descrição Narrativa: 1. 2. 3. Receber os números que serão multiplicados Multiplicar os números Mostrar o resultado obtido na multiplicação 23 EXERCÍCIOS b) Fluxograma: 24 EXERCÍCIOS c) Pseudocódigo ALGORITMO Multiplicacao var M, N1, N2: inteiro inicio escreva (“Digite o valor de N1: ”) leia (N1) escreva (“Digite o valor de N2: ”) leia (N2) M <- N1 * N2 escreva (“M = ”, M) fimalgoritmo 25 EXERCÍCIOS 2. Faça um algoritmo para mostrar o resultado da divisão de dois números (Descrição Narrativa, Fluxograma e Pseudocódigo) 26 EXERCÍCIOS 3. Faça um algoritmo em Descrição Narrativa, Fluxograma e Pseudocódigo para calcular a média aritmética de um aluno e mostrar a situação, que pode ser aprovado ou reprovado. a) Descrição Narrativa 1. 2. 3. 4. Receber as duas notas Calcular a média aritmética Mostrar a média aritmética Se a média for maior ou igual a 7, então a situação do aluno é aprovado; caso contrário,27a situação é reprovado. EXERCÍCIOS b) Fluxograma 28 EXERCÍCIOS c) Pseudocódigo ALGORITMO Media var M, N1, N2: real inicio escreva (“Digite o valor de N1: ”) leia (N1) escreva (“Digite o valor de N2: ”) leia (N2) M <- (N1 + N2) / 2 escreva (“M = ”, M) se (M >= 7) entao escreva(“ O aluno esta Aprovado ") senao escreva(“ O aluno esta Reprovado ") fimse fimalgoritmo 29