LENGUAJES DE PROGRAMACIÓN  
 
 
FreePascal

PASCAL CON FREE PASCAL

 
 

 

5.7. Variables con valor inicial o por defecto.

 

anterior :: indice :: siguiente

 

Por defecto las variables en pascal no tienen un valor inicial después de ser definidas. Asumir que las variables contienen 0 o cualquier valor por defecto es un error. El compilador nos permite crear variables con valores ya preestablecidos. Su declaración se hace de manera similar a las variables con la salvedad de que se debe indicar el tipo de dato usado por la variable. Por ejemplo para crear la variable PesoRecomendado con un valor inicial o por defecto, lo hacemos del siguiente modo:

 

 

Var

   PesoRecomendado : Real = 140.50;

 

Se debe observar que después de colocar o escribir el identificador de la variable se usan los dos puntos (:) para definir el tipo de dato, y seguido el símbolo igual (=).

Para los arreglos como son las listas o vectores los valores se colocan separados por comas y entre paréntesis. Se debe colocar un valor para cada bloque o elemento de la constante con tipo. Por ejemplo, el siguiente programa, asigna valores iniciales al arreglo usando el operador de asignación:

 

 
{$codepage UTF8}

TYPE
 Arreglo01=array[1..10] of byte;

VAR
 A,B  :Arreglo01;
 i:byte;

BEGIN
 A[1]:=2; A[2]:=5;A[3]:=4;A[4]:=2;A[5]:=8; 
 A[6]:=4; A[7]:=9;A[8]:=4;A[9]:=6;A[10]:=11; 
 B:=A;
 for i:=1 to 10 do Writeln(B[i])
END.
 

Código fuente 26:Arreglo con valores iniciales usando el operador de asignación .

 

Pero, el anterior programa se puede escribir del siguiente modo:

 

 
{$codepage UTF8}

TYPE
 Arreglo01=array[1..10] of byte;

VAR
 A :Arreglo01 = (2,5,4,2,8,4,9,4,6,11);
 B :Arreglo01;
 i:byte;

BEGIN
 B:=A;
 for i:=1 to 10 do Writeln(B[i])
END.
 

Código fuente 27: Arreglo con valores sin usar el operador de asignación.

 

Para crear variables con valores iniciales para los arreglos que representen tablas o matrices, se debe colocar cada dimensión entre paréntesis, y usando las comas para separar tanto las dimensiones como los bloques o elementos del arreglo. Un ejemplo para comprender:

 

 
{$codepage UTF8}

TYPE
 TMatriz3x3=array [1..3,1..3] of real;

VAR
 MatrizIdentidad : TMatriz3x3 =  ((1,0,0),
                                  (0,1,0),
                                  (0,0,1)); 
 i,j:byte; 

BEGIN
 for i:= 1 to 3 do
   Begin
     for j:=1 to 3 do Write(MatrizIdentidad[i,j]:3:0);
     Writeln 
    End; 
END.
 

Código fuente 28: Matriz con valores iniciales.

 

En el caso de registros, se debe crear primero el tipo de dato del registro para después crear la variable. Después del signo (=) se debe colocar entre paréntesis los valores correspondientes a cada campo del registro usando dos puntos (:), la estructura debe finalizar con un punto y coma. Otro ejemplo para comprender:

 

 
{$codepage UTF8}

TYPE 
 TEmpleado = Record
               DNI : String;
               Nombre, Apellido : string;
               Salario : real; 
               TieneAuto : Boolean; 
             End; 

VAR
  EmpleadoDefecto : TEmpleado =
                       ( DNI : '00000000';
                         Nombre : 'anonimo';
                         Apellido : 'anonimo';
                         Salario : 1500; 
                         TieneAuto : False);
   Sal:real; 
   rpt:char;
   Cadrpt:String;

BEGIN
  Sal:=0; 
  Cadrpt:='';
  Writeln('Ingrese sus datos');
  With EmpleadoDefecto do
    Begin
      Write('DNI : ');Readln(Cadrpt);
      if (Cadrpt<>'') then DNI:=Cadrpt;
      Write('Nombre : ');Readln(Cadrpt);
      if (Cadrpt<>'') then Nombre:=Cadrpt;
      Write('Apellido : ');Readln(Cadrpt);
      if (Cadrpt<>'') then Nombre:=Cadrpt;
      Write('Salario [0] 1500 : ');readln(Sal);
      if (Sal<>0) then Salario:=Sal; 
      Write('Tiene Auto [S]Si, [N o Enter]No : ');readln(rpt);
      if rpt in ['s','S']  then TieneAuto:=true;
    End;
 With EmpleadoDefecto do
 Begin
   Writeln('DNI ',DNI);
   Writeln('Nombre ',Nombre);
   Writeln('Apellido ',Apellido);
   Writeln('Salario ',Salario:3:2);
   Writeln('Tiene Auto ',TieneAuto)
 End; 
END.
 

Código fuente 29: Registro con valores iniciales o por defecto.

 

En el ejemplo anterior si no se ingresa el DNI, el registro contendrá el valor 00000000, por defecto y en el caso del campo Auto, si no se ingresa nada tendrá como valor false, por defecto.

Para colocar valores iniciales a un conjunto, se procede del siguiente modo:

 

 
{$codepage UTF8}

TYPE
 TLetras = Set of Char;

VAR 
 Mayusculas : TLetras = ['A'..'Z'];

BEGIN
 Mayusculas:=Mayusculas+[#165];
END.
 

Código fuente 30: Conjuntos con valores iniciales o por defecto.

 

El Conjunto Mayusculas tendrá las mayúsculas desde la 'A' hasta la 'Z' por defecto, si no se añade elementos al conjunto.

En el caso de cadena de caracteres se procede como se muestra en el siguiente ejemplo:

 

 
{$codepage UTF8}

VAR 
 frase : String = 'La vida es corta, no lo desperdicies';

BEGIN
 Writeln(frase);
END.
 

Código fuente 31: Cadena de caracteres con valores iniciales o por defecto.

 

Al colocar valores iniciales a una cadena de caracteres, sólo se deben usar caracteres que estén en una codificación de 8 dígitos binarios, es decir no se pueden usar caracteres UTF8.

 

anterior :: indice :: siguiente

 

 
 

  SUGERENCIAS