Você está na página 1de 23

Universidade Federal Rural do Semi-rido

Departamento de Cincias Ambientais

Programao Aplicada Engenharia


Aula 03: Algoritmos

Silvio Fernandes
2009.1
1

Algoritmos
Em uma receita de bolo, descrevem-se quais
sero os ingredientes e as suas quantidades.
Depois, quais so as regras para o seu
preparo, como a sequencia de incluso dos
ingredientes

Algoritmos
Ao um acontecimento que, a partir de um
estado inicial, aps um perodo de tempo
finito, produz um estado final previsvel 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 aes distintas um
mesmo padro de comportamento, a
subordinao a uma mesma norma de
execuo
Algoritmo: a descrio de um conjunto de
comando que, obedecidos, resultam numa
sucesso finita de aes

Algoritmos
Ex: Torres de Hanoi. O objetivo transferir os
3 anis da haste A para B, usando C se
necessrio. As regras so:
Deve-se mover um nico anel por vez
Um anel de dimetro maior nunca pode repousar
sobre um menor

Algoritmos
Algoritmo para resolver Torres de Hanoi
Incio
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

Propriedades de um Algoritmo
Valores de entrada
Todo algoritmo deve possuir zero, um ou mais entradas

Valores de sada
Uma ou mais sadas simbolizam os resultados

Finitude
Todo algoritmo deve ser finito, assim ele tem um incio e um conjunto
de passos que levam ao trmino

Passos elementares
Um algoritmo computacional deve ser explicitado por meio de
operaes elementares, sem que possam haver diferenas de
interpretao

Correo
Deve permitir que, com sua execuo, se chegue s sadas com
resultados coerentes com as entradas

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
representao de um algoritmo
Fluxograma: representao grfica, por smbolos
especiais, da definio, anlise ou mtodo de
soluo de um problema

Fluxogramas

10

Fluxogramas
Todo fluxograma deve possuir uma sintaxe e
uma semntica bem-definidas
Sintaxe
Smbolos grficos especficos
Expresses admissveis a serem escritas no interior dos
smbolos
Sub-rotinas predefinidas que podem ser utilizadas nas
expresses

Semntica
Regras de como entender e simular a soluo que o
fluxograma prope
11

Fluxogramas
Fluxograma mnimo
aquele que no executa nada, mas tem um incio
e um fim, representados pelos terminadores com
os textos Incio e Fim. Os elementos de um
fluxograma so conectados por setas que indicam
o caminho a ser seguido a partir do smbolo

12

Fluxogramas
Fluxograma com comandos sequenciais
A partir do smbolo Incio permite a execuo das
instrues dos smbolos subsequentes sem desvio
at alcanar o smbolo Fim
Ex: Um algoritmo para calcular a fora exercida
pela coluna de um lquido (de peso ) sobre a rea
da vlvula (com dimetro d) de um reservatrio
(de altura h). O clculo da fora dado por:
F = *VolumeColuna = * AreaTampa * h =

* * d 2 * h
4
13

Fluxogramas
Fluxograma com comandos sequenciais
As variveis da frmula so variveis do
fluxograma, que na verdade so espaos da
memria onde so armazenados os valores que
podem ser lidos ou escritos

14

Fluxogramas
Fluxograma com comandos sequenciais

15

Fluxogramas
Fluxograma com comandos de deciso
Ex: Algoritmo para calcular as razes de uma
equao do segundo grau tipo Ax2 + Bx + C,
utilizando a frmula de Bhaskara

B B 2 4 AC
x=
2A
necessrio verificar se A 0
Se for, exiba a mensagem No equao do 2 grau
Seno, continuar em frente com os clculos
16

Fluxogramas
Fluxograma com comandos de deciso
A deciso possibilita escolher um de dois
caminhos a partir de um teste. O resultado da
expresso um valor lgico, considerando doi
valores: verdadeiro ou falso (true ou false)

17

Fluxogramas
Fluxograma com comandos de deciso

18

Fluxogramas
Fluxograma com comandos de repetio
Ex: Algoritmo de Euclides para o clculo de
mximo divisor comum entre 2 nmeros inteiros
A expresso y 0 representado por y<>0
Resto da diviso entre 2 inteiros representado
pela operao mod

19

Fluxogramas
Fluxograma com comandos de repetio

20

Exerccios
1. Elabore um fluxograma que calcule quantas
notas de 50, 10 e 1 so necessrias para se
pagar uma conta cujo valor fornecido
2. Elabore um fluxograma que permita a
entrada de um nmero 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

Exerccios
4. Qual o resultado exibido pelo fluxograma, se
o dado de entrada digitado for sua idade?

22

Referncias
Harry Farrer, Christiano Gonalves Becker,
Eduardo Chaves Faria, Helton Fbio de Matos,
Marcos Augusto dos Santos e Miriam
Loureno Maia, Algoritmos Estruturados", ,
editora Guanabara Koogan.
Marco A. F. Souza et al. Algoritmos e lgica de
programao. Thompson, 2005.
Harvey M. Deitel. Java Como programar.
Prentice Hall, 2006.
23

Você também pode gostar