|
MC102 |
| 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.