curso de algoritmo aula 2

3

Click here to load reader

Upload: felipe-santos

Post on 09-Jul-2015

387 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Curso De Algoritmo   Aula 2

Curso de Algoritmo - Aula II Por: Jorge Luiz E. de Souza ( 05/06/2001 )

Introdução

A aula de hoje é sobre estruturação do pensamento. Em primeiro lugar, estruturação do pensamento nada mais é do que saber definir qual a ordem de precedência entre os comandos a serem executados. Noção muito importante na programação. Isto será útil quando estivermos falando em ESCOPO de variáveis e do próprio código. Boa aula!

Estruturação do pensamento

Até agora, não pensamos em DETALHES, como por exemplo:

● Condições: para fazer algo; isto é, antes de fazer uma coisa, tenho que verificar se outra já foi feita;

● Desvio: se uma coisa já foi feita, não faça isto, faça aquilo.

No pensamento estruturado existem FERRAMENTAS que auxiliam a escrita lógica para tais condições, são elas: SE [CONDIÇÃO] ENTÃO [COMANDO|LISTA DE COMANDOS]

Nota: mais a frente, entraremos em detalhes sobre SINTAXE (forma correta de se escrever comandos).

Exemplo 1:

Problema ENTRAR EM CASA, refinado.

A instrução: Abrir o portão

Poderíamos REFINAR para:

Pegar chave do portão no bolsoSE chave não está no bolso ENTAO Procurar na bolsa SE encontrou chave na bolsa então ENTAO Abrir o portão SENÃO Desesperar-se você está parafora por tempo indeterminado SENÃO Abir o portão

Exemplo 2: REFINAMENTO da instrução Abrir Portão do problema ENTRAR EM CASA

Nota: Para ler o algoritmo, entenda que: cada SE tem duas condições a serem TESTADAS, a primeira é o ENTÃO. Caso o ENTÃO SEJA SATISFEITO, isto é, se você optar pela condição do ENTÂO, deve ignorar o SENÃO correspondente do SE do mesmo nível.

Por exemplo: no caso da instrução "SE chave não está no bolso", você deve optar por "Procurar na bolsa" (ENTÃO) a condição SENÃO correspondente seria "Abrir o portão".

"Ai meu Deus... danou-se..."

Nada disso! Entendendo:

A condição estabelecida é: "chave não está no bolso". O ENTÃO correspondente são instruções a serem seguidas caso ela (a condição) seja VERDADEIRA (chave não está no bolso). E O SENÃO correspondente, são instruções a serem seguidas quando ela (a condição) for FALSA, isto é, chave está no bolso. Entendeu?

Creio que com isto, já dá para você ler o resto do Algoritmo.

Com este exemplo, temos dois conceitos novos: DESVIO CONDICIONAL e REFINAMENTO DE CÓDIGO.

http://olinux.uol.com.br/artigos/331/print_preview.html

Page 2: Curso De Algoritmo   Aula 2

Refinamento de código

No pensamento estruturado, existe a preocupação de chegar a um resultado a partir de GENERALIZAÇÃO/ESPECIALIZAÇÃO. Isto é, a partir de uma visão MACRO de um problema, chegar aos detalhes e, enfim, resolver o problema.

Isto é bem mais simples e eficaz do que tentar visualizar todos os detalhes de um problema, a medida que vamos escrevendo o código para resolvê-lo.

Um exemplo:

No refinamento do Exemplo 2, a instrução "Desesperar-se", se pensarmos bem, poderia resultar em "Ligar para a esposa".

O algorítmo ficaria assim:Pegar chave do portão no bolsoSE chave não está no bolso ENTAO Procurar na bolsa SE encontrou chave na bolsa então ENTAO Abrir o portão SENÃO Ligar para a esposa SENÃO Abir o portão

Ou então:

SE você é casado ENTÃO Ligar para Esposa SENÃO Desesperar-se

O algorítmo ficaria assim:

Pegar chave do portão no bolsoSE chave não está no bolso ENTAO Procurar na bolsa SE encontrou chave na bolsa então ENTAO Abrir o portão SENÃO SE você é casado ENTÃO Ligar para Esposa SENÃO Desesperar-se SENÃO Abir o portão

Ou ainda:

SE você é casado ENTÃO Ligar para Esposa SENÃO SE você mora com alguém ENTÃO Ligar para esta pessoa SENÃO Desesperar-se

E por aí vai! Agora, escreva você como ficaria o código.

O que eu quero mostrar aqui é que o refinamento serve para que, a partir de passos "macro", possamos visualizar a solução parcial de um problema em determinadas condições. Após termos resolvido o problema em condições ideais, pensaremos em verificar as EXCEÇÕES.

ENTÃO, o pensamento estruturado é uma ótima ferramenta para determinar condições ideais para a solução de problemas!

Desvios condicionais

Os desvios condicionais são utilizados para que, ao nos depararmos com determinada condição, tenhamos como contorná-las, de uma forma ou de outra, podendo haver desvios para os desvios e assim por diante.

Tenha em mente que tudo tem um limite. E se um desvio não tem limite, está claro que este não é o

Page 3: Curso De Algoritmo   Aula 2

caminho para resolver o problema.

Agora, com os conceitos de refinamento, refaça os algoritmos do capítulo anterior colocando desvios condicionais onde você achar próprio e refinando passos que você acha que podem ser refinados.

Nota: Em portugol não existem ainda regras rígidas para a elaboração da sequência de solução do problema, então, sinta-se a vontade para escrever o código de acordo com sua visão do problema.

Conclusão

Estruturação do pensamento consiste na utilização de ferramentas como refinamento de código e desvios condicionais para a maior consistência do código. Para a partir de uma visão macro de um problema podermos chegar a uma solução viável através de refinamentos sucessivos.

Para uma fixação do conteúdo, refaça os exercícios da primeira aula utilizando estas técnicas (onde você achar necessário).

Na próxima aula faremos uma introdução à algoritmos. Sugestões e críticas são bem vindos!

Copyright (C) 1999-2000 Linux Solutions