Академический Документы
Профессиональный Документы
Культура Документы
Ingeniera en Sistemas
ESTRUCTURAS SIMPLES...
LAS CADENAS
En la primera parte se estudi el concepto de tipo de datos carcter (char) y se defini un carcter como un
smbolo del juego de caracteres de la computadora. Una constante carcter se defini como cualquier carcter
entre separadores (apstrofo o dobles comillas).
Una cadena (string) de caracteres es un conjunto de caracteres -incluido el blanco- que se almacenan en un
rea contigua de la memoria. Pueden ser entradas o salidas al desde un terminal. La longitud de una cadena es
el nmero de caracteres que contiene. La cadena que no contiene caracter se denomina cadena vaca o nula, y
su longitud es cero; no se debe confundir con una cadena compuesta-slo de blancos ----espacios en blanco ya
que sta tendr como longitud el nmero de blancos de la misma.
Asignacin:
Si la variable NOMBRE se ha declarado como tipo cadena
Las declaraciones de
instrucciones estn realizadas
en Lenguaje Pascal
Entrada/Salida
La entrada/salida desde un terminal se puede realizar en modo carcter; para ello bastar asignar -a travs del
correspondiente dispositivo- una cadena de caracteres a una variable tipo cadena. As, por ejemplo, si A, B, C y
D se han declarado como variables tipo cadena:
var cadena: A, B, C, D.
read(A,B)
write(C;D)
1
clculo de la longitud,
comparacin,
concatenacin,
extraccin de subcadenas,
bsqueda de informacin
Longitud
La longitud de una cadena, como ya se ha comentado es el nmero de
caracteres de la cadena. As,
Don Quijote de la Mancha
LONGITUD
Operando: cadena
Tipo de resultado: entero
N = Length(S)
S = dato
Length(S) = 4
longitud (cadena)
Comparacin
La comparacin de cadenas (igualdad y desigualdad) es una operacin muy importante, sobre todo en la
clasificacin de datos tipo carcter, que se utiliza con mucha frecuencia en aplicaciones de proceso de datos
(clasificaciones de listas, tratamiento de textos, etc.).
Los criterios de comparacin se basan en el orden numrico del cdigo o juego de caracteres que admite la
computadora o el propio lenguaje de programacin. En el lenguaje algortmico se utiliza el cdigo ASCII como
cdigo numrico de referencia. As.
el carcter 'C
(cdigo 65)
(cdigo 67)
el carcter ' i
(codigo 105)
'EMILIO' =
EMILIO =
'EMILIO'
EMILIA
EMILIO
Desigualdad
Los criterios para comprobar la desigualdad de cadena utilizan normalmente los operadores de relacin <, <= ,
>=, <> o>< y se ajustan a una comparacin de carcteres correspondientes en ambas cadenas hasta conseguir
dos caracteres diferentes. De este modo, se pueden conseguir clasificaciones alfanumricas:
'GARCIA' < 'GOMEZ'
ya que las comparaciones sucesivas de caracteres son:
G-A-R-C-I-A
G-O-M-E-Z
G - G, A - O ...
una vez que se encuentra una desigualdad, no es preciso continuar; como se observa, las cadenas no tienen por
que tener la misma longitud para ser comparadas.
En las sucesivas comparaciones se puede apreciar una amplia gama de posibles casos.
LUIS
'ANA'
'TOMAS
'BARTOLO'
CARMONA
LUIS
<
<
<
<
>
>
'LUISITO'
'MARTA'
'LUIS'
'BARTOLOME'
'MADRID'
'LUIS'
verdad
verdad
falsa
verdad
falsa
verdad
Se puede observar de los casos anteriores que la presencia de cualquier carcter -incluso el blanco, se
considera mayor siempre que la ausencia. Por eso, 'LUIS es mayor que ' LUIS'.
Concatenacin
La concatenacin es la operacin de reunir varias cadenas de
caracteres en una sola, pero conservando el orden de los
caracteres de cada una de ellas. El smbolo que representa la
concatenacin vara de unos lenguajes a otros. Los, ms
utilizados son:
* , //, &, o
En nuestro libro utilizaremos + y, en ocasiones, Las cadenas
para concatenarse pueden ser constantes o variables.
'MIGUEL'
'DE'
CERVANTES'
'MIGUELDECERVANTES'
CONCATENACION
Junta dos cadenas, de extremo a extremo
en una nueva cadena
Operando: 2 cadenas
Tipo de resultado: cadena
S0 = a1a2a3...an
S1 = b1b2b3...bm
A alfabeto con ai A, para 1 i n
B alfabeto con bi A, para 1 i m
'DE
DE
'CERVANTES'
'CERVANTES'
Subcadena
Es posible realizar operaciones de concatenacin con subcadenas.
3
3.
4.
LOS ARREGLOS
Supongamos que nos enfrentamos a un problema como este: Una empresa que cuenta con 150 empleados, desea establecer una estadstica
sobre los salarios de sus empleados, y quiere saber cual es el salario promedio, y tambin cuantos de sus empleados gana entre $1250.00 y
$2500.00.
Si tomamos la decisin de tratar este tipo de problemas con datos simples, pronto nos percataramos del enorme desperdicio de tiempo,
almacenamiento y velocidad. Es por eso que para situaciones de este tipo la mejor solucin son los datos estructurados.
Un arreglo puede definirse como un grupo o una coleccin finita,
homognea y ordenada de elementos. Los arreglos pueden ser
de los siguientes tipos:
De una dimensin.
De dos dimensiones.
De tres o ms dimensiones.
donde :
A = Identificador nico del arreglo
i = Indice del elemento
li = Lmite inferior
w = Nmero de bytes tipo componente
ARREGLOS BIDIMENSIONALES
Este tipo de arreglos al igual que los anteriores es un tipo de dato estructurado, finito
ordenado y homogneo. El acceso a ellos tambin es en forma directa por medio de un par
de ndices.
Los arreglos bidimensionales se usan para representar datos que pueden verse como una
tabla con filas y columnas. La primera dimensin del arreglo representa las columnas, cada
elemento contiene un valor y cada dimensin representa una relacin
La representacin en memoria se realiza de dos formas :
Almacenamiento por columnas o
Almacenamiento por renglones.
Para determinar el nmero total de elementos en un arreglo
bidimensional usaremos las siguientes frmulas:
RANGO DE RENGLONES (R1) = Ls1 - Li1+1
RANGO DE COLUMNAS (R2) = Ls2 - Li2+1
No. TOTAL DE COMPONENTES = R1 * R2
la
Arreglos Multidimensionales
Este tambin es un tipo de dato estructurado, que est compuesto por n dimensiones.
Para hacer referencia a cada componente del arreglo es necesario utilizar n ndices, uno
para cada dimensin.
Arreglo
tridimensional
Para determinar el nmero de elementos en este tipo de arreglos se usan las siguientes
frmulas:
Para procesar los datos almacenados en un arreglo, tenemos que hacer referencia a cada
elemento individual
para que la referencia sea vlida, el valor del subndice debe estar entre 0 y uno menos
que el tamao declarado del arreglo (o el nmero de elementos del arreglo)
Un polinomio, p(x), es una funcin matemtica de la forma p(x) = a0 + a1x + a2x2 + + an1xn1
en que x es la variable del polinomio
a0, a1, a2, , an1 son coeficientes reales constantes
n1, en que n es un entero, es el grado del polinomio (an1 0)
Podemos representar un polinomio por su grado y por sus coeficientes; almacenamos los coeficientes
en un arreglo.
Una operacin tpica sobre polinomios es la evaluacin del polinomio para un determinado
valor de la variable x:
Por ejemplo si el valor de x = 3 para el polinomio Polin1 = x5 + 5x3 + 6x2 + 1, la evaluacin consiste
en reemplazar el valor de x por 3
Polin1 = 35 + 5.33 + 6.32 + 1
Los polinomios constituyen un caso especial en el estudio de listas ordenadas, especialmente con aquellos que utlizan para su
representacin arreglos unidimensionales.
Hemos visto la forma de escribir un polinomio:
+2
7
2m + 1
X4 + 10 x3 3x2 + 1
la representacin puede hacerse en las dos formas:
i) (4 , 1 , 10 , 3 , 0 , 1)
ii) (4 , 1 , 10 , 3 , 0 , 1)
En el peor caso, el esquema ii) requiere por lo menos el doble del almacenamiento que el esquema
i) (cuando el grado es n y todos los n+1 coeficientes son distintos de cero) Pero
1000
el esquema i) puede ser muy despilfarrador de espacio, como para X
+ 1.
Casi siempre se trabaja con el esquema ii)
-11
0
0
0
0
3
0
0
0
28
A(0)
A(1)
A(2)
A(3)
A(4)
A(5)
A(6)
A(7)
A(8)
0
-6
0
0
0
1
6
1
1
1
2
2
3
5
6
0
0
0
0
0
2
6
1
4
6
2
3
4
1
3
0
0
0
0
0
3
8
15
22
-15
11
3
-6
91
28
(i , j , valor)
Los registros
Un registro, en programacin, es un tipo de dato estructurado formado por la unin de varios
elementos bajo una misma estructura. Estos elementos pueden ser, o bien datos elementales
(entero, real, carcter,...), o bien otras estructuras de datos. A cada uno de esos elementos se le
llama campo.
Registros es un tipo de datos formado por una coleccin finita de elementos no necesariamente homogneos .
El acceso se realiza a travs de una referencia al nombre del registro seguido del campo especfico al que se
desea acceder y delimitado por un punto.
Nombre de Registro
REGISTRO Auto
codigo : entero
Campo
marca : cadena
Tipo de datos
precio : real
FIN_REGISTRO
Var: AUTOMOVILES : Auto
Marca
Corsa swing 1.4
Precio
58.600
DNI
Domicilio
Tipo cadena
Tipo entero
Tipo cadena
Declaracin en Pascal:
Type
Empleado = record
Nombre
DNI
Domicilio
Salario
End
Sueldo
Tipo real
: string[30]
:integer
:string[40]
:real
Escribir un programa en Pascal que almacene en un array de registros los nombres de los
alumnos, sus notas parciales y finales. Hallar la nota media y mostrar un mensaje de APTO si el
alumno supera o iguala la calificacin de 5 o NO APTO si no lo alcanza. Hacerlo para un nmero de 5
alumnos.
10
Escribir un programa en Pascal que almacene en un array de registros las caractersticas de cada
persona: nombre, sexo, edad, peso, color de pelo, color de piel, color de ojos, nacionalidad y telfono.
PROGRAM PERFIL;
Uses Crt;
Const numpersonas = 1; {Cambiando este valor lo podremos hacer para el numero de personas que deseemos}
Type caracteristicas = record
nombre2, nacionalidad2: String;
edad2: Integer;
sexo2, c_pelo2, c_ojos2: Char;
tf2: Longint;
{Creamos una fila con diferentes apartados}
end;
personas = Array[1..numpersonas] of caracteristicas;
13