
Capiulo 22 - outras funes com variveis

SIZEOF - esta funo retorna o tamanho em bytes, que uma varivel de qual-  
quer tipo ocupa na memria. sua sintaxe:
  SIZEOF (<varivel>);
Exemplo:
PROGRAM teste_sizeof;
CONST
  a : CHAR = ;
VAR
  b : REAL;
  s : STRING[10];
  tab : ARRAY[1..3,1..10] OF LONGINT;
BEGIN
  WRITE LN ( o tamanho de uma varivel integer,  , SIZEOF(integer));
  WRITELN (o tamanho da constante a  , SIZEOF (a));
  WRITELN (o tamanho da varivel b  , SIZEOF (b));
  WRITELN (o tamanho da varivel s  , SIZEOF (s));
  WRITELN (o tamanho da tabela tab  , SIZEOF (tab));
  READLN;
END.

MOVE - este procedimento permite que uma varivel de qualquer tipo seja co-
piada para outra varivel tambm de qualquer tipo em n elementos. Se a vari-
vel que ir receber a movimentao for menor que a varivel de origem,
esta ser truncada em seu tamanho. Sua sintaxe:
  MOVE (VAR <origem>, <destino>, <cont> : WORD);
  Vejamos um exemplo:
PROGRAM teste_move;
VAR
  a : ARRAY[1..8] OF CHAR;
  b : LONGINT;
BEGIN  
  FOR b := 1 TO 8 DO
  a[b] := CHR(b);  
  WRITELN (o contedo de b antes do comand,MOVE  , b);
  MOVE (a,b,SIZEOF(a));
  WRITELN (o contedo de b aps o MOVE  , b);
end.


FILLCHAR - procedimento que permite que seja preenchida uma varivel de 
qualquer tipo com uma quantidade de um valor ordinal preestabelecido. Como
no  checado o tamanho da varivel de destino,  aconsselhvel o uso da
funo SIZEOF em conjunto a este procedimento. Sua sintaxe:
  FILLCHAR (VAR <x>; <quantidade> : WORD; <elemento> : ordinal);
exemplo:
PROGRAM teste_fillchar;
USES CRT;
VAR
  S : STRING[20];
BEGIN
  FILLCHAR (s, SIZEOF(s),  );
  s[0] := CHR(SIZEOF(s) -1);
  WRITELN (a varivel vazi, s);
  WRITE (entre com um caractere para ,preenchimento da string);
  FILLCHAR (s, SIZEOF(s), READKEY);
  s[0] := (SIZEOF)(s) - 1);
  WRITELN;
  WRITELN (varivel chei,s);
  REPEAT
  UNTIL READKEY <> #0;
END.
