Prévia do material em texto
Programação Aplicada à Engenharia
Universidade Federal Rural do Semi-Árido
Departamento de Ciências Ambientais
Silvio Fernandes
2009.1
Aula 03: Algoritmos
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 preparo, como a sequencia de inclusão dos
ingredientes
2
Algoritmos
• Ação é um acontecimento que, 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 sequencia de
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çãoexecuçã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– 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 C3. 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 – 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
Fluxogramas
• Para um algoritmo ser útil, deve ser entendido
da mesma forma por todas as pessoas que o
utilizarem
• Existem diversas maneiras de formalizar a • 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
Fluxogramas
10
Fluxogramas
• 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 • Expressões admissíveis a serem escritas no interior dos
símbolos
• Sub-rotinas predefinidas que podem ser utilizadas nas
expressões
– Semântica
• Regras de como entender e simular a solução que o
fluxograma propõe
11
Fluxogramas
• 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 e Fim. Os elementos de um os textos Início e Fim. Os elementos de um
fluxograma são conectados por setas que indicam
o caminho a ser seguido a partir do símbolo
12
Fluxogramas
• 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 Fimaté 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:
13
4
***
***
2 hdhAreaTampanaVolumeColuF γpiγγ ===
Fluxogramas
• 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 memória onde são armazenados os valores que
podem ser lidos ou escritos
14
Fluxogramas
• Fluxograma com comandos sequenciais
15
Fluxogramas
• Fluxograma com comandos de decisão
– Ex: Algoritmo para calcular as raízes de uma
equação do segundo grau tipo Ax2 + Bx + C,
utilizando a fórmula de Bhaskara utilizando a fórmula de Bhaskara
– É 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
A
ACBB
x
2
42 −±−
=
Fluxogramas
• Fluxograma com comandos de decisão
– A decisão possibilita escolher um de dois
caminhos a partir de um teste. O resultado da
expressão é um valor lógico, considerando doi expressão é um valor lógico, considerando doi
valores: verdadeiro ou falso (true ou false)
17
Fluxogramas
• Fluxograma com comandos de decisão
18
Fluxogramas
• 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– A expressão y≠ 0 é representado por y<>0
– Resto da divisão entre 2 inteiros é representado
pela operação mod
19
Fluxogramas
• 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 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", , 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