Buscar

03 - algoritmos

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

Continue navegando