Você está na página 1de 20

Algoritmos e Estrutura de Dados

CET TPSI 2011/2012

Professor Dr. Salvador Lima | Professor Ricardo Castro


Outubro de 2011

Algoritmos e Estruturas de Dados

Linguagens de Programao
A linguagem que as mquinas
entendem

Professor Dr. Salvado Lima | ProfessorConstantino


RicardoMartins
Castro

Outubro de 2011

Linguagens
e alfabetos de Dados
Algoritmos
e Estruturas
Hello World
Ol Mundo
Bonjour Monde

Halo welt

Professor Dr. Salvado Lima | Professor Ricardo Castro

Outubro de 20113

Algoritmos e Estruturas de Dados

Resoluo de problemas
Introduo programao
imperativa

Professor Dr. Salvado Lima | Professor Ricardo Castro

Outubro de 20114

Algoritmos e Estruturas de Dados

Algoritmo
Origem da palavra
al-Khwarizmi - Matemtico rabe
Algoritmo
Algarismo
Definio
uma sequncia finita de passos ou instrues, ordenadas
de forma lgica, que levam a execuo de uma tarefa ou
soluo de um problema.

Professor Dr. Salvado Lima | Professor Ricardo Castro

Outubro de 20115

Algoritmos e Estruturas de Dados

Exemplo de um Algoritmo
150g de farinha
100g de margarina
5 ovos
2 colheres de fermento
200 gramas de acucar

1.
2.

Misturar os ingredintes
cozinhar o bolo.

Receita

Professor Dr. Salvado Lima | Professor Ricardo Castro

Outubro de 20116

Algoritmos e Estruturas de Dados

Abordagem Top Down


A abordagem top-down procura identificar os pontos essenciais da questo; partese dos pontos mais gerais para os seus componentes mais particulares, em nveis
sucessivos mais concretos, at ao nvel de pormenor desejado.

Receita:

1 - Misturar os ingredintes
1.1 juntar a margarina e a farinha e bater at obter um creme
1.2 Juntar os ovos e mexer
1.3 juntar o fermento
2 Cozinhar o bolo
2.1 Aquecer o forno a 180c
2.2 Cozer o bolo durante 45 min
Refinamento:
Obter creme
Juntar ovos
Ligar e regular o forno
Desligar o forno

Pode um computador fazer um bolo ?

Professor Dr. Salvado Lima | Professor Ricardo Castro

Outubro de 20117

Algoritmos e Estruturas de Dados

Algoritmos
Algoritmo no computacional
Um algoritmo computacional
uma sequencia de passo to
bem definida que at um
computador o capaz de a
executar

Exemplos
Receita
Manual de instrues

Depende da percia do utilizador!

Algoritmo computacional
Manipular informao

Executar instrues

Receber dados
Guardar dados
Devolver informao
Fazer operaes aritmticas
Fazer operaes lgicas
Escolha entre vrias instrues.
Repetir um conjunto de instrues

Professor Dr. Salvado Lima | Professor Ricardo Castro

Outubro de 20118

Algoritmos e Estruturas de Dados


Componentes de um algoritmo
Problema
Conjunto das possveis entradas
Conjunto das sadas
Conjunto de operaes vlidas

Soluo Algortmica
Conjunto ordenado de operaes vlidas
que transformam o conjunto de entradas
na sada desejada

Professor Dr. Salvado Lima | Professor Ricardo Castro

Outubro de 20119

Algoritmos e Estruturas de Dados


Exemplo
Como se constroem algoritmos?
Problema
Trocar uma lmpada fundida
Algoritmo 1
Retirar a lmpada fundida
Colocar a lmpada boa
A formulao de um problema frequentemente mais essencial do que a sua
soluo, a qual pode ser meramente uma questo de habilidade matemtica ou
experimental
Einstein
Professor Dr. Salvado Lima | Professor Ricardo Castro

10
Outubro de 2011

Algoritmos e Estruturas de Dados


Exemplo
Trocar uma lmpada fundida
Entrada
Lmpada fundida
Lmpada nova
Escada

Algoritmo 2

Sada
Lmpada nova a funcionar

Operaes vlidas

Subir a escada
Retirar a lmpada fundida
Colocar a lmpada boa
Descer a escada

Retirar a lmpada
Colocar a lmpada
Subir a escada
Descer a escada

Professor Dr. Salvado Lima | Professor Ricardo Castro

11
Outubro de 2011

Algoritmos e Estruturas de Dados


Exemplo
Trocar uma lmpada fundida
Entrada

Lmpada fundida
Lmpada nova
Escada
Caixote de reciclagem

Algoritmo 3

Sada
Lmpada nova a funcionar
Lmpada fundida na reciclagem

Operaes vlidas

Retirar a lmpada
Colocar a lmpada
Subir a escada
Descer a escada
Deitar a lmpada na reciclagem

Professor Dr. Salvado Lima | Professor Ricardo Castro

Subir a escada
Retirar a lmpada fundida
Colocar a lmpada boa
Descer a escada
Colocar a lmpada fundida na
reciclagem

12
Outubro de 2011

Algoritmos e Estruturas de Dados


Trocar uma lmpada fundida
Entrada
Lmpada nova
Escada
Caixote de reciclagem

Sada
Lmpada nova a funcionar

Operaes vlidas

Retirar a lmpada
Colocar a lmpada
Subir a escada
Descer a escada
Deslocar a escada
Deitar a lmpada na reciclagem

Algoritmo 4

Colocar a escada debaixo da


lmpada
Colocar a lmpada boa no bolso
Subir a escada
Retirar a lmpada fundida
Colocar a lmpada boa
Descer a escada
Colocar a lmpada fundida na
reciclagem
Arrumar a escada

um bom algoritmo ?

Professor Dr. Salvado Lima | Professor Ricardo Castro

13
Outubro de 2011

Algoritmos e Estruturas de Dados


Caractersticas dos bons algoritmos
Interagir com o utilizador
Realiza uma tarefa til ao utilizador
Resolve o problema

Ser finito
Termina sempre e com o resultado previsto

Ser correctamente definido


Instrues claras que o utilizador consegue compreender e seguir

Ser eficaz
Resolve sempre o problema mesmo nas situaes mais problemticas

Ser eficiente
Utiliza o mnimo de recursos possvel
Professor Dr. Salvado Lima | Professor Ricardo Castro

14
Outubro de 2011

Algoritmos e Estruturas de Dados

R: um bom algoritmo ?

Algoritmo 4

Interagir com o utilizador


Ser finito
Ser correctamente definido
Ser eficaz
Ser eficiente

Colocar a escada debaixo da


lmpada
Colocar a lmpada boa no bolso
Subir a escada
Retirar a lmpada fundida
Colocar a lmpada boa
Descer a escada
Colocar a lmpada fundida na
reciclagem
Arrumar a escada

Professor Dr. Salvado Lima | Professor Ricardo Castro

15
Outubro de 2011

Algoritmos e Estruturas de Dados


Algoritmo ou algoritmos ?
1.
2.
3.

Inicio
Subir a escada
Fim

1.
2.
3.
4.
5.
6.
7.
8.
9.

Inicio
Suba um degrau
Suba um degrau
Suba um degrau
Suba um degrau
Suba um degrau
Suba um degrau
....
Fim

Professor Dr. Salvado Lima | Professor Ricardo Castro

16
Outubro de 2011

Algoritmos e Estruturas de Dados


Algoritmo ou algoritmos ?

Instrues vlidas:

Subir um degrau

Verificar se est
no topo

1.
2.
3.
4.

Inicio
Suba um degrau
Se no chegou ao topo v para 2
Fim

1.
2.
3.
4.
5.

Inicio
Repita
Suba um degrau
At chegar ao topo
Fim

1.
2.
3.
4.

Inicio
Enquanto no chegar ao topo
Suba um degrau
Fim

Professor Dr. Salvado Lima | Professor Ricardo Castro

17
Outubro de 2011

Algoritmos e Estruturas de Dados

Concluso
O algoritmo no a soluo de um problema
uma forma de chegar soluo

No se aprende
A copiar algoritmos
Ler algoritmos prontos
A decorar algoritmos

Aprende-se
Construindo algoritmos
Testando algoritmos
Professor Dr. Salvado Lima | Professor Ricardo Castro

18
Outubro de 2011

Algoritmos e Estruturas de Dados


Concluso - Construir Algoritmos

Qual o problema.

Definir quais so os dados que entram

O que pretendemos do algoritmo

Qual a situao inicial


O que necessrio para resolver o problema

Definir quais so os dados que saem

Qual a situao final


Que resultados devem ser apresentados

Professor Dr. Salvado Lima | Professor Ricardo Castro

19
Outubro de 2011

Algoritmos e Estruturas de Dados


Concluso - Construir Algoritmos (cont.)

Definir o Algoritmo
Definir quais as instrues disponveis/necessrias
Organizar as instrues de forma a resolver o problema

transformar as entradas na sada

Testar o algoritmo
Verificar se resolve o problema
Verificar se resolve todos os casos

Optimizar o algoritmos

Verificar se no utiliza recursos suprfluos

Professor Dr. Salvado Lima | Professor Ricardo Castro

20
Outubro de 2011