Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conceitos e Representação de Algoritmos Programação de Computadores I Emiliana Mara Lopes Simões simoes.eml@gmail.com Universidade Federal de Ouro Preto agosto 2009 Definição de Algoritmo “Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [Knuth] “Seqüência ordenada, e não ambigua, de passos que levam à solução de um dado problema” [Tremblay] Definição de Algoritmo “Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [Knuth] “Seqüência ordenada, e não ambigua, de passos que levam à solução de um dado problema” [Tremblay] Importância do Estudo dos Algoritmos . . . antes que o computador possa executar uma tarefa, deve ser fornecido um algoritmo que instrua exatamente o que deve ser feito . . . A noção de algoritmo é básica para toda a programação de computadores Importância do Estudo dos Algoritmos . . . antes que o computador possa executar uma tarefa, deve ser fornecido um algoritmo que instrua exatamente o que deve ser feito . . . A noção de algoritmo é básica para toda a programação de computadores Exemplos de Algoritmos Apesar de ser um termo novo para vocês, fazemos uso constantemente de algoritmos em nosso cotidiano Exemplos: Instruções para se utilizar um aparelho eletrodoméstico Uma receita de bolo Como ir de casa até a Universidade Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Trocar uma lâmpada Passo 1: Pegar uma lâmpada nova Passo 2: Pegar uma escada Passo 3: Posicionar a escada embaixo da lâmpada queimada Passo 4: Subir na escada com a lâmpada nova na mão Passo 5: Retirar a lâmpada queimada Passo 6: Colocar a lâmpada nova Passo 7: Descer da escada Passo 8: Testar o interruptor Passo 9: Guardar a escada Passo 10: Jogar a lâmpada velha no lixo Exemplos de Algoritmos Retirar moedas do bolso Passo 1: Retire uma moeda do bolso e coloque sobre a mesa Passo 2: Retorne ao Passo 1 Problema: E quando não houver mais moedas no bolso? Ambigüidade Exemplos de Algoritmos Retirar moedas do bolso Passo 1: Retire uma moeda do bolso e coloque sobre a mesa Passo 2: Retorne ao Passo 1 Problema: E quando não houver mais moedas no bolso? Ambigüidade Exemplos de Algoritmos Retirar moedas do bolso Passo 1: Retire uma moeda do bolso e coloque sobre a mesa Passo 2: Retorne ao Passo 1 Problema: E quando não houver mais moedas no bolso? Ambigüidade Características Ter fim Ser efetivo Não dar margem à dupla interpretação (Ambigüidade) Ter zero ou mais informações de entrada Ter uma ou mais informações de saída Vantagens A partir do algoritmo o programador poderá implementá-lo em qualquer linguagem de programação ALGORITMO + LING. DE PROGRAMAÇÃO = PROGRAMA Dificuldades Difícil para iniciantes saber o que o computador pode ou não fazer Criação de algoritmos é um processo não automático e tem muito de arte Pode haver mais de uma solução para um problema Exemplo Dispõe-se de 2 vasilhas com capacidades marcadas de 9 e 4 litros respectivamente. Mostre a seqüência de passos necessários para colocar numa terceira vasilha de medida desconhecida um volume de 6 litros. Formas de Representação A representação de algoritmos requer alguma forma de linguagem Dentre as formas de representação mais conhecidas, tem-se: Descrição narrativa Fluxograma Pseudocódigo, também conhecido como linguagem estruturada ou Portugol Descrição Narrativa Algoritmos expressos diretamente em linguagem natural (Português) Exemplo: Cálculo da média de um aluno Obter as notas da primeira e da segunda prova Calcular a média aritmética entre as duas notas Se a média for maior ou igual a 6.0, o aluno foi aprovado, senão ele foi reprovado Descrição Narrativa Algoritmos expressos diretamente em linguagem natural (Português) Exemplo: Cálculo da média de um aluno Obter as notas da primeira e da segunda prova Calcular a média aritmética entre as duas notas Se a média for maior ou igual a 6.0, o aluno foi aprovado, senão ele foi reprovado Descrição Narrativa Algoritmos expressos diretamente em linguagem natural (Português) Exemplo: Cálculo da média de um aluno Obter as notas da primeira e da segunda prova Calcular a média aritmética entre as duas notas Se a média for maior ou igual a 6.0, o aluno foi aprovado, senão ele foi reprovado Descrição Narrativa Exemplo: Trocar um pneu Afrouxar ligeiramenteas porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas Descrição Narrativa Vantagem: O português é bastante conhecido por nós Desvantagem: Imprecisão Extensão, isto é, escreve-se muito para dizer pouca coisa Fluxograma Utilização de símbolos gráficos padronizados para representar algoritmos Fluxograma Exemplo: Cálculo da média de um aluno Fluxograma Exemplo: Cálculo da soma de dois números Fluxograma Vantagens: Uma das ferramentas mais conhecidas Figuras dizem mais que palavras Padrão mundial Desvantagens: Pouca atenção aos dados, não oferecendo recursos para descrevê-los e representá-los Complica a medida que o algoritmo cresce Pseudocódigo Este método procura misturar as facilidades da linguagem natural com a precisão das linguagens de programação Exemplo: Cálculo da média de um aluno Pseudocódigo Exemplo: Determinar o maior de dois números Pseudocódigo Vantagens: Usa o português como base Pode-se definir quais e como os dados vão estar estruturados Passagem quase que imediata do algoritmo para uma linguagem de programação qualquer Desvantagens: Não padronizado Exercícios Escreva os algoritmos na forma descrição narrativa para fritar um ovo Escreva os algoritmos utilizando fluxogramas: Obter a soma (S) e o produto (P) de dois valores (A; B) inseridos por teclado, logo imprima o resultado. Calcular a área (A) de um retângulo. A base (B) e a altura (H) do retângulo são inseridos por teclado. Escrever o resultado. Escrever os pseudocódigos para: Dados 2 valores por teclado mostrar em ordem de menor a maior Dado um número, responder se ele é positivo ou negativo
Compartilhar