PDF de programación - 2.2 y 2.3 Datos Estructurados y Arreglos en Pascal

Imágen de pdf 2.2 y 2.3 Datos Estructurados y Arreglos en Pascal

2.2 y 2.3 Datos Estructurados y Arreglos en Pascalgráfica de visualizaciones

Publicado el 22 de Agosto del 2018
1.150 visualizaciones desde el 22 de Agosto del 2018
924,7 KB
70 paginas
Creado hace 14a (14/11/2009)
2.2 y 2.3 Datos Estructurados y Arreglos en Pascal

TIPOS ESTRUCTURADOS: En Pascal, se pueden definir , a partir de los datos simples, otros tipos
más complejos conocidos como tipos estructurados.

Cuando se declara una variable como de un tipo estructurado, se puede manipular la estructura completa, o
bien trabajar con los datos individuales que la forman.

A continuación, se describirán los diferentes tipos estructurados que pueden manejarse en Pascal.

• Cadenas (String)
• Arreglos (Array)
• Registros (Record)
• Conjuntos (Set)
• Archivos

TIPO CADENAS (strings) : Turbo Pascal proporciona el tipo string para el procesamiento de cadenas
(secuencias de caracteres ).

La definición de un tipo string debe especificar el número máximo de caracteres que puede contener, esto es,
la máxima longitud para las cadenas de ese tipo. La longitud se especifíca por una constante entera en el
rango de 1 a 255.

El formato para definir un tipo string es :

<identificador> = string [limite_superior];

Las variables de cadena se declaran en la sección Var o Type.

Declaración en Var:
Var
: string[30];
nombre
domicilio : string[30];
ciudad : string[40];

: string[30];
: string[40];

Declaración en Type:
Type
cad30
cad40
Var
nombre
: cad30;
domicilio : cad30;
ciudad : cad40;

Una Vez declaradas las variables se pueden realizar asignaciones u operaciones de lectura/escritura.

:= 'Egrid Lorely Castro Gonzalez' ;

nombre
domicilio := 'Altamirano #220';
ciudad := 'La Paz B.C.S.';

El contenido de la cadena se debe encerrar entre apóstrofes. Si se desea que figure un apóstrofe en una
cadena, es preciso doblarlo en la cadena. Los procedimientos de Entrada/Salida son de la siguiente forma :

ReadLn (nombre);
WriteLn('Hola ',nombre);

Página 25 de 25

Longitud de una cadena
Las variables de tipo cadena pueden ocupar la máxima longitud definida, más un octeto que contiene la
longitud actual de la variable. Los caracteres que forman la cadena son numerados desde 1 hasta la longitud
de la cadena.
Ejemplo:

Var
nombre : string[10];
begin
nombre := 'Susana';
end.

Obsérvese que el primer byte no es el carácter '6' si no el número 6 en binario (0000 0110) y los últimos
bytes de la cadena hasta 10 (7-10) contienen datos aleatorios.

Una cadena en Turbo Pascal tiene dos longitudes :

1. Longitud física : Es la cantidad de memoria que ocupa realmente, está se establece en tiempo de

compilación y nunca cambia

2. Longitud lógica : Es el número de caracteres almacenados actualmente en la varible cadena. Este

dato puede cambiar durante la ejecución del programa.

Es posible acceder a posiciones individuales dentro de una variable cadena, mediante la utilización de
corchetes que dentro de ellos se especifíca el número indice dentro de la cadena a utilizar así para el ejemplo
anterior se tiene :

nombre[1] ==> 'S'
nombre[2] ==> 'u'
nombre[3] ==> 's'
nombre[4] ==> 'a'
nombre[5] ==> 'n'
nombre[6] ==> 'a'

Operaciones entre cadenas

Las operciones básicas entre cadenas son : asignación, comparación y concatenación. Es posible asignar
una cadena a otra cadena, incluso aunque sea de longitud física más pequeña en cuyo caso ocurriría un
truncamiento de la cadena.
Ejemplo:

Var
nombre : String[21];
.
.
.
nombre := 'Instituto Tecnológico de La Paz';

resultado

El
de
'Instituto Tecnológico'.

la

asignación

en

la

variable

nombre

será

la

cadena

Las comparaciones de las cadenas de caracteres se hacen según el orden de los caracteres en el código ASCII
y con los operadores de relación.
'0' < '1'

'A' < 'B'

'2' > '1'

'm' > 'l'

Página 28 de 28

Reglas de comparación de cadenas
Las dos cadenas se comparan de izquierda a derecha hasta que se encuentran dos caracteres diferentes. El
orden de las dos cadenas es el que corresponde al orden de los dos caracteres diferentes. Si las dos cadenas
son iguales pero una de ella es más corta que la otra, entonces la más corta es menor que la más larga.
Ejemplo :

'Alex' > 'Alas'
{puesto que 'e' > 'a'}
'ADAN' < 'adan'
{puesto que 'A' < 'a'}
'Damian' < 'Damiana'
{'Damian' tiene menos caracteres que 'Damiana'}

Otra operación básica es la concatenación. La concatenación es un proceso de combinar dos o más cadenas
en una sola cadena. El signo + se puede usar para concatenar cadenas ( al igual que la función concat ),
debiendo cuidarse que la longitud del resultado no sea mayor que 255.

Ejemplos :

'INSTITUTO '+'TECNOLOGICO'='INSTITUTO TECNOLOGICO'
'CONTAB'+'.'+'PAS'= 'CONTAB.PAS'

Se puede asignar el valor de una expresión de cadena a una variable cadena, por ejemplo :

fecha := 'lunes';
y utilizar la variable fecha en :
frase:='El próximo '+fecha+' inician las clases';

Si la longitud máxima de una cadena es excedida, se pierden los caracteres sobrantes a la derecha. Por
ejemplo, si fecha hubiera sido declarada del tipo string[7], después de la asignación contendría los siete
primeros caracteres de la izquierda (CENTENA).

PROCEDIMIENTOS Y FUNCIONES DE CADENA INTERNOS
Turbo Pascal incorpora las siguientes funciones y procedimientos para el tratamiento de cadenas.

Procedimientos y funciones de cadena
Procedimiento
Delete
Insert
Str
Val

Función
Concat
Copy
Length
Pos

Procedimiento Delete
Delete borra o elimina una subcadena de una cadena contenida en otra cadena de mayor longitud.
Formato :

Delete (s, posición, número)

Cadena original o fuente

S
Posición Expresión entera que indica la posición

del primer carácter a suprimir.

Número Cantidad de caracteres a suprimir.

Si posición es mayor que la longitud de la cadena, no se borra ningún carácter. Si número especifíca más
caracteres que los existentes desde la posición inicial hasta el final de la cadena, sólo se borran tantos
caracteres como estén en la cadena.

Página 29 de 28

Ejemplo :

Cad := 'Tecnológico'
Delete(cad,1,5)
Resulta la cadena 'lógico'

Procedimiento Insert
Insert inserta una subcadena en una cadena.
Formato :

Insert (cad1, s, posición)

cadena a insertar

cad1
s
posición carácter a partir del cual se inserta

cadena donde se inserta

Ejemplo:

cad:= 'México '
Insert (' lindo y querido',cad,7)
Resulta 'México lindo y querido'

Procedimiento Str
Este procedimiento efectúa la conversión de un valor númerico en una cadena.

Formato :

Ejemplos :

Str (valor,s)

Valor expresíon númerica
s

cadena

Numero := 235.55;
Str(Numero,cadena);
Write(cadena);
Resulta la cadena '2.355000000E+02'
Numero := 12345;
Str(Numero,cadena);
Write(cadena);
Resulta la cadena '12345'
Numero := 12345;
Str(Numero+1000:10,cadena);
Write(cadena);
Resulta la cadena '

13345'

Procedimiento Val
Este procedimiento convierte una cadena en variable númerica. Para que esta conversión sea efectiva, el
contenido de la cadena de caracteres debe corresponderse a las reglas de escritura de números: no debe de
existir ningún blanco en la primera o última posición.
Formato:

Val (S, variable, código)

cadena

S
Variable variable de tipo entero o real
código si la conversión ha podido ser
efectuada toma el valor cero; en
caso contrario contiene la primera
posición del primer carácter de la
cadena S que impide la conversión
y en ese caso variable no queda definida

Página 30 de 28

Ejemplo:

Var

: real;

: string[10];

cad
num1,codigo : integer;
num2
begin cad:='22.25';
Val(cad,num2,codigo);
if codigo=0 then
WriteLn(num2:2:2)
{Produce 22.25}
else
WriteLn(codigo);
cad:='12x45';
Val(cad,num1,codigo);
if codigo=0 then
WriteLn(num1)
else
WriteLn(codigo)
{Produce 3}

end.

Función Concat
Además del uso de '+' para la concatenación, Turbo Pascal tiene la función concat que permite concatenar
una secuencia de caracteres.
Formato:

S1,S2...cadenas o variables de

caracteres (expresión tipo cadena)

Concat (S1,S2,...,Sn)

Ejemplo :

Var
cad1,cad2 : string[20];
destino : string[50];
begin
cad1:='Hola como '; cad2:='Estas ';
destino:=Concat(cad1,cad2,', estoy bien')
end.

Esto produce una cadena destino igual a 'Hola como estas, estoy bien'

Función Copy
Esta función devuelve una cadena de caracteres (subcadena) extraída de una cadena.
Formato:

Copy(s,posición,número)

cadena (fuente)

s
posición primer carácter a extraer (tipo entero)
número total de caracteres a extraer (tipo entero)

Si posición es mayor que la longitud de S, se devuelve una cadena vacía; si número especifíca más caracteres
que los indicados desde posición, sólo se devuelve el resto de la cadena.
Ejemplo:

cad := 'Instituto Tecnológico de La Paz';
cad2 := Copy(cad,26,6);
Write(cad2);

Lo que produce la cadena 'La Paz' contenida en cad2.

Función Lenght (longitud)

Página 29 de 29

La función Lenght proporciona la longitud lógica de una cadena de caracteres y devuelve un valor entero.
Formato :

Ejemplo :

Length (s)

s expresión tipo cadena

Var
cad : string[20];
begin
cad:='Hola';
WriteLn(Length ('Hola como estas')); {devuelve el valor 15}
WriteLn(Length ('')); {devuelve cero (cadena vacía)}
WriteLn(Length (cad)); {devuelve el valor 4}
WriteLn(Ord(cad[0])) {devuelve el valor 4}
end.

Función Pos
Esta función permite determinar si una cadena está contenida en otra. En este caso, la función devuelve la
posición donde comienza la cadena buscada en la cadena fuente, si la cadena no existe, se devuelve el
resultado 0.
Formato :

Pos (cadena buscada, cadena fuente)

Ejemplo:

cad:= 'uno dos tres cuatro cinco seis';
WriteLn(Pos('dos',cad));
{Resulta 5 que es la posición de 'd'}
WriteLn(Pos('ocho',cad));
{Resulta 0 no existe la cadena 'ocho'}

Arreglos (array)

Un arreglo está formado por un número fijo de elementos contíguos de un mismo tipo. Al tipo se le llama
tipo base del arreglo. Los datos individuales se llaman elementos del arreglo.
Para definir un tipo estructurado arreglo, se debe especificar el tipo base y el número de elementos.

Un array se caracteríza por :

1. Almacenar los elementos del array en posiciones de memoria contínua
2. Tener un único nombre de variable que representa a todos los elementos, y éstos a su vez se

diferencían por un índice o subíndice.

3. Acceso directo o aleatorio a los el
  • Links de descarga
http://lwp-l.com/pdf13117

Comentarios de: 2.2 y 2.3 Datos Estructurados y Arreglos en 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