Introdução à Computação Algoritmo – Textual Universidade Federal Rural de Pernambuco Professor: Abner Corrêa Barros [email protected] “Um algoritmo pode ser definido como uma seqüência de passos que visam atingir um objetivo bem definido”.[Forbellone/ Eberspächer] “Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações primitivas, as quais damos por certo que podem ser executadas”. [Guimarães/Lages.] 2 Um algoritmo descreve de maneira concisa e não ambígua os passos necessários à execução com sucesso de uma determinada tarefa Pode ser descrito em linguagem textual (pseudo código) ou através de símbolos gráficos (fluxogramas) 3 Deve possuir no mínimo um estado inicial, ponto de partida, e um estado final, objetivo a ser alcançado A passagem do estado inicial ao final podem exigir a execução de zero a n passos intermediários ( n < ∞). Cada passo do algoritmo esta associado a uma ação necessária para que se possa alcançar o objetivo desejado 4 Introdução Um algoritmo tem um caráter imperativo no qual a ocorrência do nome de uma ação também é chamada de comando. Em outras palavras, um algoritmo é uma norma executável para atingir um certo efeito desejado (obter uma solução para certo tipo de problema). 5 Exemplo: Algoritmo para atender a porta 1. Campainha toca 2. Direcionar-se à porta 3. Destrancar a porta 4. Abrir a porta 6 Uma ação pode representar um conjunto de outros ações, representado assim uma rotina mais complexa. Exemplo: Abrir a porta = 1. Girar a chave 2. Acionar a maçaneta 3. Puchar ou empurrar a porta 7 Exemplos de algoritmos (na vida prática): o Manuais de uso o Instruções de montagem o Receitas de cozinha o Informações de como chegar a um lugar 8 Um algoritmo DEVE ser determinístico, ou seja, dadas as mesmas condições deve produzir, depois de executado, os mesmos resultados. Passos Intermediários Estado inicial Passos Intermediários Estado Final Condições do ambiente 9 Principais Conectivos ou Tipos de Comandos • Seqüência Simples de Comandos (ação direta) Atribuir, somar, dividir, ler, escrever, etc • Conectivo Condicional Se (condição) então (ação) senão (ação) Conectivo Repetitivo Repetir (ação) n vezes Conectivo Repetitivo Condicional • • Enquanto (condição) (ação) (ação) enquanto (condição) 10 Seqüência Simples de Comandos Exemplo: Trocar a lâmpada Pegar uma escada Posicionar a escada embaixo da lâmpada Buscar uma lâmpada nova Subir na escada Retirar a lâmpada velha Colocar a lâmpada nova 11 Conectivo Condicional – se/então Exemplo: Manutenção nas lâmpadas Ligar interruptor Se lâmpda não acende então Trocar a lâmpada Senão verificar outra lâmpada 12 Conectivo Repetitivo Exemplo: Manutenção nas lâmpadas Repetir 10 vezes Ligar interruptor Se lâmpada não acende então Trocar a lâmpada Senão verificar outra lâmpada 13 Conectivo Repetitivo Condicional Exemplo: Manutenção nas lâmpadas Enquanto houver lâmpadas por verificar, faça Ligar interruptor Se lâmpda não acende então Trocar a lâmpada Senão verificar outra lâmpada 14 Conectivo Repetitivo Condicional Exemplo: Manutenção nas lâmpadas Faça Ligar interruptor Se lâmpda não acende então Senão Trocar a lâmpada verificar outra lâmpada Enquanto houver lâmpadas por verificar 15 Inicio Inicio Buscar Escada Ir até próximo interruptor Posicionar Escada Ligar Lâmpada Buscar Lâmpada Lâmpada Acendeu? Retirar Lâmpada Velha Sim Não Trocar Lâmpada Colocar Lâmpada Nova Sim Remover Escada Falta testar alguma lâmpada? Não Fim Fim 16 Exercícios Descreva um algoritmo para resolver uma equação de segundo grau Descreve um algoritmo para, dado um conjunto de dados numéricos em ordem aleatória, ordená-los de forma crescente Descreva um algorítmo para efetuar a divisão de dois números fornecidos pelo usuário 17 Exercícios Descreva um algoritmo que resolva a seguinte situação: • Um senhor, infelizmente bastante gordo, está numa das margens de um rio com uma raposa, uma dúzia de galinhas e um saco de milho. O senhor pretende atravessar o rio com suas cargas, num barco que só comporta o senhor e uma das cargas… 18 Exercícios Resolução: 1. Atravesse as galinhas. 2. Retorne sozinho. 3. Atravesse a raposa. 4. Retorne com as galinhas. 5. Atravesse o milho. 6. Retorne sozinho. 7. Atravesse as galinhas. 19 20