PDF de programación - Manejo de Cadenas en Turbo Pascal

Imágen de pdf Manejo de Cadenas en Turbo Pascal

Manejo de Cadenas en Turbo Pascalgráfica de visualizaciones

Publicado el 17 de Mayo del 2021
410 visualizaciones desde el 17 de Mayo del 2021
53,8 KB
12 paginas
Creado hace 23a (02/10/2000)
Principios de Computadoras I

1° Cuatrimestre 2000



Manejo de Cadenas en Turbo Pascal.



1. Tipos de datos estáticos en Turbo Pascal (breve repaso).

Antes de comenzar haremos un breve repaso sobre los tipos de datos que soporta el Turbo Pascal,
para ello veamos primero cómo se clasifican:




Simples
• Ordinales o Numerables.

Enteros (integer, longint, shortint, word, byte)
Lógicos (Boolean = (False, True))



• Caracteres (Char)



Subrango (1..N, 1..M, 'a'..'z')
Enumerado

• No Ordinales

• Reales o de Punto Flotante (real, single, double, extended)




Estructurados
• Arreglos
• Registros
• Conjuntos
• Archivos

• Cadenas de Caracteres (Strings)



Los tipos de datos Simples se caracterizan porque las variables pertenecientes a este tipo solamente

pueden almacenar un único dato en forma simultánea.


Estos tipos se subdividen además en Ordinales y No Ordinales. El primer conjunto incluye todos los
tipos en los cuales se puede establecer un orden y una numeración de los valores permitidos, y por lo
tanto se puede determinar qué valor es el inmediato inferior o inmediato superior de otro valor conocido.
Por ejemplo, supongamos que A es una variable de tipo integer, si A=2000, sabemos que el valor inme-
diato inferior es 1999 y el inmediato superior es 2001. Supongamos ahora que LETRA es una variable de
tipo char (el cual analizaremos detalladamente más adelante), de valor 'F', intuitivamente sabemos que
'E' precede a LETRA y que el valor siguiente es 'G'.


En la subclase No Ordinales entran aquellos tipos en los que no se puede establecer qué valor es el
inmediato superior o inferior de otro conocido. Por ejemplo, consideremos una variable de punto flotante
B = 2000. Uno estaría tentado en decir que el valor que la precede es 1999, pero en este caso no es así.
Como B es un dato perteneciente a los reales (matemáticamente hablando), entre 1999 y 2000 existen
infinitos valores, por lo tanto no se puede establecer con precisión quién precede al 2000. (El número
sería X=1999.999999999........... con infinitos decimales iguales a 9, aunque los matemáticos afirman que
si un valor X tiene infinitas cifras decimales y todas iguales a nueve, el valor que se tiene es igual a la
parte entera de X más uno, (int(X)+1), en nuestro caso sería 2000. Entonces estamos nuevamente en el
comienzo del problema.)


En algunas ocasiones uno desea que una variable almacene más de un datos simultáneamente, por
ello existen los tipos de datos que entran en la clase Estructurados. Dentro de esta clase se incluyen los
arreglos y matrices, registros (o records), los conjuntos y los archivos.


Otra clase está formada por las variables de tipo Cadena o String, que nos permitirá almacenar y
operar con cadenas de caracteres, es decir, con palabras y/o frases. En general la bibliografía la conside-
ra como una clase propia, pero, como veremos más adelante, se la puede considerar una subclase de los
tipos estructurados.



Manejo de Cadenas en Turbo Pascal.



Página 1/12

Principios de Computadoras I

2. TIPO DE DATO CHAR.

1° Cuatrimestre 2000


Antes de estudiar el tipo de dato String es conveniente analizar primero el tipo Char (o caracter). Este
tipo de datos nos permite almacenar en una variable un caracter. Este caracter puede ser una letra
(mayúscula o minúscula), un dígito ('0', '1',... '9'), un caracter especial ('@', '$', '%', etc.), un símbolo ('ø',
'', '', etc.) o un caracter de control (Enter #13, Escape #27, Tabulación #9, etc.).


Como el idioma que "hablan" (o entienden) las computadoras está compuesto únicamente por núme -
ros, los diseñadores de las primeras máquinas decidieron asociar cada caracter con un número. En un
primer momento cada diseñador elegía una asociación arbitraria o en conveniencia con su proyecto, por
lo tanto no existía una compatibilidad entre los distintos sistemas. Por ese motivó se optó por tomar una
codificación estándar y que todos deberían respetar. Esta codificación se denomina ASCII (American
Standard Code for Information Interchange; código estándar americano para intercambio de informa-
ción). Actualmente se emplea el código ASCII extendido que permite la codificación de 256 caracteres.


En la tabla ASCII cada caracter tiene un orden fijo y preestablecido, por lo tanto se puede conocer
qué caracter se encuentra antes o después de otro. Al final de este apunte se encuentra una copia de la
tabla ASCII, pero si la resumimos obtendríamos algo como lo que sigue:



Caracteres de Control

i)
ii) Espacio
iii) Símbolos I
iv) Dígitos
v) Símbolos II
vi) Letras Mayúsculas
vii) Símbolos III
viii) Letras Minúsculas
ix) Caracteres especiales
x) Caracteres Gráficos
xi) Símbolos matemáticos

(beep, tabulación, retorno de carro, escape, etc.)
(caracter #32)
('!', ' " ', '#', '$'. ....)
('0' .. '9')
(':', ';', '<', ....)
('A' .. 'Z')
('[', '\', ']', ....)
('a' .. 'z')
(vocales acentuadas, símbolos monetarios, 'ñ', 'Ñ', etc.)

(alfa, beta, gama, >=, <=, unión, intersección, etc.)



Si observamos detenidamente, podemos ver que existen dos grupos de Letras, uno con las letras ma-
yúsculas y otro con las minúsculas, por lo tanto, por ejemplo, el caracter 'A' es distinto al caracter 'a' ya
que se encuentran en distinta posición. En forma más general, 'A' < 'a'. Es decir, todas las letras mayús-
culas son menores que las letras minúsculas, por ejemplo, 'Z' < 'a', es decir, 'Z' está antes que 'a', con-
cepto que no coincide con lo que aprendimos en la escuela primaria. Esta observación la deberemos
tener en cuenta más adelante cuando, por ejemplo, quisiésemos ordenar una lista de palabras en orden
alfabético.



2.1. Manejo de variables de tipo Char.

Función Chr() y operador #.




Como es lógico, el Turbo Pascal nos provee de una función que nos devuelve el caracter ASCII ubica-
do en una determinada posición de la tabla. Esta función es Chr(). Cuando se invoca la función se debe
pasar como argumento un valor de tipo Byte que representará la posición del caracter dentro de la tabla.



Ejemplo:

{ El siguiente programa muestra todos los caracteres visibles de la tabla ASCII }
{ Los caracteres de Control no se muestran }
{ Si se desea ver toda la tabla, el ciclo for deberá comenzar en 0 (cero) }



Manejo de Cadenas en Turbo Pascal.



Página 2/12

Principios de Computadoras I

1° Cuatrimestre 2000

program Funcion_Char;
var

Caracter: char;
i : byte;

writeln(' Caracteres visibles de la tabla ASCII ');

begin



for i:=32 to 255 do
begin
Caracter := Chr(i);
write(i:5,'=', Caracter:2);
end;
writeln;

{Caracter almacenará el caracter ASCII ubicado en la posición i }



end. {program Funcion_Char}


Existe otro modo de indicar que el contenido de una variable char sea el caracter ubicado en una
determinada posición, y es por medio del operador #. Por ejemplo, si quisiéramos almacenar en una va-
riable el símbolo que representa la tecla Enter (ASCII 13), se puede escribir:


Tecla_Enter := #13;

Como se ve, existe una semejanza entre la función Chr() y el operador #, ya que los dos nos devuel-
ven el caracter ASCII ubicado en una determinada posición. La diferencia que existe entre ambos es que
el operador # siempre debe ir acompañado con un número (ej. #1, #65, #255), por lo tanto se debe
fijar cuando se hace el programa y no se podrá cambiar en tiempo de ejecución. En cambio, como vimos,
la funció n Chr() es más genérica y nos permite cambiar su argumento a medida que se ejecuta el progra-
ma. Resumiendo, a continuación se muestra un código NO VALIDO:


for i:= 32 to 255 do
begin



Caracter := #i; {<--------------- Esto NO está permitido}

write(i:5,'=', Caracter:2);

end;




La función Ord() es la inversa de la función Chr(), dado un caracter como argumento nos devolverá su

Función Ord().

posición en la tabla ASCII. Por ejemplo:


Ord('A') = 65
Ord('a') = 97
Ord('á') =160
Ord(#255) =255


• Uso de Char como control de un ciclo For.

Como indicamos al comienzo los tipos char son Ordinales o Numerables, por lo tanto se pueden usar
como variables de control en un ciclo For, es decir, podemos hacer que dicha variable se "desplace" por
la tabla ASCII entre dos valores extremos dados como dato. Veamos dos ejemplos:



Manejo de Cadenas en Turbo Pascal.



Página 3/12

Principios de Computadoras I

1° Cuatrimestre 2000

program Ciclo_For_con_Char;
var
i


Posicion
begin


: char;
: byte;

for i:= 'A' to 'Z' do

begin
Posicion := Ord(i);
writeln(i:2, '=', Posicion:4);
end;



end.

program Ciclo_For_con_Char;
var
i


Posicion
begin


: char;
: byte;

for i:= 'Z' downto 'A' do

begin
Posicion := Ord(i);
writeln(i:2, '=', Posicion:4);
end;



end.



En el ciclo for se hace variar a i (de tipo char) entre el caracter 'A' y el caracter 'Z', por lo tanto se
recorrerán todas las letras mayúsculas del alfabeto inglés. En el interi
  • Links de descarga
http://lwp-l.com/pdf19201

Comentarios de: Manejo de Cadenas en Turbo Pascal (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad