MC102
Algoritmos e Programação de Computadores
Parte IV



Norton Trevisan Roman




VARIÁVEIS

São lugares onde armazenamos e de onde lemos valores.

Devem ser declaradas antes de usadas. Veja onde declarar variáveis:

No programa No procedimento
    PROGRAM x;
    VAR variável : tipo;
    BEGIN
      ...
    END.
        
    PROCEDURE y;
    VAR variável ; tipo;
    BEGIN
      ...
    END;
        

Uma variável declarada no programa é visível a partir de todo o programa (inclusive procedimentos) e é chamada de variável global.

Já uma variável declarada em um procedimento só é visível dentro deste procedimento, não podendo ser vista por elementos de fora dele. Tal variável é chamada de local.

Agora, o que acontece se temos uma variável local com um mesmo nome de uma variável global? Nada, só que dentro do procedimento onde esta local está declarada, a global não é vista.

Então, de forma geral, a declaração de uma variável é:

    VAR var1 : tipo1;
        var2 : tipo2;
        var3, var4 : tipo3;
        

O tipo da variável indica o tipo de dado que ela armazenará. O computador precisa desse dado para saber o quanto de memória vai reservar para guardar a variável. Veja alguns tipos numéricos:

INTEGER inteiros de -32768 a 32767
REAL reais de 2.9E-39 a 1.7E38 (negativo inclusive)
SHORTINT inteiros de -128 a 127
WORD inteiros de 0 a 65535
LONGINT inteiros de -2147483648 a 2147483647
BYTE inteiros de 0 a 255
CHAR caracter

Há outros tipos, mas esses são os tipos mais simples (outros serão vistos mais tarde).


ATRIBUIÇÕES

Server para que possamos por valores nas variáveis. Sua sintaxe é:

    variável := expressão;
        

Onde "expressão" pode ser um número ou uma expressão matemática, por exemplo:

 x := 3;
        
O valor 3 é armazenado na variável x.
 y := 4;
        
O valor 4 é armazenado na variável y.
 z := x + y;
        
O valor que está em x é somado ao que está em y, sendo o resultado armazenado na variável z.

Vale lembrar que quando guardamos um valor numa variável, o valor antigo que estiver lá será perdido.

Agora não confunda! x := 2 não quer dizer "x é igual a 2", mas sim "o valor 2 será guardado em x".
Assim:

Comando Significado
 x := y;
        
uma cópia do valor que está em y será guardada em x. O valor que estava antes em x, se havia algum, será perdido.
 x := x;
        
uma cópia do valor que está em x será guardada em x de volta, perdendo o valor antigo.

Dessa forma podemos fazer coisas do tipo:

 x := x + 1;
        

O que isso faz? O computador pega o valor de x, soma 1 a esse e guarda o resultado novamente em x. Então, se x continha o valor 2, após a atribuição x := x + 1; ele conterá 3.

Viram? Isso mostra por que não podemos ver x:=2 como "x é igual a 2", pois senão x:=x+1 seria um erro matemático.

Agora que sabemos como abastecer valores em variáveis, como fazemos para escrever seus valores na tela?

Comando O que faz
 x := 2;
        
Abasteço x com o valor 2.
 write(x);
        
Escreve o valor de x na tela, no caso, 2.

mas podemos enfeitar ainda mais, veja abaixo:

Comando Saída
 write('x = ',x);;
        
 x = 2
        
 write('x = ',x,' (total)');
        
 x = 2 (total)
        

reparou nos espaços entre o "=" e o "'" e entre o "'" e "(total)"? São necessários, senão a saída seria x =2(total).

Agora vamos ver uma aplicação bem simples:

 PROGRAM media;
 USES crt; {para entrada e saída}
 VAR p1 : REAL; {nota da prova 1}
     p2 : REAL; {nota da prova 2}
     p3 : REAL; {nota da prova 3}
     m  : REAL; {média das provas}

 BEGIN
   {dou as 3 notas}
   p1 := 3.0;
   p2 := 5.5;
   p3 := 6.5;

   {calculo a média}
   m := (2*p1 + 3*p2 + 5*p3) / 10;

   writeln('A média de ',p1:3:2,', ',p2:3:2,' e ',p3:3:2,' é ',m:3:2,'.');
 END.
        
 saída:

 A média de 3.00, 5.50 e 6.50 é 5.50.
        

Veja a seguinte seqüência de comandos e a saída:

Comandos Saída
 x := 2;
 y := 3;
 write(x,y);
        
 23
        

Viu como as duas variáveis foram escritas lado a lado? Tome cuidado com isso!

Por fim, uma outra boa dica é sempre inicializar as variáveis antes de usá-las, atribuindo a elas um valor inicial.





‹— Parte IIIPágina da disciplinaParte V —›