Anda di halaman 1dari 30

AED

Sumrio:
Algoritmia.
Noo de Algoritmo.
Linguagem algortmica e
fluxogramas

Conceitos Introdutrios
A Algoritmia e a escrita de
programas/resoluo de problemas
Definio e Estrutura Global de um
Algoritmo
Etapas-tipo
Refinamentos sucessivos
Entrada-Processamento-Sada

Algoritmia e Programao
Resolver um problema usando o computador

4 Etapas
Problema

Especificao

Identificar os dados,
resultados e relaes

Problema

Algoritmo

Programa

Passos a seguir para


obter a soluo

????

Computador
(Ferramentas)

Problema

Especificao

EXCEL

BASIC

SCA-MAPLE

Outra(s)

Decomposio
Problema

Parte 1

Parte 2

Parte 3

Sol 1

Sol 2

Sol 3

Soluo

Decomposio
Identificao de componentes
independentes, partes do problema, de
soluo conhecida ou mais tratvel
Se assim for, posso solucionar as
componentes, e pela resoluo conjunta
solucionar o problema

Conceitos...
Algoritmo, algoritmia
Qualquer conjunto de smbolos e processos
de clculo matemtico. (Enc. LusoBrasileira)
(...) operao ou processo de clculo

Conceitos...
Conjunto de operaes matemticas
simples que, no seu todo, pela ordem
correcta, constituem uma operao
matemtica complexa
Conjunto de passos que necessrio
executar para chegar soluo de um
problema

Conceitos...

Processo Matemtico
Algoritmo

Processo Numrico
Processo Mecanizvel

Caractersticas dos algoritmos


(Algoritmia bsica 1, Ricardo Machado, 2001/02)

Entradas

um algoritmo tem zero ou mais entradas (habitualmente acessveis do exterior


atravs de instrues de leitura)

a quantidade de entradas tem que ser especificada previamente

exemplo: o algoritmo MDC tem duas entradas m e n, ambas do conjunto dos


nmeros inteiros positivos

Sadas

um algoritmo tem uma ou mais sadas (habitualmente acessveis do exterior


atravs de instrues de escrita)

no caso de algoritmos cujo objectivo efectuar uma dada aco (tocar uma
campainha, abrir uma porta, ...) consideram-se como sadas os conjuntos de
dados que desencadeiam tais aces

exemplo: no algoritmo MDC a sada corresponde ao valor mdc

Caractersticas dos algoritmos

Finitude

a execuo de um algoritmo deve terminar sempre num nmero finito de


passos

exemplo: o algoritmo MDC termina obrigatoriamente no passo 5, uma vez


que o valor de mdc decrescente

Definibilidade

todos os passos de um algoritmo devem possuir um significado preciso e


no ambguo

num algoritmo devem ser rejeitados formulaes do tipo

se n for grande (especificao qualitativa)

Para o maior inteiro n tal que xn+yn=zn, com x,y,z inteiros ... (soluo
matemtica desconhecida)

Caractersticas dos algoritmos

Eficcia

os passos de um algoritmo devem conduzir soluo do problema


proposto

no entanto, por vezes, no basta que o algoritmo seja eficaz, pois


levantam-se questes de eficincia

a eficincia depende do mtodo de resoluo adoptado

na ausncia de um conhecimento aprofundado sobre mtodos


resolventes ptimos (algoritmos eficientes) dever-se- recorrer s
definies matemticas se existirem

Caractersticas dos algoritmos


Complexidade de algoritmos

importante reconhecer a dificuldade inerente resoluo


satisfatria de problemas algortmicos

exemplos como o da receita de mousse de chocolate fazem com


que o problema algortmico parea um problema simples, mas

os problemas algoritmos na prtica podem ser muito complexos e


exigir anos de esforo para serem resolvidos com sucesso, e

no existem solues satisfatrias para alguns problemas, e s


vezes, no existe mesmo nenhuma soluo para outros

Caractersticas dos algoritmos

exemplo: O problema da distribuio de jornais


20.000 jornais tero de ser distribudos por 1.000 localidades em 100
cidades, utilizando 50 camies.
input: a distncia entre as cidades e entre localizaes dentro da mesma
cidade; o requisito do nmero de jornais para cada localidade, a
posio corrente de cada camio; a capacidade de cada camio;
detalhes dos condutores disponveis
output: uma lista que associa condutores a camies e contm o itinerrio
detalhado para cada camio, de modo que o total nmero de Km
percorridos seja minimizado

Formalizao da noo de
algoritmo

um algoritmo um processo

discreto (sequncia de aces indivisveis)


determinstico (para cada passo da sequncia e para cada conjunto
vlido de entradas corresponde uma e s uma aco)
fiinito (ou seja, o algoritmo deve terminar para quaisquer que sejam
as entradas pertencentes aos domnios pr-definidos)

um algoritmo estruturalmente constitudo por passos,


ordenados segundo regras bsicas do fluxo de execuo
dos algoritmos, sendo cada passo descrito custa de uma
ou mais instrues bsicas para o nvel de abstrao
adoptado

Exemplos

Receitas culinrias
Esquemas de montagem de aparelhos
Frmulas resolventes
Mtodos numricos

Problema
Pintura...
1 lata cobre 2 m2 (al)

Dimetro = 3?
Altura = 3?

Algoritmo:
area = (raio2) + 2 raio altura
latas = Area / al
comprar = int(latas) + 1

35.34
17.67
18

Como explicitar os algoritmos ?


Fluxograma (diagrama de sequncia)

Linguagem algortmica
(Portugus estruturado)

Fluxograma
Incio

Incio/Fim

altura,
diametro
area = ...

Input/Output
Instrues
(atribuio)

latas = ...
comprar = ...
comprar
Fim

Ling. algortmica

Incio/Fim
Input/Output
Instrues
(atribuio)

incio exemplo;
altura ler();
diametro ler();
area ...
latas ...
comprar ...
escrever(comprar);
fim exemplo;

Equivalncia...
incio exemplo;
altura ler();
diametro ler();
area ...
latas ...
comprar ...
escrever(comprar);
fim exemplo;

Incio
altura,
diametro
area = ...
latas = ...
comprar = ...
comprar
Fim

Exerccios

Elaborar um algoritmo para somar 2 numeros.


Explicit-lo na forma de fluxograma e em
linguagem algoritmica.

Elaborar um algoritmo para converter uma


temperatura em graus Celsius para Fahrenheit.
Escrever o fluxograma e tambm em linguagem
algoritmica.

Elaborar um algoritmo para converter um valor


em horas e minutos, num formato apenas em
minutos.
Apresent-lo em linguagem algoritmica.

Elaborar um algoritmo para determinar as


razes de uma equao do 2 grau.
Apresent-lo em linguagem algoritmica.

Problema
Determine as razes do seguinte Polinmio:

P2 ( x) ax bx c
2

Seja P2=ax^2+bx+c. Dados os valores de P2,


a,b,c, determine o valor de x

Ling. algortmica
incio exemplo;
a ler(); b ler(); c ler();
bd b b - 4 a c;
x1 (-b bd ) /(2 a);
x2 (-b bd ) /(2 a);
escrever("Razes :", x1, x2);
fim exemplo;

Anda mungkin juga menyukai