Variables and Data Types/es

From Free Pascal wiki
Jump to: navigation, search

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

1D - Tipos de Datos y variables (autor: Tao Yue, estado: cambiado)

   Las variables son similares a las constantes, pero sus valores pueden ser cambiados durante la ejecución del programa. Las variables deben ser declaradas en Pascal antes de poder ser utilizadas:

 var
  ListaIdentificadores1 : TipoDato1;
  ListaIdentificadores2 : TipoDato2;
  ListaIdentificadores3 : TipoDato3;
  ...

   Donde ListaIdentificadores es una serie de identificadores, separados por comas (,). Todos los identificadores en la lista se declaran como del mismo tipo de datos.

   Los tipos de datos básicos en Pascal incluyen:

  • integer (entero)
  • real
  • char (un byte, un carácter)
  • boolean (lógico: verdadero -true- o falso -false-)

   El Pascal estándar no prevé nada para el tipo de datos de cadena de caracteres, pero los compiladores más modernos si lo hacen. Programadores Pascal avanzados utilizan punteros para la asignación dinámica de memoria, objetos para la programación orientada a objetos, y muchos otros, pero esto te ayudará a comenzar

   Más información sobre los tipos de datos de Pascal:

  • El tipo integer puede contener valores enteros desde -32768 hasta 32767. Este es el rango de valores con signo que puede ser almacenado en una palabra de 16 bits, y es herencia de la época en que las CPUs de 16 bits eran comunes. Por compatibilidad con versiones anteriores, un entero de 32 bits con signo es un entero largo (longint) y puede almacenar una gama mucho mayor de los valores.
  • El tipo real tiene un rango desde 3.4x10-38 hasta 3.4x1038, además del mismo rango para números negativos. Los valores reales se almacenan en la computadora de manera similar a la notación científica, con una mantisa y exponente, con algunas complicaciones. En Pascal, se pueden expresar los valores reales en el código en la notación de punto fijo o en notación científica, con el carácter E separando la mantisa del exponente. Por lo tanto 452.13 es lo mismo que 4.5213e2.
  • El tipo char contiene caracteres. Asegúrate de incluirlos entre comillas simples, así: 'a' 'B' '+' El Pascal estándar utiliza caracteres de 8 bits, no de 16 bits, de modo que Unicode, que se utiliza para representar en todos los conjuntos de caracteres de los idiomas del mundo en un sistema de Código Unificado, no está soportado.
  • El tipo WideChar es un carácter de dos octetos (un elemento de un DBCS: Double Byte Character Set -conjunto de caracteres de dos bytes-) y puede contener un carácter Unicode.
  • Free Pascal soporta la implementación de Delphi del tipo PChar. PChar se define como un puntero a un tipo Char, pero permite operaciones adicionales. El tipo PChar puede ser mejor entendido como el equivalente Pascal de una cadena C terminada en nulo, es decir, una variable de tipo PChar es un puntero que apunta a una matriz de tipo Char, que se termina por un carácter nulo (#0). Free Pascal soporta la inicialización de constantes con tipo PChar, o una asignación directa. Por ejemplo, los trozos de código siguientes son equivalentes:
 program uno;  
 var P : PChar;  
 begin  
   P := ’Esta es una cadena terminada en nulo.;  
   WriteLn (P);  
 end.
 program dos;  
 const P : PChar = ’Esta es una cadena terminada en nulo.;  
 begin  
   WriteLn (P);  
 end.
  • Free Pascal soporta el tipo String tal como se define en Turbo Pascal: una secuencia de caracteres con una especificación de tamaño opcional. También es compatible con ansistrings (con longitud ilimitada) como en Delphi. Y pueden ser declarados así:
 variable_nombre : string;                    // si no se especifica la longitud, el valor predeterminado será 255
 variable_nombre : string[longitud];          // donde:  1 < longitud <= 255
  • El tipo predefinido ShortString está definido como una cadena de tamaño 255.
  • AnsiStrings son cadenas que no tienen límite de longitud. Dsipone de un contador de referencias y está garantizado para terminar en un valor nulo. Internamente, un AnsiString se trata como un puntero: el contenido real de la cadena se almacena en el montón, y tanta memoria como sea necesaria para almacenar el contenido de la cadena se asignará.
  • Widestrings (utilizada para representar cadenas de caracteres Unicode) se implementan en la misma forma que ansistrings: un contador de referencias, terminada en matrices nulas, sólo que se implementan como matrices de WideChars en lugar de Chars normales.
  • El tipo boolean (lógico o booleano) sólo puede tener dos valores: true y false

   Un ejemplo de declaración de varias variables es:

 var
  edad, anyo, grado : integer;
  circunferencia : real;
  GradoObtenido : char;
  Aprobado: Boolean;

   Del manual de FPC

Tipos enteros
Tipo Rango Bytes
Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer smallint o longint 2 o 4
Cardinal longword 4
Longint -2147483648 .. 2147483647 4
Longword 0..4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8

   Free Pascal realiza una conversión automática de tipos si en las expresiones se utilizan diferentes tipos de enteros .

Tipos real
Tipo Rango dígitos significativos Bytes
Real depende de la plataforma ??? 4 or 8
Single 1.5E-45 .. 3.4E38 7-8 4
Double 5.0E-324 .. 1.7E308 15-16 8
Extended 1.9E-4932 .. 1.1E4932 19-20 10
Comp -2E64+1 .. 2E63-1 19-20 8
Currency -922337203685477.5808 922337203685477.5807 8


Tipos lógicos (boolean)
Tipo Bytes Ord(True)
Boolean 1 1
ByteBool 1 Valor distinto de cero
WordBool 2 Valor distinto de cero
LongBool 4 Valor distinto de cero
previo índice siguiente