
CAPTULO 10  -  ESTRUTURAS DE CONDIO

A primeira estrutura da condio que veremos  o comando IF

IF 
Este comando permite que alteremos a lgica de um programa, de acordo com
uma determinada condio. Sua sintaxe :
IF <condio>
    THEN
       BLOCO;

ou ainda

IF <condio>
    THEN
        BLOCO
    ELSE
BLOCO;

Na primeira estrutura, o BLOCO(conjunto de comandos delimitados por BEGIN e
END ou ainda um nico comando) s ser executado se a condio for
verdadeira, no caso da condio ser falsa, ser executado o primeiro comando
aps o BLOCO. J na segunda estrutura, se a condio for verdadeira, ser
executado o BLOCO do THEN, caso contrrio, ser executado o BLOCO do ELSE. 
importante deixarmos bem claro que se formos utilizar o ELSE do IF, este
deve ser precedido de um BLOCO sem ";", seja este um BLOCO simples ou composto.

Vamos ver um exemplo do uso do comando IF:
PROGRAM teste_if;

USES    CRT;
VAR
    letra1, letra2 : CHAR;
BEGIN
    CLRSCR;
    GOTOXY(10,8);
    WRITE("Entre com a primeira letra : ");
    READLN(letra1);
    GOTOXY(10,10);
    WRITE("Entre com a segunda letra : ");
    READLN(letra2);
    IF letra1>letra2
        THEN
        BEGIN
            GOTOXY(10,12);
        WRITELN(" A primeira letra  maior que ,  a segunda );
        END
   DELAY(1000);
END.

Neste exemplo, apenas quandoo primeiro valor for maior que o segundo  que
ser apresentada a mensagem. Quando o primeiro valor no for maior que o
segundo nada acontecer. Para que tivssemos uma mensagem para esta
situao, deveramos nos utilizar do ELSE. utilizando o mesmo exemplo vamos
fazer a alterao:
PROGRAM teste_if_else;
USES    CRT;

VAR
    letra1,letra2 : CHAR;
BEGIN
    CLRSCR;
    GOTOXY(10,8);
    WRITE(Entre com a primeira letra : );
    READLN(letra1);
    GOTOXY(10,10);
    WRITE(Entre com a segunda letra : );
    READLN(letra2);
    GOTOXY(10,12);
    IF letra1>letra2
        THEN
            WRITELN(A primeira letra e  maior que , a segun                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                a uma expresso falsa.
  Outra coisa que podemos perceber neste ltimo exemplo,  que quando o 
primeiro valor for igual ao segundo, a mensagem no ser especfica, para 
que a tenhamos de acordo, podemos mais uma vez alterar nosso programa des-
ta forma:
PROGRAM texte_if_else;
USES   CRT;
VAR
  letra1, letra2 _ CHAR;
BEGIN
  CLRSCR;
  GOTOXY (10,8);
  WRITE (entre com a primeira letra: );
  READLN (letra1);
  GOTOXY (10,10);
  WRITE (entre com a segunda letra: );
  READLN (letra2);
  GOTOXY (10,12);
  IF letra1 > letra2 
    THEN
      WRITELN (a primeira letra maior qu, a segund);
    ELSE
      IF letra1 < letra2
        THEN
          WRITELN (a primeira menor que segund);
        ELSE
          WRITELN (a primeira letra igual segund);
  DELAY (1000);        
END.  

  Podemos utilizar qualquer comando em conjunto com um comando IF, inclusive
o prprio IF. 
  A indentao, ou, seja o alinhamento por nvel  uma outra coisa que vale
um comentrio. No somos obrigados pelo Pascal a escrever o programa inden-
tado, mas quando o, fazemos estamos melhorando a esttica do programa, 
porm, mais do que isso, a importncia de se escrever um programa indentado
 quanto  depurao e uma futura manutano.

  Uma outra estrutura de condio  o comando CASE.
CASE <expresso> OF
op1 : bloco;       
op2 : bloco;
