Pascal, como cualquier otro lenguaje, debe tener la capacidad de procesar frases como "Presione ENTER para continuar", "Calculando...", "Proceso terminado", etc.
Los datos tipo char y string permiten la manipulación de datos no numéricos.
Una cadena de caracteres o string es una serie de caracteres cuya longitud (número de caracteres que contiene) puede variar de 1 hasta 255 caracteres. Turbo Pascal tiene el tipo de dato string que almacena información de texto. Este dato se puede almacenar en constantes y en variables de cadena. Una variable de cadena está declarada para la palabra string seguida de la longitud máxima de la cadena encerrada entre corchetes.
Declaración de una variable tipo string
Las variables de cadena se pueden declarar las de cualquier otro tipo, ya sea en la sección var o en type.
Si se declara como var, se hace de la siguiente manera:
Var
Mensaje : string [80];
Nombre : string [40];
Si la cadena es declarada como type, haríamos la declaración así:
Type
Cadena80 = string [80];
Cadena40 = string [40];
Var
Mensaje : Cadena80;
Nombre : Cadena40;
Es importante recordar que si se declara como Type inmediatamente después, dentro de las variables, se debe declarar una variable que haga referencia al Type.
Una vez declaradas las variables de cadena se pueden realizar asignaciones o bien operaciones de lectura / escritura en los programas.
Por ejemplo:
Program Ejemplo;
Var
Mensaje = string[40];
Begin
Mensaje := `Hola mis amigos, por favor estudien bastante´;
Write (`Mi mensaje de hoy para ustedes es: `),Mensaje;
Writeln;
Write (`Presione enter...´);
Readln
End.
Longitud de una cadena
Una cadena físicamente es una estructura de una secuencia de 0 hasta 255 caracteres de longitud. Sin embargo, la ocupación en memoria de una cadena es un número de bytes igual al de caracteres de la cadena más uno. Así la cadena:
`Programador´
tiene una longitud de 11 caracteres, entonces ocupará en memoria 12 bytes. Esto se debe a que el primer byte en una cadena, contiene la longitud de la cadena actualmente almacenada en memoria.
Cadenas (Strings)
* Spa para parejas En el DF Consigue Spas para parejas En el DF & otras Ofertas. 50-90% Off!
Supongamos que esta palabra corresponde a un dato almacenado en la variable PUESTO que fue definida de la siguiente manera:
Var
Puesto : String[20];
Sucede que, entonces, la longitud lógica de la variable será de 11 bytes pero la longitud física será de 20 bytes pues así fue definida.
Asignación de cadenas
A las variables de cadena, como se ha visto, se pueden dar valores con una sentencia de asignación o con una sentencia de lectura (read). Ambas situaciones se pueden describir con la ecuación:
Destino fuente
Donde destino es la cadena a la que se da un valor y fuente es la expresión de cadena que contiene el correspondiente valor. Esta ecuación actúa como la sentencia de asignación que evalúa la cadena fuente y se almacena en la variable de la cadena destino.
Dependiendo del tamaño (longitud de la cadena) de las cadenas fuente y destino se pueden presentar tres casos diferentes que analizaremos a partir de la siguiente declaración de variables de cadena.
Var
Cad1 : String [8];
Cad2 : String [11];
Cad3 : String [15];
Cad4 : String [11];
Las longitudes de la cadena destino y fuente son iguales
Supongamos que se ejecuta la sentencia
Cad2 := `informatica´;
Este caso no presenta problemas, pues cada posición de cad2 se rellena con un carácter.
Cad2 I N F O R M A T I C A
1 2 3 4 5 6 7 8 9 10 11
Lo mismo sucede si se ejecuta la sentencia
Cad4 := Cad2;
La longitud de la cadena destino es mayor que la cadena fuente
Supongamos que ahora se ejecuta la sentencia
Cad3 := Cad2;
Resultará que Cad3 tiene 15 caracteres y sólo hay 11 caracteres en cad2. La cadena Cad3 seguirá teniendo una longitud máxima de 15 caracteres, pero sólo se almacenan en ella ahora 11 caracteres y su longitud actual será de 11.
Cad3 I N F O R M A T I C A longitud actual = 11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 longitud máxima = 15
La longitud de la cadena destino es mayor que la cadena fuente
Supongamos que se trata de ejecutar ahora
Cad1 := Cad2;
En este caso, como Cad1 tiene una longitud de ocho caracteres, la cadena destino no se puede almacenar totalmente. En este caso se trunca la cadena destino y se almacenan en Cad1 los primeros ocho caracteres (de izquierda a derecha) de Cad2.
Cad1 I N F O R M A T longitud actual = 11
1 2 3 4 5 6 7 8 longitud máxima = 8
No hay comentarios:
Publicar un comentario