O documento apresenta os conceitos de estruturação do pensamento, refinamento de código e desvios condicionais para programação. Estes conceitos incluem estruturar o pensamento através de condições e desvios, refinar passos de um algoritmo de forma iterativa e usar desvios condicionais para contornar diferentes condições.
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
Curso De Algoritmo Aula 2
1. http://olinux.uol.com.br/artigos/331/print_preview.html
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:
q Condições: para fazer algo; isto é, antes de fazer uma coisa, tenho que verificar se outra já foi
feita;
q 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 bolso
SE 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á para
fora 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.
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 bolso
SE 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 bolso
SE 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
3. 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- 2 0 0 0 Linux Solutions