
Captulo 5 - programao estruturada

    O que caracteriza a programao estruturada  a possibilidade de diviso
das tarefas em rotinas ou blocos independentes entre si. Antes de comearmos
o desenvolvimento de um programa estruturado,devemos seguir determinadas regras:
    * A decomposio lgica do problema em partes independentes
    * Fazer um esboo do fluxograma do programa
    * Desenvolver o programa rotina a rotina, sempre colocando comentrios
em cada uma delas, para que sejam facilitadas  futuras manutenes.
    * O teste de cada uma das rotinas logo aps sua concluso,
individualmente, sempre que possvel.
    * Evitar o uso de artimanhas de programao que dificultem a manuteno.
    Os "enfeites" de um programa devem ser deixados para o final do mesmo.
Primeiro devemos nos certificar que o fundamenbtal foi feito.

    A programao  estruturada independentemente da linguagem utilizada,
porm, algumas linguagens tm estruturas de controle predefinidas. No
Pascal, estas estruturas so criadas principalmente por blocos. Antes de 
dar prosseguimento, devemos conhecer o conceito de Bloco:
    O bloco  um conjunto de um ou mais comando, ou seja, instrues,
colocadas entre dois delimitadores um inicial BEGIN e outro final END. Um
bloco pode ser substitudo, na maioruia dos casos, por um nido comando. As
excees so quando estes blocos devem ser utilizados como principais de uma
subrotina ou de um programa.
    Com o uso dos blocos podemos construir dois tipos de estruturas bsicas,
de repetio e de condio. No devemos nos preocupar neste ponto, com a
sintaxe destas estruturas e sim o funcionamento de cada uma delas. Nas
estruturas de condio, podemos ter dois formatos bsicos, o primeiro um
desvio no fluxo de comandos dependente de uma determinada condio.

Condio verdadeira executa um bloco, se falsa, executa outro bloco fig. 1
pag. 88
Esta mesma estrutura pode ainda, apenas executar ou no um bloco, dependendo
do estado da condio Fig. 2 pag. 89

O segundo tipo de estrutura condiciona,  a seletiva:
Entre vrios grupos de blocos diferentes somente um  executado, dependendo
do contedo de uma expresso. Este contedo  comparado com uma srie de
constantes e o bloco de comandos relacionado a esta  o ser executado Fig.
3 pag. 89.

    J nas estruturas de repetio, existem trs formas bsicas de formulao:

A primeira delas permite que um bloco seja executado at que uma determinada
condio seja satisfeita. Uma caracterstica importante neste tipo de
estrutura,  que o bloco  executado pelo menos uma vez:
Fig. 4 pag. 90

Outro tipo de estrutura de repetio  a que somente  executada enquanto a
condio for verdadeira. Caso esta condio comece falsa, o bloco no ser
executado.Fig. 5 pag. 90

O terceiro tipo de estrutura nos permite executar um determinado bloco n
vezes de acordo com uma varivel que  incrementada, ou decrementada,
automaticamente. fig. 6 pg. 91

O programa pascal
  Para escrevermos um programa em pascal, devemos obedecer a algumas regras
bsicas: a definio de trs reas distintas, o caberio, as declaraes
e as instrues. De uma forma geral, a primeira e a segunda reas so op-
cionais, sendo a nica rea realmente necessria, a de instrues que  
feita dentro do bloco principal do programa.

PROGRAM teste; {cabelho do programa opcional}
BEGIN   {\bloco   }
END.   {/principal}
  Este  um programa que no faz absolutamente nada, porm no apresenta 
erro de sintaxe. (Para compil-lo digite Alt-F9). 
  De uma forma geral, um programa em Pascal obedece ao seguinte formato:
PROGRAM nome_do_programa;
declaraes de uma forma geral
rotinas
BEGIN
  lgica do programa
END.
  Uma coisa muito importante, em se tratando de programao, a experincia
me mostrou: s se aprende programao programando. Ento deste ponto em 
diante, vamos cuidar de programar. 

PROGRAMAO EM TURBO PASCAL
  A princpio se torna um pouco enjoativo o aprendizado do Pascal pois 
diferente de outras linguagens, o Pascal exige a declarao das informaes
nele utilizadas de uma forma organizada. No BASIC por exemplo, uma varivel 
 definida apenas pela sua utilizao no programa. A declarao de vari-
veis no Pascal,  feita em uma rea especfica. Antes de conhecermos a sin-
taxe desta rea, vamos conhecer um pouco mais a respeito dos tipos que te-
mos disponvel no Turbo.

SMBOLOS ESPECIAIS
# - procede um valor inteiro de 0 a 255, representando o caractere corres-
   pondente da tabela ASCII.
$ - procede um valor hexadecimal.
 -  utilizado como delimitador de constantes alfanumricas
() - usado para envolver parmetros de subprogramas, modifica a procedncia
   de operadores, envolve valores nas definies de tipos
, - separa identificadores em diversas situaes
. - o ponto marca o fim do bloco principal do programa
.. - indica uma faixa de valores
: - procede o identificador de tipo nas declaraes de variveis, listas 
   de parmteros e definies de funes
:= - atribuio de valores (na maioria das linguagens  somente usado o 
   sinal =)
; - delimitador de comandos, termina declaraes, definies e cabealhos
= - usado como operador, ligador de tipo ou constantes aos seus identifi-
   cadores
[] - 
(..) - identificador de um elemento de uma matriz, delimita conjuntos
 - define um identificador como ponteiro (pointer), ou indica um carac-
   tere de controle, (exemplo M= ctrl-M)
{} -
(**) - usado para envolver comentrios dentro do programa
@ - indica o endereo de uma varivel declarada formalmente
