Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Programação Aplicada à Engenharia Aula 03: Algoritmos Silvio Fernandes 2009.1 1
Algoritmos Em uma receita de bolo, descrevem-se quais serão os ingredientes e as suas quantidades. Depois, quais são as regras para o seu preparo, como a sequencia de inclusão dos ingredientes 2
Algoritmos Açãoé um acontecimentoque, a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido Ex: Pediu-se a 3 pessoas que escolhessem um valor L e escrevessem os termos da sequenciade Fibonacci inferiores a L Pessoa 1: L= 50 {1, 1, 2, 3, 5, 8, 13, 21, 34} Pessoa 2: L = 13 {1, 1, 2, 3, 5, 8} Pessoa 3: L = 1 {} 3
Algoritmos Pode-se reconhecer nas 3 ações distintas um mesmo padrão de comportamento, a subordinação a uma mesma norma de execução Algoritmo: é a descrição de um conjunto de comando que, obedecidos, resultam numa sucessão finita de ações 4
Algoritmos Ex: Torres de Hanoi. O objetivo é transferir os 3 anéis da haste A para B, usando C se necessário. As regras são: Deve-se mover um único anel por vez Um anel de diâmetro maior nunca pode repousar sobre um menor 5
Algoritmos Algoritmo para resolver Torres de Hanoi Início 1. Mover um anel da haste A para a haste B 2. Mover um anel da haste A para a haste C 3. Mover um anel da haste B para a haste C 4. Mover um anel da haste A para a haste B 5. Mover um anel da haste C para a haste A 6. Mover um anel da haste C para a haste B 7. Mover um anel da haste A para a haste B Fim 6
Algoritmos Algoritmo para resolver Torres de Hanoi 7
Propriedades de um Algoritmo Valores de entrada Todo algoritmo deve possuir zero, um ou mais entradas Valores de saída Uma ou mais saídas simbolizam os resultados Finitude Todo algoritmo deve ser finito, assim ele tem um início e um conjunto de passos que levam ao término Passos elementares Um algoritmo computacional deve ser explicitado por meio de operações elementares, sem que possam haver diferenças de interpretação Correção Deve permitir que, com sua execução, se chegue às saídas com resultados coerentes com as entradas 8
Para um algoritmo ser útil, deve ser entendido da mesma forma por todas as pessoas que o utilizarem Existem diversas maneiras de formalizar a representação de um algoritmo Fluxograma: representação gráfica, por símbolos especiais, da definição, análise ou método de solução de um problema 9
10
Todo fluxograma deve possuir uma sintaxe e uma semântica bem-definidas Sintaxe Símbolos gráficos específicos Expressões admissíveis a serem escritas no interior dos símbolos Sub-rotinaspredefinidas que podem ser utilizadas nas expressões Semântica Regras de como entender e simular a solução que o fluxograma propõe 11
Fluxograma mínimo É aquele que não executa nada, mas tem um início e um fim, representados pelos terminadores com os textos Início efim. Os elementos de um fluxograma são conectados por setas que indicam o caminho a ser seguido a partir do símbolo 12
Fluxograma com comandos sequenciais A partir do símbolo Início permite a execução das instruções dos símbolos subsequentes sem desvio até alcançar o símbolo Fim Ex: Um algoritmo para calcular a força exercida pela coluna de um líquido (de peso γ) sobre a área da válvula (com diâmetro d) de um reservatório (de altura h). O cálculo da força é dado por: F = γ * VolumeColuna = γ * AreaTampa* h = π * γ * d 4 2 * h 13
Fluxograma com comandos sequenciais As variáveis da fórmula são variáveis do fluxograma, que na verdade são espaços da memória onde são armazenados os valores que podem ser lidos ou escritos 14
Fluxograma com comandos sequenciais 15
Fluxograma com comandos de decisão Ex: Algoritmo para calcular as raízes de uma equação do segundo grau tipo Ax 2 + Bx + C, utilizando a fórmula de Bhaskara B ± B 2 4AC x = 2A É necessário verificar se A 0 Se for, exiba a mensagem Não é equação do 2º grau Senão, continuar em frente com os cálculos 16
Fluxograma com comandos de decisão A decisãopossibilita escolher um de dois caminhos a partir de um teste. O resultado da expressão é um valor lógico, considerando doi valores: verdadeiro ou falso (true ou false) 17
Fluxograma com comandos de decisão 18
Fluxograma com comandos de repetição Ex: Algoritmo de Euclides para o cálculo de máximo divisor comum entre 2 números inteiros A expressão y 0 é representado por y<>0 Resto da divisão entre 2 inteiros é representado pela operação mod 19
Fluxograma com comandos de repetição 20
Exercícios 1. Elabore um fluxograma que calcule quantas notas de 50, 10 e 1 são necessárias para se pagar uma conta cujo valor é fornecido 2. Elabore um fluxograma que permita a entrada de um número inteiro e diga se ele é par ou ímpar 3. Elabore um fluxograma que permita a entrada de dez valores e calcule o produto de todos eles 21
Exercícios 4. Qual o resultado exibido pelo fluxograma, se o dado de entrada digitado for sua idade? 22
Referências Harry Farrer, Christiano Gonçalves Becker, Eduardo Chaves Faria, Helton Fábio de Matos, Marcos Augusto dos Santos e Miriam Lourenço Maia, Algoritmos Estruturados",, editora Guanabara Koogan. Marco A. F. Souza et al. Algoritmos e lógica de programação. Thompson, 2005. Harvey M. Deitel. Java Como programar. Prentice Hall, 2006. 23