Você está na página 1de 8

Algoritmos

SSC0500 Introduo Ciencia da Computao I


Prof. Denis F. Wolf
1 semestre 2009

Material elaborado pelo prof. Leandro Carlos Fernandes

Algoritmo
Pessoas tem inteligncia e habilidade racional
fazem perguntas para se esclarecer.

Computador no tem senso prprio


deve receber instrues explcitas (algoritmos)

Um algoritmo correto deve possuir 3 qualidades:


1) Cada passo do algoritmo deve ser uma instruo que possa ser realizada 2) A ordem dos passos deve ser precisamente determinada 3) O algoritmo deve ter fim
2

Estrutura de Algoritmo
Algoritmo para trocar pneu de um carro
Incio Trocar Pneu Fim
E se o estepe estiver vazio!? Isso demanda uma deciso entre dois cursos possveis

Estrutura de Algoritmo
Algoritmo para trocar pneu de um carro
Incio
sim Estepe vazio? no

Estrutura condicional

Chamar o borracheiro

Trocar Pneu

certo que esse processo poderia ser melhor detalhado

Fim
4

Estrutura de Algoritmo
Algoritmo para trocar pneu de um carro
Incio sim Estepe vazio? no
Levantar o carro

Estrutura seqencial

Chamar o borracheiro

Desparafusar a roda
Remover a roda
Colocar o estepe

pode ser detalhado

Parafusar a roda
Abaixar o carro

pode ser detalhado

Fim

Estrutura de Algoritmo
Algoritmo para trocar pneu de um carro
Incio sim Estepe vazio? no
Levantar o carro

Chamar o borracheiro

Desparafusar a roda Remover a roda


Colocar o estepe

Desapertar o parafuso 1 Desapertar o parafuso 2 Desapertar o parafuso 3 Desapertar o parafuso 4

uma repetio inconveniente

Parafusar a roda Abaixar o carro

Apertar o parafuso 1 Apertar o parafuso 2 Apertar o parafuso 3 Apertar o parafuso 4

uma repetio inconveniente

Fim

Incio sim Estepe vazio?

Estrutura de Algoritmo
no
Levantar o carro Existe parafuso p/ desapertar?

Chamar o borracheiro

Algoritmo para trocar pneu de um carro no

sim

desapertar parafuso

Remover a roda Colocar o estepe Existe parafuso para apertar?

no

Estrutura de repetio

sim

apertar parafuso

Abaixar o carro

Fim

Estrutura de Algoritmos
Em uma estrutura seqencial, os passos so tomados em uma seqncia prdefinida.
Estrutura Seqencial

Estrutura de Algoritmos
Uma estrutura condicional permite a escolha do grupo de aes a ser executado quando determinada condio ou no satisfeita.
sim ? no

Estrutura Condicional

Estrutura de Algoritmos
Uma estrutura de repetio permite que uma seqncia de comandos seja executada repetidamente at que uma determinada condio de interrupo seja satisfeita.
?

no sim

Estrutura de Repetio

10

Desenvolvimento do Algoritmo
Comeamos com uma afirmao genrica da soluo do problema e prosseguimos at o algoritmo final, aumentando sistematicamente o nvel de detalhamento.

Desenvolvimento do Algoritmo
Como saber se j temos um nvel suficiente de detalhes no algoritmo? Isso depende do agente que ir executar o algoritmo Os computadores tm um conjunto muito limitado de instrues e o algoritmo deve ser expresso nos termos dessas instrues.

Metodologia para o desenvolvimento de algoritmos


Passo 1: ler cuidadosamente a especificao do problema. Passo 2: levantar e analisar todas as sadas exigidas na especificao do problema. Passo 3: levantar e analisar todas as entradas citadas na especificao do problema.

Metodologia para o desenvolvimento de algoritmos


Passo 4: verificar se necessrio gerar valores internamente ao algoritmo e levantar as variveis necessrias e os valores iniciais de cada uma (comentar) Passo 5: levantar e analisar todas as operaes e transformaes necessrias para, dadas as entradas e valores gerados internamente, produzir as sadas especificadas (comentar)

Metodologia para o desenvolvimento de algoritmos


Passo 6: testar cada passo do algoritmo, verificando se as transformaes intermedirias executadas esto conduzindo aos objetivos desejados. Utilizar, sempre que possvel, valores de teste que permitam prever os resultados. Passo 7: fazer uma reavaliao geral, elaborando o algoritmo atravs da integrao das partes.

Desenvolvimento de Algoritmos

EXEMPLO