Baixe o app para aproveitar ainda mais
Prévia do material em texto
Professor: Humberto Nigri hnigri@gmail.com Algoritmos Algoritmos – Conceitos e Definições 1o Sem 2012 HNigri - Algoritmos 2 Computadores ! Computadores só sabem fazer um tipo de coisa: executar instruções para processar informação ! São muito BURROS ... Mas extremamente RÁPIDOS (pelo menos mais rápido que eu ...) ! Podemos dividir as tarefas de um computador em três fases: ! Obter dados (entrada de dados) ! Fazer cálculos (processar) ! Apresentar um resultado (saída ou relatório) ! Porém para um computador fazer tudo isso temos que explicar nos MINIMOS detalhes ! Ah, computadores tem AMNÉSIA: quando o ligamos ele já esqueceu tudo ! 1o Sem 2012 HNigri - Algoritmos 3 Algoritmos ! Saber construir um algoritmo é fundamental para entendermos como instruir um computador a executar as tarefas que desejamos Origem do nome: Matemático persa Abu já’far Muhammad ibn- Musa Al-Khowarizmi (Algoritmus em latim) (780-850 d.C). 1o Sem 2012 HNigri - Algoritmos 4 Algoritmos Definição: ! Algoritmo é uma seqüência de instruções para resolver um problema, e possui as seguintes propriedades : ! Garantia de término: o programa é finito ! Exatidão: as instruções não podem ser ambíguas ! Efetividade: cada instrução básica tem que ser possível de executar 1o Sem 2012 HNigri - Algoritmos 5 Algoritmos ! Um algoritmo não é a solução do problema e sim, uma seqüência de passos finitos para resolve-lo. ! Um problema pode ser resolvido por vários caminhos. ! Um problema pode ser resolvido por vários algoritmos. Exemplo: Algoritmo para ligar de um telefone público: 1) Retirar o telefone do gancho. 2) Esperar o sinal. (tu, tu, tu ...) 3) Colocar o cartão. 4) Discar o número. 5) Falar no telefone. 6) Colocar o telefone no gancho. 1o Sem 2012 HNigri - Algoritmos 6 Exemplos de algoritmos Algoritmo para fritar um ovo. 1) Pegar frigideira, ovo, óleo e sal. 2) Colocar óleo na frigideira. 3) Acender o fogo. 4) Colocar a frigideira no fogo. 5) Esperar o óleo esquentar. 6) Colocar o ovo. 7) Retirar quando pronto. Algoritmo para mascar um chiclete. 1) Pegar o chiclete. 2) Retirar o papel. 3) Jogar o papel no lixo (poucos fazem essa parte!) 4) Mastigar o chiclete. 5) Jogar o chiclete no lixo no final. 1o Sem 2012 HNigri - Algoritmos 7 Exemplos de algoritmos Algoritmo para trocar uma lâmpada. 1) Pegar uma lâmpada nova. 2) Pegar uma escada. 3) Posicionar a escada abaixo da lâmpada queimada. 4) Subir na escada com a lâmpada nova na mão. 5) Retirar a lâmpada queimada. 6) Colocar a lâmpada nova. 7) Descer da escada. 8) Testar ligando o interruptor. 9) Guardar a escada. 10) Jogar a lâmpada velha no lixo. .... É, mas eu faria diferente ... 1o Sem 2012 HNigri - Algoritmos 8 Lógica de Programação Elaborar algoritmos exige lógica de programação LÓGICA DE PROGRAMAÇÃO: É a técnica de encadear pensamentos para atingir determinado objetivo. Exemplo: Todo mamífero é um animal. Todo cavalo é um mamífero Portanto, todo cavalo é um animal 1o Sem 2012 HNigri - Algoritmos 9 Mas nem tudo é Lógica ... Deus é amor. O amor é cego. Steve Wonder é cego. Logo, Steve Wonder é Deus. Disseram-me que eu sou ninguém. Ninguém é perfeito. Logo, eu sou perfeito. Mas só Deus é perfeito. Portanto, eu sou Deus. Se Steve Wonder é Deus, eu sou Steve Wonder !! Meu Deus, eu estou cego !!! 1o Sem 2012 HNigri - Algoritmos 10 Lógica de Programação Exercício: Fazer um algoritmo para resolver o problema dos Índios e dos Padres ! Existem 3 padres e 3 índios em uma margem de um rio. A missão deles é atravessar para o outro lado, entretanto, o número de índios em uma mesma margem nunca pode ser maior que o número de padres, visto que os selvagens tendem a comer os religiosos. Sabendo que o barco leva no máximo, duas pessoas, determine uma seqüência para transportar todos para o lado e garantir que permaneçam vivos. 1o Sem 2012 HNigri - Algoritmos 11 Exercício - resposta 1) O barco vai com 2 índios. 2) O barco volta com 1 índio. 3) O barco vai com mais 2 índios. 4) O barco volta com 1 índio. 5) O barco vai com 2 padres. 6) O barco volta com 1 índio e 1 padre. 7) O barco vai com mais 2 padres. 8) O barco volta com 1 índio. 9) O barco vai com 2 índios. 10) O barco volta com 1 índio. 11) O barco vai com mais 2 índios. 1o Sem 2012 HNigri - Algoritmos 12 Outros exemplos de algoritmos Algoritmo para o meu fim de semana. 1) Vejo a previsão do tempo. 2) SE (fizer sol) ENTÃO. a) Vou ao clube. SENÃO a) Vou assistir um filme. FIM SE 3) Almoçar 4) Dormir Outro exemplo: Algoritmo usado no buteco (com versão diferente para homens e mulheres …) 1o Sem 2012 HNigri - Algoritmos 13 Homens Mulheres 1o Sem 2012 HNigri - Algoritmos 14 Homens Mulheres 1o Sem 2012 HNigri - Algoritmos 15 Homens Mulheres 1o Sem 2012 HNigri - Algoritmos 16 Homens Mulheres 1o Sem 2012 HNigri - Algoritmos 17 Outros exemplos de algoritmos Algoritmo para fazer uma prova. 1) Ler a prova 2) Pegar a caneta. 3) ENQUANTO ((houver questões em branco) E (o tempo não terminou)) FAÇA. a) Ler, entender e pensar na questão. b) SE (souber a questão) ENTÃO. i) Resolvê-la. SENÃO i) Pular para a próxima questão. FIM SE FIM ENQUANTO 4) Entregar a prova. 1o Sem 2012 HNigri - Algoritmos 18 Algoritmo para fazer um programa 1. Analisar o problema. 2. Escolher a melhor estratégia para resolver o problema 3. Projetar o algoritmo 4. Codificar o programa 5. Compilar o programa 6. Resolver os erros de compilação 7. Testar o programa (entrar com os dados) 8. Avaliar se os resultados são suficientes 1o Sem 2012 HNigri - Algoritmos 19 Tipos de Algoritmo ! Descrição Narrativa ! Usando uma liguagem natural ! Vantagem: Todos já sabem uma liguagem dessas ! Desvantagem: Pode ter várias interpretações ! Fluxograma ! Usando símbolos gráficos ! Vantagem: Facilita entender visualmente a lógica ! Desvantagem: Dá um trabalho ... Não serve para programas muito complexos e dificulta na hora de codificar ! Pseudocódigo (Portugol – PORTUguês + alGOritmo) ! É uma linguagem com regras mais rígidas e significados bem definidos ! Vantagem: Facilita na hora de codificar ! Desvantagem: Você vai ter que aprender ... hahaha 1o Sem 2012 HNigri - Algoritmos 20 Símbolos de um Fluxograma 1o Sem 2012 HNigri - Algoritmos 21 Exemplo 1 ! Faça um algoritmo para mostrar o resultado da multiplicação de dois números ! Descrição Narrativa ! Passo 1 – Receber os dois números que serão multiplicados ! Passo 2 – Multiplicar os números ! Passo 3 – Mostrar o resultado obtido 1o Sem 2012 HNigri - Algoritmos 22 Exemplo 1 ! Fluxograma 1o Sem 2012 HNigri - Algoritmos 23 Exemplo 1 ! Algoritmo inicio declare N1, N2, M numérico; escreva “Digite dois números”; leia N1, N2; M <- N1 * N2; escreva “Resultado = “, M; fim. 1o Sem 2012 HNigri - Algoritmos 24 Exemplo 2 ! Faça um algoritmo para mostrar o resultado da divisão de dois números ! Descrição Narrativa ! Passo 1 – Receber os dois números que serão divididos. ! Passo 2 – Se o segundo número for igual a zero, não poderá haver divisãopois não existe divisão por zero; caso contrário dividir os números e mostrar o resultado. 1o Sem 2012 HNigri - Algoritmos 25 Exemplo 2 - Fluxograma 1o Sem 2012 HNigri - Algoritmos 26 Exemplo 2 ! Algoritmo inicio declare N1, N2, D numérico; escreva “Digite dois números”; leia N1, N2; se N2 = 0 então escreva “Impossível dividir”; senão inicio D <- N1 / N2; escreva “Resultado = “, D; fim; fim. 1o Sem 2012 HNigri - Algoritmos 27 Exemplo 3 ! Faça um algoritmo para calcular a média aritmética de duas notas de um aluno e mostrar se ele pode ser aprovado ou reprovado ! Descrição Narrativa ! Passo 1 – Receber os duas notas ! Passo 2 – Calcular a média aritmética. ! Passo 3 – Mostrar a média calculada. ! Passo 4 – Se a média for maior ou igual a setenta então a situação do aluno é aprovado; caso contrário, é reprovado 1o Sem 2012 HNigri - Algoritmos 28 Exemplo 3 ! Fluxo- grama 1o Sem 2012 HNigri - Algoritmos 29 Exemplo 3 ! Algoritmo inicio declare N1, N2, M numérico; escreva “Digite duas notas”; leia N1, N2; M <- (N1 + N2) / 2; escreva “Média = “, M; se M ≥ 70 então escreva “Aprovado”; senão escreva “Reprovado”; fim. 1o Sem 2012 HNigri - Algoritmos 30 Exemplo 4 ! Faça um algoritmo para calcular o novo salário de um funcionário que ganhou aumento. Sabe-se que quando um funcionário ganha até R$ 500,00 o aumento é de 20%. Se ganha mais o aumento é 10% ! Descrição Narrativa ! Passo 1 – Receber o salário atual ! Passo 2 – Se o salário for até R$ 500,00, calcular o novo salário com aumento de 20%; caso contrário calcular aumento com 10% ! Passo 3 – Mostrar o novo salário. 1o Sem 2012 HNigri - Algoritmos 31 F l u x o g r a m a 4 1o Sem 2012 HNigri - Algoritmos 32 Exemplo 4 ! Algoritmo inicio declare Salario_Atual, Novo_Salario numérico; escreva “Digite o salário atual do funcionário”; leia Salario_Atual; se Salario_Atual ≤ 500 então Novo_Salario <- Salario_Atual * 1.20; senão Novo_Salario <- Salario_Atual * 1.10; escreva “Novo salário = “, Novo_Salario; fim. 1o Sem 2012 HNigri - Algoritmos 33 Além dos algoritmos … ! Mas temos um problema: ! Computadores não “entendem” os nossos algoritmos ! Eles só conhecem instruções codificadas em BINÁRIO que são intratáveis para nós humanos ! As instruções tem que ser de detalhadas minuciosamente ! Por isso utiliza-se as linguagens de programação. ! Uma LINGUAGEM DE PROGRAMAÇÃO ! Permite que possamos escrever comandos de forma compreensível para o ser humano ! Depois é traduzido para a forma que o computador entende ! Quem faz esse trabalho é o COMPILADOR ! Programa que traduz um texto (chamado programa fonte) em algo que o computador pode executar (conhecido como EXECUTÁVEL) 1o Sem 2012 HNigri - Algoritmos 34 Observações ! Um programa de computador é um algoritmo escrito em uma linguagem de programação. ! Cada frase é chamada de comando ou instrução. ! As frases terminam com um sinal de pontuação. ! Eventualmente a ordem dos comandos pode ser trocada. ! Em uma linguagem de programação não existem comandos como pegar o bolo, subir na escada, deixar a cabra. ! Exemplo de comandos são leia, escreva, some, divida, multiplique, atribua, entre outros. ! Outra definição de algoritmo: conjunto de comandos para resolver algum problema.
Compartilhar