VARIÁVEIS DO TURBO PASCAL


  Uma variável é um espaço de memória reservado pelo programa para armazenar um determinado tipo de dado. Ela é composta por:   Diferente do Basic, no Pascal devemos declarar uma variável antes de utilizá-la. Também devemos indicar qual é o tipo de dado que essa variável irá comportar.
  A palavra reservada "var" é utilizada para indicar que uma variável está sendo declarada.

  Sintaxe:
var <identificador> : <tipo de dado>;
  Exemplo:
var idade : integer;
  Declara uma variável com o identificador "idade" e o tipo de dado inteiro.
  Para a declaração de mais variáveis, utiliza-se um "var" apenas. Além disso, a declaração de variáveis deverá sempre estar antes do "begin" do corpo principal, função ou procedimento correspondente. Ex:
var nome : string[40];
    idade : integer;
    altura : real;
  Atribuição:

  A atribuição de valor é feita utilizando-se os dois pontos e o igual ":=". Os dois pontos são utilizados para diferenciar a igualdade de atribuição da igualdade do teste lógico, no qual é utilizado apenas o símbolo de igual "=". Ex:
var nota : integer;
begin
  nota := 7;
  if nota = 7 then
    writeln('Aprovado no limite!');
end.
  A variável nota recebe o valor igual a 7. Observe que o teste lógico (nota = 7) possui apenas o símbolo de igual, sem os dois pontos.



  Tipos de dados

  O Turbo Pascal possui os seguintes tipos de dados primitivos:

  BOOLEAN

  Variável que admite somente 2 valores distintos: FALSO ou VERDADEIRO.

TIPO TAMANHO
boolean 8 bits
wordbool 16 bits
longbool 32 bits
bytebool 8 bits

Exemplo:

var brasileiro : boolean;

begin
  brasileiro := false;
  if brasileiro then
    writeln('Brasuca');
  else
    writeln('Gringo');
end.
Saída:
Gringo



  CHAR

  Variável utilizada para manipular caracteres. Contém o código ASCII de uma letra.
  Não serve para armazenar valores, pois este tipo de variável não permite realizar operações.  
  A função ord() retorna o código ASCII da variável, enquanto a função chr() retorna a letra correspondente a um código ASCII.

Exemplo:
var letra1, letra2 : char;

begin
  letra1 := 'A';
  letra2 := #65;
  writeln('A letra 1 é: ', letra1);
  writeln('A letra 2 é: ', letra2);
  writeln('O codigo ASCII da letra 1 é: ',ord(letra1));
  letra2 := chr(65); { Também pode }
end. 
Saída:
A letra 1 é: A
A letra 2 é: A
O código ASCII da letra 1 é: 65



  INTEGER

  Variável utilizada para manipular números inteiros.

TIPO FAIXA SINAL TAMANHO
shortint -128 a 127 Sinalizado 8 bits
integer -32768 a 32767 Sinalizado 16 bits
longint -2147483648 a 2147483647 Sinalizado 32 bits
byte 0 a 255 Não sinalizado 8 bits
word 0 a 65535 Não sinalizado 16 bits

  A diferença entre variável sinalizada e não sinalizada é a presença de números negativos. Nas variáveis sinalizadas, o bit mais significativo é utilizado para indicar o sinal. O bit 0 indica número positivo, e o bit 1 indica número negativo.

Exemplo:

var idade : integer;

begin
  idade:=20;
  write('Ela tem ',idade);    { Pode ser também: writeln('Ela tem ', idade, ' anos.'); }
  writeln(' anos.');
end. 
Saída:
Ela tem 20 anos.



REAL

Variável utilizada para manipular números reais.

TIPO FAIXA DÍGITOS BYTES
real 2.9e-39 a 1.7e38 11-12 6
single 1.5e-45 a 3.4e38 7-8 4
double 5.0e-324 a 1.7e308 15-16 8
extended 3.4e-4932 a 1.1e4932 19-20 10
comp -9.2e18 a 9.2e18 19-20 18

  Principais funções do real:

Exemplo:
var a : real;

begin
  a := 7.6;

  writeln('Valor de a: ', a);
  writeln('Valor truncado de a: ', trunc(a));
  writeln('Valor arredondado de a: ', round(a));
end.
Saída:
Valor de a: 7.6
Valor truncado de a: 7
Valor arredondado de a: 8



  STRING

  Variável que manipula cadeia de caracteres. Utilizada para armazenar palavras.
  Em sua declaração, podemos indicar o tamanho da palavra. Caso omitirmos este tamanho, será atribuído o máximo valor possível, que é de 256 caracteres.

  As principais funções de manipulação de strings são: Exemplo:
var nome : string[10];

begin
  nome:='Marcelo';
  writeln(copy(nome,1,3)+'MSX');
end. 
Saida no vídeo:
MarMSX

  Concatenação é a união de strings. Ela é feita no pascal utilizando-se o sinal de soma ("+"). Ex:
var frase1, frase2, frase3 : string;

begin
  frase1 := 'MSX';
  frase2 := frase1 + ' é o ';
  frase3 := frase2 + frase1;

  writeln(frase1);
  writeln(frase2);
  writeln(frase3);
end.
Saída:
MSX
MSX é o
MSX é o MSX



  Interpretação de dados na memória

  Quando determinamos o tipo de dado que uma variável irá armazenar na memória, na verdade estamos indicando quantos bytes serão utilizados para armazenar o dado e também como esse dado irá ser interpretado.
  Seja o seguinte trecho de memória, do endereço 0 a 7:
 Endereço  00 01 02 03 04 05 06 07
 ---------------------------------
 Dado      61 7A 75 6C 61 6E 69 6C
  A proposta a seguir é verificar como esses dados serão interpretados por uma variável, dependendo do seu tipo.
  Imaginemos que a variável, independente do tipo, tenha o primeiro byte sempre apontado para a posição de memória igual a 0.

  No caso de uma variável ser do tipo ...


  Outros tipos de variáveis

  Além das variáveis primitivas, temos outros tipos de variáveis no Pascal, que serão abordadas nos capítulos mais adiante:

/MARMSX/CURSOS/PASCAL