You are on page 1of 32

Aula Informatica

Cursos: LEA, LEI, GEI


Semana 7 -24.03.2014
1
Algoritmos
Definio: uma seqncia de passos (aces) que devem ser
executados para se alcanar um determinado objectivo.
Um algoritmo pode ser comparado como uma receita culinria. Se
obedecermos passo a passo as instrues da receita, chegamos
sempre ao mesmo resultado.
2
Os algoritmos que devem expressar de forma objetiva e clara
(legibilidade) a forma de resolvermos o problema.
Do algoritmo desenvolvido fica fcil construir o programa, basta
conhecer a linguagem de programao que se pretende adotar.
Um mesmo algoritmo, pode ser transportado para qualquer
linguagem de programao, dando uma flexibilidade para a efetiva
implementao do programa.
3
Existem trs estruturas bsicas para a construo de algoritmos:
sequenciao, seleo e repetio.
A combinao das 3estruturas permite a construo de algoritmos para
a resoluo de problemas extremamente complexos.
A programao estruturada se baseia nestas trs estruturas bsicas.
4
Para a situao onde precisamos elaborar um algoritmo para trocar uma
lmpada,
Incio
- pegue uma escada;
- coloque-a embaixo da lmpada;
- busque uma lmpada nova;
- suba na escada com a lmpada nova;
- retire a lmpada velha;
- coloque a lmpada nova;
- desa da escada.
Fim
Trata-se de um algoritmo bastante simples, que utiliza apenas a estrutura de
sequenciao, ou seja, nenhuma seleco ou repetio de procedimentos aparece
no algoritmo.
Uma estrutura de seqncia, caracteriza-se por possuir uma nica seqncia de
aes, que executada apenas uma vez.
5
No entanto, antes de trocarmos a lmpada devemos nos certificar de que ela
realmente esteja queimada, para ento troc-la.
Assim, podemos melhorar o nosso algoritmo.
Incio
- ligue o interruptor;
- se a lmpada no acender, ento:
- pegue uma escada;
- coloque-a embaixo da lmpada;
- busque uma lmpada nova;
- suba na escada com a lmpada nova;
- retire a lmpada velha;
- coloque a lmpada nova;
- desa da escada.
Fim
6
O nosso algoritmo, alm da estrutura de seqncia, passa a
utilizar uma estrutura de seleo.
Na estrutura de seleo, uma condio deve ser analisada, a
partir do resultado da anlise, um caminho do algoritmo
ser executado.
Em outras palavras, uma estrutura de seleo seleciona
aes a serem executadas a partir de uma condio (que
pode ser simples ou composta).
7
Embora nosso algoritmo tenha melhorado, ainda podemos deix-lo mais
completo.
Quando verificamos que a lmpada est queimada, subimos para troc-la,
mas no consideramos a hiptese da lmpada nova de tambm esta, estar
queimada, e se isso ocorrer, precisaremos executar algumas aes
novamente, at que possamos efetivamente resolver nosso problema.
8
Incio
- ligue o interruptor;
- se a lmpada no acender, ento:
- pegue uma escada;
- coloque-a embaixo da lmpada;
- enquanto a lmpada no acender, faa:
- busque uma lmpada nova;
- suba na escada com a lmpada nova;
- retire a lmpada velha;
- coloque a lmpada nova;
- desa da escada.
Fim
Neste algoritmo somente iremos parar de trocar a lmpada quando colocarmos uma
lmpada que acenda.
Portanto, um conjunto de aes ser executado repetidamente enquanto a condio de
repetio for verdadeira. Assim, inserimos uma estrutura de repetio no nosso
algoritmo, que passa a trabalhar com as trs estruturas bsicas de construo de
algoritmos.
9
importante salientar que existem vrias formas de
se construir um algoritmo, pois as pessoas pensam de
formas diferentes, no entanto, devemos sempre
buscar a forma mais otimizada possvel (dentro dos
limites impostos pela situao).
10
Formas de Representao de Algoritmo.
Existem vrias ferramentas que podem ser utilizadas para a
representao de algoritmos, entre elas:
linguagem natural,
pseudocdigo,
diagrama de Nassi-Shneiderman (ou Chapin),
fluxograma etc..
Estas ferramentas procuram padronizar formas de representao,
facilitando a posterior transformao do algoritmo para um conjunto de
cdigos
.
11
Linguagem Natural
Esta a forma mais espontnea de representao de algoritmos, pois
descrevemos os passos do algoritmo utilizando a linguagem quotidiana,
escrevendo o algoritmo como um texto simples.
Por exemplo, queremos resolver o seguinte problema:
Calcular a mdia de todos os alunos de uma disciplina X, a partir da leitura
das notas da 1a e 2a prova, passando por um clculo de mdia aritmtica.
Aps a mdia calculada, devemos anunciar se aluno foi aprovado ou
reprovado por nota. Somente esto aprovados alunos com mdia maior ou
igual a 10,0.
12
Representao do algoritmo em linguagem natural:
Para todos os alunos da disciplina X, faa:
ler as notas da 1a e 2a prova,
somar as notas e dividir por dois, chegando assim, ao resultado da mdia do
aluno.
Se a mdia do aluno for maior ou igual a 10,0, ento o aluno est aprovado,
seno o aluno est reprovado.
Fazer o mesmo para o prximo aluno.
13
O problema da representao de algoritmos com linguagem natural
que
quanto maior a complexidade do problema
maior a dificuldade de entendermos o texto que procura
descrever os passos do algoritmo.
14
Pseudocdigo
O pseudocdigo vem sendo amplamente utilizado por projectistas de
software e programadores,
pois obriga o uso de estruturas que facilitam o entendimento do algoritmo,
e tambm facilitam a transformao do mesmo em cdigos reais.
O pseudocdigo tambm recebe outros nomes, como: portugus
estruturado, PDL (Program Design Language), pascalide etc..
15
Incio
real: nota1, nota2, media;
Enquanto no for fim da lista de alunos, faa
Incio
Leia nota1;
Leia nota2;
mdia = (nota1 + nota2) / 2;
Se mdia >= 10,0 ento
Incio
Escreva Aluno aprovado;
Fim
Seno
Incio
Escreva Aluno reprovado;
Fim
Fim
Fim
16
No pseudocdigo, de forma a estruturar e organizar melhor os passos
do algoritmo, somos obrigados a utilizar as estruturas bsicas de
controle
seqncia,
seleo e,
Repetio
17 17
Diagrama de Nassi-Shneiderman
Tambm conhecido como diagrama Chapin. Oferece grande clareza
para representao das estruturas (sequenciao, seleo e, repetio)
utilizando-se de uma simbologia prpria.
Aidia bsica :
representar as aces de um algoritmo dentro de
um nico retngulo,
subdividindo-o em retngulos menores,
Representando diferentes blocos de sequncia de
aces .
18
19
Exemplo
20
Embora os diagramas N-S ofeream uma
representao muito clara do algoritmo,
medida que os algoritmos vo se
tornando mais complexos, fica difcil
realizar os desenhos necessrios numa
nica pgina, prejudicando a sua
visualizao.
21
Fluxograma
O fluxograma foi utilizado por muito tempo para a
representao de algoritmos.
O fluxograma utiliza smbolos especficos para a
representao de algoritmos.
Existe uma certa variao na simbologia empregada.
22
23
24
Estruturas de controle
Servem para direccionar o fluxo de execucao do Algoritmo
Permite representar a complexidade dos cenrios do dia a dia.
25
Estruturas de controle
Oferece grande clareza para representao da:
sequenciao,
seleo e,
Repetio
26
Estruturas de controle
Sequenciao:
As aes so executadas,
uma por vez, de forma
encadeada, na ordem
definida no programa. Ex:
27
Estruturas de controle
Seleo:
a partir da verificao de
uma condio, o
programa realiza ou no
uma ao e volta
sequncia do programa.
Ex:
28
Estruturas de controle
Seleo Exemplo:
29
Estruturas de controle
Reptio Exemplo:
Devem ser sempre
n inteiros
30
Exerccios de Raciocnio para algoritmos usando:
linguagem natural
pseudocodigos
diagrmas de nassi
Fluxograma
1) Um homem precisa atravessar um rio com um barco que possui
capacidade de transportar apenas ele e mais uma de suas trs
cargas, que so: um cachorro, uma galinha e um saco de milho.
O que o homem deve fazer para conseguir atravessar o rio sem
perder as suas cargas ?
31
2) Uma Torre de Hani formada por trs discos sobrepostos transpassados por
uma haste.
Tendo mais duas hastes e podendo mover um disco por vez, mas nunca
deixando um disco maior sobre um disco menor, como podemos passar os
discos para uma outra haste ?
3) Trs jesutas e trs canibais precisam atravessar um rio, no entanto dispem
apenas de um barco com capacidade para duas pessoas.
Por medida de segurana no se permite que em alguma das margens do rio a
quantidade de jesutas seja inferior quantidade de canibais.
Qual a seqncia de viagens necessrias para a travessia do rio com segurana
para os jesutas ?
32

You might also like