Você está na página 1de 23

Algoritmos

Cludio C. Rodrigues

O conceito de Algoritmos A representao de Algoritmos

Primitivas Pseudocdigo

O delineamento de Algoritmos
A teoria da Resoluo de Problemas A busca de um ponto de partida

O Conceito de Algoritmo

Um algoritmo um conjunto ordenado de passos executveis no ambguos, definindo um processo que tem um trmino. Conceitos inter-relacionados: Algoritmo:

abstrato e distinto de sua representao uma das possveis representaes do algoritmo A atividade de executar um algoritmo.
2

Programa:

Processo:

O Conceito de Algoritmo

Considere que um algoritmo deve consistir de passos executveis. Para tanto, considerar as instrues:

Passo 1. Construir uma lista de todos os inteiros positivos Passo 2. Organizar esta lista em ordem decrescente Passo 3. Extrair o primeiro inteiro da lista resultante.

Esta sequncia caracteriza um algoritmo?

A representao de Algoritmos

Aqui, trataremos dos assuntos relativos representao de um algoritmo. Primitivas:

Conjunto bem definido de elementos funcionais bsicos com os quais podem ser construidas representaes de algoritmos. Um conjunto de primitivas, juntamente com um de regras, estabelecendo de que maneira as primitivas podem ser combinadas, constitu uma linguagem de programao.

Representao de Algoritmos

Cada primitiva consiste de duas partes:

Sintaxe:

representao simblica da primitiva significado da primitiva

Semntica:

Representao de Algoritmos

Narrativa

Representao dos algoritmos expressa em linguagem natural.

Tem a inconvenincia da m interpretao, originando ambigidades e imprecises.

Representao de Algoritmos

Exemplo:

Trocar o pneu de um carro


1. 2. 3. 4. 5. 6.

Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o Pneu reserva e as porcas Abaixar o carro Dar o aperto final nas porcas

Representao de Algoritmos

Exemplo: Tomar banho


Entrar no banheiro Tirar a roupa Abrir a torneira Entrar na gua Ensaboar-se Sair da gua Fechar a torneira Enxugar-se Vestir-se

GBC014 Programao Procedimental

Representao de Algoritmos

Fluxograma

Representao grfica pelo uso de formas geomtricas associadas a aes.

Representao de Algoritmos

Fluxograma Convencional

Clculo da Mdia Final

Tal propriedade facilita o entendimento das idias contidas nos algoritmos e justifica sua popularidade. Esta forma aproximadamente intermediria descrio narrativa e ao pseudocdigo (subitem seguinte).

10

A representao de Algoritmos

Pseudocdigo

um sistema notacional no qual as idias podem ser informalmente expressas durante o processo de desenvolvimento do algoritmo. A ttica ser a de desenvolver uma notao consistente e concisa para representar as estruturas semnticas mais frequentes, as quais, por sua vez, se tornaro as primitivas de nossa representao.
11

Representao de Algoritmos

Exemplo: dada duas possveis aes, a seleo de


uma delas, conforme o valor assumido por uma certa condio, uma estrutura algoritmica muito frequente. (veja exemplo)

Se o produto interno bruto tiver aumentado, compre aes ordinrias: caso contrrio, venda as aes ordinrias. Compre aes ordinrias se o produto interno bruto tiver aumentado: caso contrrio venda-as

Reescrita: If (condio)

then (atividade1) else (atividade2)


12

Representao de Algoritmos

Exemplo: Clculo da mdia do exemplo anterior.


Algoritmo Mdia_do_aluno Real: n1,n2,media Incio
Escreva(Digite as duas notas:) Leia(n1,n2) media = (n1+n2)/2 Se (mdia >= 5) ento Escreva (APROVADO) Seno Escreva (REPROVADO) Fim_se

Fim

13

Representao de Algoritmos

Algoritmo 2: Pegar um nibus. 1: ir at a parada 2: enquanto nibus no chega faa 3: esperar nibus 4: fim-enquanto 5: subir no nibus 6: pegar passagem 7: se no h passagem ento 8: pegar dinheiro 9: fim-se 10: pagar o cobrador 11: troco = dinheiro - passagem 12: enquanto banco no est vazio faa 13: ir para o prximo 14: fim-enquanto 15: sentar

14

O delineamento de Algoritmos

O desenvolvimento de um programa consiste de duas atividades delinear o algoritmo subjacente, e representar o algoritmo na forma de um programa.
Delinear um algoritmo descobrir um mtodo de solucionar um problema. Assim, entender como os algoritmos so delineados entender o prprio processo de resoluo de problemas.
15

Resoluo de Problemas
Como desenvolver uma soluo?

Problema

Como expressar a soluo?

Algoritmos

Atravs de uma linguagem

Concretizao atravs de um Programa


16

O delineamento de Algoritmos

A teoria da Resoluo dos problemas

Resolver problemas uma arte

(da a necessidade de desenvolvermos esta habilidade)

Modelo de G. Polya (matemtico)


Fase 1 Entender o problema Fase 2 Construir um plano para solucionar o problema Fase 3 Colocar o plano em funcionamento. Fase 4 Avaliar a soluo quanto preciso e quanto ao seu potencial como ferramenta para solucionar outros problemas.

17

O delineamento de Algoritmos

Traduzindo o modelo de Polya para o contexto do desenvolvimento de programas, estas fases se tornam:
Fase 1 Compreender o problema Fase 2 Adquirir uma idia da forma como um procedimento algortmico poderia resolver o problema Fase 3 Formular o algoritmo e represent-lo na forma de um programa. Fase 4 Avaliar o programa quanto preciso e quanto ao seu potencial como ferramenta para solucionar outros problemas.

18

Problema Ilustrativo:

O indivduo A encarregado de determinar a idade dos trs filhos do indivduo B. B conta a A que o produto das idades das crianas 36. Depois de levar em conta esta informao. A responde que precisa de mais informao, e ento B conta a A a soma das idades das crianas. Novamente, A diz que necessita de mais informao, e assim B conta que a criana mais velha toca piano. Depois de ouvir isto, A responde para B a idade das trs crianas.
Qual a idade de cada uma das trs crianas?
19

Resolvendo as Identidades

Triplas cujo Produto 36 (1,1,36) (1,6,6) (1,2,18) (2,2,9) (1,3,12) (2,3,6) (1,4,9) (3,3,4) Somas das Triplas 1+1+36 =38 1+6+6=13 1+2+18 =21 2+2+9=13 1+3+12=16 2+3+6=11 1+4+9=14 3+3+4=10
20

A busca de um ponto de partida

H numerosos mtodos de resoluo de problemas, cada qual com possibilidades de sucesso em determinadas situaes. Qualquer que seja a tcnica adotada, conduta esta que pode ser resumida no seguinte:

Busque um ponto de partida, ou d um pontap inicial.

21

Problema Ilustrativo

Antes de A, B, C e D participarem de uma corrida, eles fizeram as seguintes previses:


A previu que B ganharia B previu que D seria o ltimo C previu que A seria o terceiro D previu que a previso de A estaria correta

Apenas uma destas previses deu certo, e esta foi feita pelo vencedor da corrida. Em que ordem A, B, C e D terminaram a corrida?

22

Bibliografia

Cincia da Computao: uma viso abrangente J. Glenn Brokshear Bookman, 5a. edio

23

Você também pode gostar