SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
UNIVERSIDAD NACIONAL DE CÓRDOBA
ESCUELA SUPERIOR DE COMERCIO MANUEL BELGRANO
NIVEL TERCIARIO
ANALISTA DE SISTEMAS

ESTRUCTURA DE DATOS
Prof. MARIA DEL VALLE ARANDA
AÑO 2013
FU DAME TACIÓ
Desde la perspectiva del aprendizaje esta asignatura implica añadir nuevos niveles de
dificultad y complejidad a las ya complejas relaciones entre la estructura del conocimiento
y las estrategias de aprendizaje a desarrollar por los alumnos.
La resolución de problemas en este espacio es considerada desde una concepción
tecnológica, donde un problema se plantea combinando la lógica del conocimiento y la
aplicación de diferentes técnicas.
Desde un enfoque pedagógico, la incorporación de las estructuras de datos como modelos
matemáticos y lógicos en correspondencia con su aplicación, no sólo pone en juego los
esquemas de pensamiento de los alumnos, sino también representa un estímulo creativo, y
una valoración de la propia producción.
La integración de conocimientos y experiencia a través de la práctica facilitan una
comprensión más reflexiva y crítica de los contenidos curriculares, destacando el dominio
de los procesos que son necesarios para alcanzar nuevos conocimientos.

OBJETIVOS GE ERALES
• Desarrollar el razonamiento intuitivo y lógico.
• Valorar la información como fundamento en la toma de decisiones.
• Escoger las herramientas informáticas más convenientes para el desempeño de su
actividad.
• Generar estrategias personales de resolución de problemas.

OBJETIVOS ESPECÍFICOS
• Reconocer la organización elemental de los datos como medio para la obtención de
información.
• Reconocer las distintas estructuras de datos como medios de almacenamiento de
información.
• Desarrollar habilidades para seleccionar las estructuras de datos más adecuadas
teniendo en cuenta el contexto de funcionamiento de las mismas.
• Desarrollar una lógica para la resolución de problemas que se le planteen en la
aplicación de las estructuras de datos.

CO TE IDO

U IDAD I: Introducción. Organización elemental de los datos.
Dato. Campo. Registro. Tabla o Archivo.
Atributo. Entidad. Conjunto de Entidades.
Elementos simples. Grupos de Elementos.
Tipos de datos.
Tipos de registros.
Clave primaria.
Creación de índices.

U IDAD II: Estructura de Datos.
Concepto.
Arrays. Array Lineal. Array Bidimensional. Array multidimensional.
Listas Enlazadas. Punteros. Enlaces.
Árbol.
Pila. Cúspide.
Cola. Frente y final.
Grafo.

U IDAD III: Operaciones con Estructura de Datos
Recorrido.
Búsqueda.
Inserción.
Eliminación.
Modificación.
Ordenamiento.
Mezcla.

U IDAD IV: Algoritmos.
Complejidad y relación espacio-tiempo.
Algoritmos de búsqueda.
Algoritmos de ordenamiento.
Diseño.
Notación algorítmica.
Componentes.

U IDAD V: Cadenas.
Procesamiento de cadenas.
Terminología básica.
Almacenamiento de cadenas.
Operaciones con cadenas.

METODOLOGÍA DE E SEÑA ZA
El docente desarrollará los contenidos teóricos, para luego ser aplicados en las
ejercitaciones planteadas.
Los trabajos prácticos han sido formulados con la intención de que los conceptos teóricos
sean llevados al campo experimental, al de la resolución de los problemas. Se busca
enfatizar la formación práctica de los alumnos privilegiando el “saber - hacer”.
BIBLIOGRAFIA:
• Estructura de Datos, Seymour Lipschutz, Mc Graw Hill, 2001.
• Estructura de Datos y Organización de Archivos, Mary e. S. Loomis, Prentice-Hall,
2001.
• Estructura de Datos y Algoritmos, Roberto Hernández, Raquel Dormido, Juan Carlos
Lázaro y S. Ros, Prentice-Hall, 2001.
• Estructura de Datos, Luis Joyanes Aguilar, Ignacio Zahonero Martínez, Mc Graw-Hill,
2007.
• Notas de Cátedra con ejercitaciones prácticas, versión 2013, elaborada por María del
Valle Aranda.
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD I:
Introducción. Organización elemental de los datos.

Introducción:
Los datos son los que dan origen a la información. Por lo tanto los datos son la materia
prima de la que deriva la información. La información esta compuesta por datos que se han
recopilado y procesado de una forma significativa.

En nuestras experiencias diarias nos enfrentamos rutinariamente a ambos conceptos,
datos e información. Usamos los datos para producir información que nos ayudará a tomar
decisiones. Por ejemplo, al levantarnos por la mañana recopilamos dos unidades de datos: vemos
la hora y luego recordamos la hora a la que comienza nuestra actividad. Sustraemos después la
hora actual de la hora de inicio de nuestra actividad. Este cálculo mental nos da la información
de cuánto tiempo debemos emplear para prepararnos e irnos. Basándonos en esta información
tomamos una decisión: apresurarnos, o relajarnos y tomar todo con calma.

Producimos información a través de datos para ayudarnos a tomar decisiones en miles
de situaciones cada día.

Organización Elemental de los datos:
Dato. Campo. Registro. Archivo.

En el siguiente nivel de jerarquía se combinan los caracteres para representar un
elemento dato. El elemento dato, a veces mal llamado campo por ser este quien lo contiene, es
la unidad lógica más pequeña en la representación de datos. Algunos ejemplos pueden ser el
Número de Legajo del Empleado, el Nombre y el Estado Civil. Luego, los elementos datos
relacionados se agrupan para formar los registros lógicos, o simplemente registros. Por
ejemplo el Número de Legajo del Empleado, el Nombre y el Estado Civil están agrupados para
formar el registro del empleado.

En el nivel siguiente nivel de la jerarquía los registros que tienen el mismo elemento
dato están combinados para formar un archivo. Por ejemplo el archivo contiene el Número de
Legajo, el Nombre y el Estado Civil de todos los empleados de la empresa.

Realizado por María del Valle Aranda

pág. 5
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

1234

Daniel

Casado

1245

Mariela

Casada

1253

Raúl

Soltero

Registro
lógico

1253

Raúl

Soltero

Campo
(dato)

1253

Archivo

Atributo. Entidad. Conjunto de Entidades.

Como veíamos anteriormente, los datos se organizan jerárquicamente en campos,
registros y archivos. Para hacer estos términos más precisos, introduciremos una terminología
adicional.
Una entidad es algo que posee ciertos atributos o propiedades a los cuales se les
puede asignar valores. Estos valores pueden ser numéricos o no. Por ejemplo, los siguientes son
posibles atributos de la entidad "empleado de la empresa", con los correspondientes valores:

Atributos:

Nombre

Edad

Sexo

DNI

Valores:

Juan García

34

M

18.457.987

Entidades con atributos iguales (por ejemplo, todos los empleados de la empresa)
forman un conjunto de entidades. Cada atributo de un conjunto de entidades tiene un rango de
valores, que es el conjunto de valores posibles que pueden asignársele a ese atributo.

El término información a veces se usa al referirse a datos con atributos
determinados. La forma en que los datos se organizan en la jerarquía: campos, registros y
archivos refleja la relación entre atributos, entidades y conjuntos de entidades. Así un campo
es una unidad elemental de información que representa un atributo de una entidad, un registro
es una colección de campos de una entidad y un archivo es una colección de registros de las
entidades contenidas en un conjunto de entidades.

Elementos simples. Grupo de elementos.

La palabra datos hace referencia a valores simples o conjuntos de valores.
Denominamos elemento a una unidad básica de valores. A aquellos elementos que pueden
dividirse en otros reciben el nombre de grupo de elementos. Por el contrario, los no
subdivisibles reciben el nombre de elementos simples. Por ejemplo el nombre de un empleado
Realizado por María del Valle Aranda
pág. 6
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

puede ser subdividido en tres subunidades: nombre, primer apellido y segundo apellido, pero el
número de documento debe ser tratado como una unidad simple.

Tipos de Datos:

Los diferentes lenguajes de programación como así también los sistemas encargados
de administrar y manipular datos, coinciden en utilizar los siguientes tipos de datos:
Texto: es el más común, también denominados carácter, son utilizados para el
almacenamiento de caracteres alfanuméricos (letras, números, símbolos).
Numérico: Se puede introducir números enteros o fraccionarios.
Lógico: sólo pueden contener el valor verdadero o falso. El valor 1 representa
verdadero y el valor 0 falso.

Tipos de Registros:

Los registros pueden clasificarse por su longitud. Un archivo puede tener registros
de longitud fija o variable. En los registros de longitud fija, todos ellos contienen los mismos
elementos con la misma cantidad de espacio asignado a cada uno. En los registros de longitud
variable los registros del archivo pueden tener distintas longitudes. Por ejemplo, los registros
de estudiantes normalmente tienen longitud variable, puesto que estudiantes diferentes
pueden cursar distintas materias. En general los registros de longitud variable tienen
longitudes mínimas y máximas.

Clave primaria:

Cada registro de un archivo puede contener muchos campos elementales, aunque el
valor de un determinado campo puede determinar unívocamente el registro dentro del archivo.
Este campo K recibe el nombre de clave primaria y los valores k1, k2,... de dichos campos
reciben el nombre de claves o valores de clave.

Por ejemplo supongamos que un vendedor de automóviles lleva un archivo de inventario
donde cada campo del mismo contiene los siguientes datos:

Número de Serie

Tipo

Modelo

Precio

Accesorios

El campo Número de Serie puede servir como clave primaria para el archivo, puesto
que cada automóvil tiene un único número de serie.

Realizado por María del Valle Aranda

pág. 7
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Supongamos que un Club mantiene un archivo de socios, donde cada registro contiene
los siguientes datos:

Nombre

Dirección

Teléfono

Cuotas que debe

Aunque hay cuatro unidades de dato, nombre y dirección pueden ser grupos de
unidades. Aquí el nombre es una clave primaria. Nótese que la dirección y el teléfono no sirven
como clave primaria, puesto que algunos socios pueden pertenecer a la misma familia y tener la
misma dirección y teléfono.

Realizado por María del Valle Aranda

pág. 8
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD I: TRABAJOS PRÁCTICOS
Los trabajos prácticos han sido formulados con la intención de que los conceptos
teóricos sean llevados al campo experimental, al de la resolución de los problemas. Se busca
enfatizar la formación práctica de los alumnos privilegiando el “saber - hacer”.

Realizado por María del Valle Aranda

pág. 9
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Objetivo:

A fin de realizar un reconocimiento de la organización elemental de los datos: datos,
campos, registros, archivos, atributos, entidades, conjunto de entidades, tipos de datos, tipos
de registros, claves primarias y mediante la utilización de herramientas informáticas tales
como la Planilla de Cálculos Excel o el Sistema de Gestión de Base de Datos Access,
desarrollaremos los trabajos prácticos N° 1, 2, 3, 4, 5 y 6.

Realizado por María del Valle Aranda

pág. 10
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 1

1.

Mediante la Planilla de Cálculos Excel, genere un archivo con los siguientes registros,
validando los datos de la tercera y cuarta columna. Guárdelo en su disco y carpeta de
trabajo.
Gallardo, Laura
Albareda, Juan
Bastide, José L.
Socca, Diego
González, Fabiana
Tissera, Florencia
Alonso, Javier
Dahabar, Juan
Martínez, Mónica
Benavídez, Claudia
Cáceres, Santiago
Dalmacio, Joaquín
Villada, Susana
Echauri, Lorena
Montoya, Lorenzo

Catamarca 1176-BºGral.Paz
Sarachaga 123-BºAlta Cba.
9 de Julio 2987-BºAlto Alberdi
Independencia 1165-BºNva.Cba.
Ferreyra 1165-BºP.V.Sarsfield
Aconcagua 213-BºPque.Capital
Lamarca 3212-BºUrca
La Cordillera 3399-BºCentenario
Av.Colón 31-BºCentro
Av.Sabattini 432-BºMaipú
Entre Ríos 1876-BºSan Vicente
Dean Funes 1234-BºAlberdi
Neuquén 678-BºProvidencia
Juan B.Justo 3645-BºAyacucho
Manuel Reyna 654-BºCerveceros

F
M
M
M
F
F
M
M
F
F
M
M
F
F
M

17
16
17
17
16
17
16
17
16
17
17
16
16
17
17

49
65
70
72
53
60
75
59
69
47
62
82
54
68
60

1,52
1,69
1,82
1,85
1,63
1,70
1,72
1,63
1,72
1,50
1,64
1,75
1,60
1,72
1,60

2. Asígnele a cada conjunto de entidades el atributo correspondiente.
3. Genere con los datos anteriores un nuevo archivo, desagrupando aquellos atributos
conformados por grupos de elementos. Guárdelo en su disco y en su carpeta de trabajo.
4. Indique cuales son los campos que conforman este nuevo archivo.
5. Defina para cada archivo la clave primaria.
6. Con la clave definida para cada archivo realice un ordenamiento de los registros que los
conforman.
7. En el primero de los archivos aplique filtro avanzado para separar los registros
considerando el Sexo.
8. En el otro archivo aplique filtro avanzado para separar los registros teniendo en cuenta la
Edad.
9. Guarde las modificaciones realizadas sobre ambos archivos.

Realizado por María del Valle Aranda

pág. 11
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 2

1. Crear una Base de Datos:
a) Ejecute Access.
b) Seleccione la opción Base de datos en blanco. Pulse el botón Aceptar.
c) El cuadro Archivo nueva base de datos que aparece en pantalla, nos permite seleccionar
la unidad de disco en la cual queremos guardar nuestra base de datos y el nombre que
queremos asignarle a la misma. Elija Guardar en: su disco y carpeta de trabajo y como
nombre de archivo coloque VIDEO.
d) Pulse el botón Crear. En su pantalla aparecerá la ventana de Base de datos.
2. Creación de Tablas:
En este punto va a crear la primera tabla de la base de datos VIDEO.
a) Pulse sobre el botón Nuevo. En su pantalla aparecerá la ventana Nueva Tabla.
b) Seleccione la opción Vista Diseño y pulse el botón Aceptar.
3. Definición de los campos:
a) Sitúe el cursor en la primera fila de la columna Nombre de campo.
b) Teclee Código de Socio. Pulse la tecla Tab para pasar a la columna Tipo de Datos.
c) Elija Tipo de dato, Numérico. Pulse la tecla Tab para pasar a la columna Descripción.
Teclee Código de socio.
d) Continúe cargando los siguientes campos:
Nombre de campo
Nombre
Apellido
DNI
Domicilio
Ciudad
Código Postal
Teléfono
Observaciones

Tipo de dato
Texto
Texto
Numérico
Texto
Texto
Numérico
Texto
Memo

Descripción
Nombre del cliente
Apellido del cliente
D.N.I del cliente
Dirección del cliente
Ciudad donde reside
Teléfono del cliente
Otros datos de interés.

4. Propiedades de los campos:
Utilizando el Mouse, sitúese en el campo denominado Código de Socio. Observe el cuadro de
Propiedades del campo situada en la parte inferior izquierda de la pantalla. Coloque las
siguientes propiedades a los campos.
Nombre de
campo
Código de
Socio
Nombre
Apellido
DNI
Domicilio
Ciudad
Código Postal
Teléfono
Observaciones

Tamaño

Formato

Entero
Largo
20
30
Entero
Largo
30
20
Entero
largo
20

Estándar

Estándar

Número
General

Realizado por María del Valle Aranda

Lugares
Título
Decimales
0
Código

Requerido

Indexado

sí

si (sin dup.)

0

Nombre
Apellido
D.N.I.

sí
sí
sí

no
si (con dup.)
si (sin dup.)

0

Dirección
Ciudad
Código Postal

sí
no
no

no
no
no

Teléfono
no
Otros datos de Interés. no

no
no

pág. 12
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

5. Clave principal:
Seleccione el campo Código de Socio. Luego desde la barra de herramientas elija el icono
Clave Principal y presione sobre él, o en el menú Edición seleccione la opción Clave Principal.
6. Guarde la tabla con el nombre Socios. Cierre la Aplicación.
7. Modificar el Diseño de una tabla:
a)
b)
c)
d)

Seleccione la Tabla Socios y presione sobre el botón Diseño.
Ubique el campo Código Postal. En Tipo de campo, cámbielo a Texto.
Modifique las siguientes Propiedades: Tamaño 8.
Guarde las modificaciones realizadas, cierre la tabla y salga de la aplicación.

Realizado por María del Valle Aranda

pág. 13
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 3

1. Añadir registros a una Tabla:
a) Ejecute Access.
b) Pulse sobre la opción Abrir una base de datos Existente. y seleccione la base de datos
VIDEO de la lista de archivos. Presione el botón Abrir
c) Seleccione la tabla socios y presione el botón Abrir.
d) Ubíquese en el campo Código de socio y cargue los siguientes registros:

Código
Socio
10008
10001

Nombre
Daniela
José

Apellido
Castillo
Juncos

DNI
21.987.987
5.980.567

Domicilio

Ciudad

Código
Postal
Betania 234 Córdoba 5009
Sucre 345
Córdoba 5000

Teléfono

Observaciones

4236587
4879854

e) Guarde la tabla y ciérrela.
f) Cierre la aplicación.
2. Resuelva el Práctico Nº 4.
3. Seleccione el Formulario SOCIOS y ábralo. Utilizando el mismo termine de cargar los datos
de la tabla VIDEO.
Código
Socio
10014

Nombre

Apellido

DNI

Emilia

Martínez

18.089.567

10005

Diego

Perez

25.456.967

10012

Mónica

Ruiz

19.777.909

10002
10004

Ana
Santiago

Mercado
Sánchez

4.678.987
13.567.789

10016

Carlos

Ferrero

8.098.987

10000
10015

Barrios
Ferreyra

7.980.980
22.984.345

10009

Juan
Juan
Alberto
Lorena

Parnisa

13.984.098

10013

Mario

Odone

14.980.065

10018

Ana María Garay

17.985.456

10006

Roberto

Meratto

23.345.678

10010

María

Prado

15.677.877

10007
10019

Luis
Rodrigo

Castro
García

14.567.890
13.765.679

10003

Laura

Suarez

12.345.678

10011
10017

Sandra
Estela

Paez
Gómez

16.987.098
9.987.098

Domicilio

Código
Postal
San Martín Córdoba 5000
908
Sarmiento
Córdoba 5001
345
Castro
Barros 367
Salta 56
Mendoza 34
4º B
Coronel
Olmedo 896
Colón 234
Tablada 34
Mariano
Larra 234
Mariano
Moreno 456
Tucumán
65
Dean Funes
678
Las
Palmeras
45
Lafinur 56
Entre Ríos
67
9 de Julio
567 2º A
Maipú 190
Martín
Coronado
345

Ciudad

Teléfono

Observaciones

4908765
4567090

Córdoba 5009

4223677

Córdoba 5001
Córdoba 5000
Córdoba 5009

4098723
035434879892
4876500

Córdoba 5000
Córdoba 5000

4567898
4667565

Córdoba 5009

4239800

Córdoba 5000

4870978

Córdoba 5000

4662443

Córdoba 5000

4229856

Córdoba 5009

400866

Córdoba 5009
Córdoba 5000

4879809
4098766

Córdoba 5000

4986543

Córdoba 5000
Córdoba 5009

Suele devolver
las fuera de
término

4556890
4321212

Buena clienta

Todas las
semanas lleva 2
películas

Buena Clienta

4. Cierre el formulario y la aplicación.

Realizado por María del Valle Aranda

pág. 14
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 4

1. Formulario.
a)
b)
c)
d)
e)

f)
g)
h)
i)
j)

k)
l)

Abra la base de datos VIDEO.
Seleccione la pestaña Formulario. Pulse el botón Nuevo.
Elija la opción Asistente para formularios.
Seleccione la Tabla Socios. Presione sobre el botón Aceptar.
Seleccione haciendo doble clic sobre los mismos, los campos: Código de Socio, Nombre,
Apellido, DNI, Domicilio, Ciudad, Código Postal, Teléfono, Observaciones. Pulse el botón
Siguiente.
Elija la opción En Columnas y Pulse el botón Siguiente.
Seleccione un estilo y pulse el botón Siguiente.
Coloque como título SOCIOS y pulse el botón Terminar.
Maximice la ventana del formulario. Verifique que esté seleccionado el modo Vista
Diseño.
Si fuera necesario, aumente la sección del encabezado, para ello ubique el puntero del
Mouse en la línea que separa el Encabezado del formulario de la sección Detalle, el
puntero se transformará en una doble flecha arrastre el mouse hasta conseguir el ancho
deseado. Utilizando el icono Etiqueta, de la barra Cuadro de herramientas, coloque como
Encabezado de Formulario su apellido y nombre y como Pié de Formulario la fecha del
día.
Guarde el Formulario y cierre el mismo.
Presione el botón Abrir y chequee todos los registros. Cierre nuevamente el Formulario.

2. Continúe con la resolución del Trabajo Práctico N°3, punto 3).

Realizado por María del Valle Aranda

pág. 15
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 5

1.

Ejecute Access. Continuaremos trabajando con el Sistema de Gestión de Base de Datos,
generado en el Trabajo Práctico Nº2.

2. Pulse sobre la opción Abrir una base de datos Existente y seleccione la base de datos
VIDEO de la lista de archivos. Presione el botón Abrir.
3. En la ventana Base de datos, en la Pestaña Tabla, presione el botón Nuevo.
4. Cree las siguientes tablas. Defina Tipo de campos, propiedades y clave principal para las
mismas, teniendo en cuenta los datos que contendrán.
5. Genere para cada una de ellas un formulario, y desde allí cargue los datos.

Tabla TEMA
Código de
tema
1
2
3
4
5
6
7
8
9
10
11
12

Tema
Suspenso
Terror
Bélica
Oeste
Comedia
Musical
Drama
Ciencia-Ficción
Policial
Histórica
Aventuras
Erótica

6. Guarde la Tabla con el nombre TEMA. Cargue los datos mediante el Formulario.
7. Utilizando el mismo procedimiento anterior cree las tablas PELÍCULAS y ALQUILER.

Tabla PELÍCULAS
Código
Título
de
Película
1
De Aquí a la
eternidad
2
Superman
3

Sed de Mal

4

J.K.F

5

Uno, Dos,
Tres
El Mago de
Oz
Un
Horizonte
Lejano
Misión
Explosiva
El Color
Púrpura

6
7

9
10

Intérprete 1 Intérprete 2

Director

Burt
Lancaster
Christopher
Reeve
Charton
Heston
Kevin Costner

Montgomery
Fred
Clif
Zinnemann
Margot Kidder Richard
Donner
Janet Leigh
Orson
Welles
Sissi Spacek Oliver Stone

James
cagney
Judy Garland

Horst Bucholz Billy Wilder

Tom Cruise

Frank Morgan Victor
Fleming
Nicole
Ron
Kidman
Howard

Tom
Erika Eleniak
Berenger
Danny Glover Whoopi
Goldberg

Realizado por María del Valle Aranda

Dennis
Hopper
Steven
Spielberg

Productora

Warner
Bros
Universal

Código
Año
Durade
producción
tema
ción
7
1965
130
8

1978

137

9

1965

110

10

1991

189

5

1960

95

Universal

6

1939

94

Paramount
Pictures

7

1992

134

Paramount
Pictures
Warner
Bros

5

1993

97

8

1985

148

Universal
Warner
Brose
United Artist

pág. 16
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Tabla ALQUILER:
Código de
Alquiler
1101
1102
1103
1107
1112
1117
1118
1122
1124

Código de
Socio
10000
10009
10011
10002
10005
10000
10013
10008
10008

Realizado por María del Valle Aranda

Código de
película
4
1
5
9
10
2
7
7
1

Fecha de
Alquiler
10/02/13
20/02/13
05/02/13
30/01/13
24/02/13
06/02/13
01/02/13
26/02/13
27/02/13

Fecha de
devolución
12/02/13
22/02/13
08/02/13
04/02/13
26/02/13
10/02/13
03/02/13
28/02/13
01/03/13

Devuelto
Sí
Sí
Sí
Sí
Sí
Sí
Sí
Sí
No

pág. 17
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 6

1. Realice la siguiente consulta:
CONSULTA1 (tabla PELÍCULAS)
a)
b)
c)
d)
e)
f)
g)

h)
i)
j)
k)

Abra la base de datos VIDEO.
Seleccione la pestaña Consultas.
Haga Clic en el botón Nuevo.
Elija la opción Vista Diseño.
La primera opción que aparece nos pregunta que tabla vamos a utilizar en la Consulta,
en este caso seleccione PELÍCULAS y pulse el botón agregar.
Pulse el botón Cerrar para indicarle a Access que la consulta sólo se compone de una
tabla.
En la parte Inferior de la ventana, en el registro Campo, elija en la primera columna,
Código de Película, en la segunda, Título, en la tercera, Director y en la cuarta,
Productora.
En el registro Criterios, ubíquese en la columna Productora y tipee Universal.
En el registro Mostrar, verifique que todos los casilleros estén tildados
Guarde la consulta con el nombre de CONSULTA1. Ciérrela.
Para visualizar el resultado de la Consulta, presione sobre el botón Abrir. Cierre
nuevamente la Consulta

2. Realice las siguientes consultas, tenga en cuenta los Criterios a utilizar, de acuerdo a los
resultados que se muestran a continuación.
CONSULTA2 (tabla SOCIOS).
RESULTADO:

Código
10003
10004

Nombre
Laura
Santiago

Apellido
Suarez
Sánchez

Domicilio
9 de Julio 567 2º A
Mendoza 34 4º B

Teléfono
4986543
03543-4879892

Guarde la consulta como CONSULTA2

CONSULTA3 (tabla ALQUILER , PELÍCULAS y SOCIOS).
RESULTADO:
Código de
Socio
10008

Apellido
Socio
Castillo

Nombre
Socio
Daniela

10008

Castillo

Daniela

Código de
película
7
1

Título

Devuelto

Un Horizonte
Lejano
De Aquí a la
eternidad

Sí
No

Guarde la consulta como CONSULTA3.

Realizado por María del Valle Aranda

pág. 18
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD II: Estructura de Datos

Estructura de Datos
Los datos pueden organizarse de muchas formas diferentes; el modelo matemático o
lógico de una organización particular de datos recibe el nombre de estructura de datos. La
elección de un modelo de datos en particular, depende de dos cuestiones. Primero, debe ser lo
suficientemente complejo para mostrarnos la relación entre los datos y lo que representan y
por el contrario, la estructura debe ser lo suficientemente simple para que los datos puedan
ser procesados de forma eficiente cuando sea preciso.

Dentro de las estructuras de datos posibles encontramos:

Arrays
La estructura de datos más simple es el array lineal (o unidimensional). Un array
lineal es una lista de un número finito de datos simples, referenciados por medio de un
conjunto de n números consecutivos, normalmente 1, 2, 3,...., n. Si designamos el array con la
letra A, los elementos de A los denotamos por medio de la notación subindicada

a1, a2, a3,....., an

o a través de notación parentizada

A(1), A(2), A(3),....., A(n)

o por corchetes

A[1], A[2], A[3],....., A[n]

donde el número n en A[n] recibe el nombre de índice y A[n] el de variable subindicada.

Comentario: las notaciones parentizadas o con corchetes son las que se utilizan para
computadoras ya que los lenguajes de programación no suelen permitir letras minúsculas con
subíndices.

Realizado por María del Valle Aranda

pág. 19
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Array Lineal. Ejemplo:

El array lineal ESTUDIANTES consta de los nombres de siete estudiantes (Figura 1).
Aquí ESTUDIANTE 1 representa a Juan Arnau, ESTUDIANTE 2 a Federico Bodo, y así
sucesivamente.

1
2
3
4
5
6
7

ESTUDIANTE
Juan Arnau
Federico Bodo
Gastón Gutiérrez
Cecilia Luna
Gabriela Pignata
José Silva
Ricardo Villegas
Figura 1

Los arrays lineales reciben el nombre de arrays unidimensionales debido a que cada
elemento del mismo se referencia a través de un solo índice. Un array bidimensional es una
colección de datos pertenecientes a una misma entidad, donde cada elemento se referencia
por dos índices (tales arrays reciben el nombre de matrices en matemáticas y de tablas en
aplicaciones comerciales). De forma análoga se definen los arrays multidimensionales.

Array Bidimensional. Ejemplo:

Una cadena de 7 Sucursales, compuestas por 3 Depósitos cada una, puede
representar sus ventas mensuales, como se muestra en la Figura 2. Estos datos pueden
almacenarse en una computadora, utilizando un array bidimensional en el que el primer índice
representa una Sucursal y el segundo un Depósito. Si elegimos VENTAS como nombre para el
array , tendremos que:

Sucursal
VENTAS[1, 1] =
VENTAS[1, 2] =
VENTAS[1, 3] =
.
.
.
.
VENTAS[7, 3] =

Depósito
111500
113200
110700

117632

Decimos que el tamaño del array es de 7 x 3, puesto que contiene 7 filas
(horizontales) y 3 columnas (verticales).

Realizado por María del Valle Aranda

pág. 20
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Depósito

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

1

2

3

Sucursal
1
2
3
4
5
6
7

111500
125750
117170
18970
127547
131131
114287

113200
121754
118340
112760
125876
127541
116784

110700
132230
115730
17760
113765
120787
117632

Figura 2

Listas enlazadas
Nos introduciremos en el tema mediante un ejemplo. Supongamos que un
concesionario de automóviles mantiene un archivo donde cada registro contiene el nombre de
un Cliente y su correspondiente Vendedor, como se muestra a continuación:

1
2
3
4
5
6
7
8
9

Cliente
Antonietti
Brizuela
Carreño
Dávila
Fernández
Martínez
Pedrotti
Sánchez
Vilches
Figura 3

Vendedor
Lozada
Venturi
Palacios
Lozada
Venturi
Lozada
Palacios
Venturi
Lozada

Claramente este archivo puede ser almacenado en la computadora por medio de una
tabla compuesta por dos columnas con nueve nombres cada una. Sin embargo esta puede no ser
la forma más útil de almacenar los datos (Figura 3).

Otra forma de almacenar los datos es mediante dos arrays separados. En uno se
podrían almacenar los nombres de los clientes, junto con una entrada llamada puntero que nos
indicaría la localización del Vendedor correspondiente, y estos estarían almacenados en el
segundo array. La estructura descripta se muestra en la Figura 4, donde algunos punteros son
representados por una flecha que tiene su origen en el campo puntero del primer array y el
destino en el Vendedor asociado. En la práctica, el uso de un entero como puntero utiliza menos
espacio que un nombre, por lo tanto esta representación economiza espacio, sobre todo si cada
Vendedor tiene cientos de Clientes.

Realizado por María del Valle Aranda

pág. 21
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Cliente
Antonietti
Brizuela
Carreño
Dávila
Fernández
Martínez
Pedrotti
Sánchez
Vilches

1
2
3
4
5
6
7
8
9

Puntero
1
3
2
1
3
1
2
3
1
Figura 4

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Vendedor
Lozada
Palacios
Venturi

1
2
3

Supongamos que la Gerencia de Comercialización necesita una lista de Clientes de un
Vendedor determinado. Usando la representación de datos de la Figura 4, habrá que buscar en
toda la lista de Clientes. Una forma de simplificar la búsqueda es utilizar los punteros de otra
forma; cada Vendedor puede tener un conjunto de punteros que dan la posición de sus Clientes,
como se muestra en la Figura 5. La principal desventaja de esta representación es que cada
Vendedor puede tener muchos punteros y que el conjunto de estos cambiará cuando
agreguemos o eliminemos Clientes.

1
2
3

Vendedor
Lozada
Palacios
Venturi

Puntero
1, 4, 6, 9
3, 7
2, 5, 8

Figura 5

Otra forma de almacenar los datos de la Figura 3, se muestra a continuación (Figura
6). Aquí cada Vendedor posee un puntero que apunta a su primer Cliente. En la lista Cliente el
campo enlace apunta al siguiente Cliente del mismo Vendedor, indicando el último Cliente
asociado con un 0. Esto queda reflejado en la Figura 6, para el Vendedor Lozada. Usando esta
representación es más fácil obtener la lista de Clientes para un Vendedor determinado, e
insertar y eliminar Clientes.

Realizado por María del Valle Aranda

pág. 22
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

1
2
3
4
5
6
7
8
9

Cliente
Antonietti
Brizuela
Carreño
Dávila
Fernández
Martínez
Pedrotti
Sánchez
Vilches

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Enlace
4
5
7
6
8
9
0
0
0

Vendedor
Lozada
Palacios
Venturi

Puntero
1
3
2

1
2
3

Figura 6

Las formas anteriores de representación son ejemplos de Listas enlazadas. Aunque
los términos puntero y enlace son usados indistintamente, trataremos de utilizar el término
puntero cuando un elemento de una lista apunta a otro de una lista distinta y el término enlace
cuando lo hace hacia otro, pero de la misma lista.

Árboles
Los datos presentan frecuentemente relaciones de jerarquía entre ellos. Las
estructuras de datos que refleja esta relación recibe el nombre de grafo en árbol o
simplemente árbol. Indicaremos a continuación algunas de sus propiedades básicas mediante
dos ejemplos.

Ejemplo de Estructura de Registro

Mientras que un archivo puede representarse mediante uno o más arrays, un registro
que contiene grupos de elementos o elementos simples, puede describirse mejor mediante una
estructura de árbol.

Un registro perteneciente a la entidad Empleado, puede contener los siguientes
atributos ó campos:

Legajo,

Nombre,

Dirección,

Edad,

Sueldo,

Subordinados

Sin embargo, Nombre puede ser un grupo de elementos compuesto por Apellido y
Nombre de pila. También Dirección puede estar conformada por los ítems Calle, Número, Zona
donde a su vez ésta última puede estar compuesta por los subítems Barrio, Localidad,

Realizado por María del Valle Aranda

pág. 23
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Provincia, Código Postal. Esta estructura jerárquica se muestra en la Figura 7a. Otra forma de
representar la estructura de árbol es mediante niveles como se muestra en la Figura 7b.

Empleado

Legajo

Nombre

Apellido

Dirección

Nombre de Pila

Calle

Número

Barrio

Edad

Sueldo

Subordinados

Zona

Localidad

Provincia

Código

Figura 7a

01 Empleado
02 Legajo
02 Nombre
03 Apellido
03 Nombre de pila
02 Dirección
03 Calle
03 Número
03 Zona
04 Barrio
04 Localidad
04 Provincia
04 Código Postal
02 Edad
02 Sueldo
02 Subordinados

Figura 7b

Ejemplo de Expresiones Algebraicas

Sea la expresión algebraica:

(2x + y) (a - 7b)3

Usando la flecha vertical ( ) para expresar la exponenciación y el asterisco (*) para
la multiplicación, podemos representar esta expresión mediante el árbol de la Figura 8.
Observe que el orden en que deben realizarse las operaciones quedan reflejadas en el
diagrama: la exponenciación debe realizarse después de la resta, y la multiplicación situada en
la cúspide del árbol debe ejecutarse al último.
Realizado por María del Valle Aranda

pág. 24
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

*

+

*

2

y

-

x

a

3

*
7

b

Figura 8

Pila
Una pila, también denominada sistema último-dentro primero-fuera (LIFO), es una
lista lineal de registros, en la cual las inserciones y extracciones tienen lugar sólo por un
extremo llamado cúspide. Esta estructura es similar en su operación a una pila de platos como
los de la Figura 9. En ella los platos son siempre agregados o retirados por la cúspide de la
misma.

cúspide

Figura 9

Realizado por María del Valle Aranda

pág. 25
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Cola
Una cola, también denominada sistema primero-dentro primero-fuera (FIFO), es una
lista lineal en la cual las extracciones se realizan siempre por un extremo, llamado frente y las
inserciones por el extremo contrario llamado final de la lista. Esta estructura opera de la
misma forma que un grupo de personas esperando el ómnibus, la primera persona en la cola es
la primera en subir al ómnibus.
Parada
de
ómnibus

Grafos
Los datos contienen, en algunos casos, relaciones entre ellos que no

son

necesariamente jerárquicas. Por ejemplo supongamos que una empresa aérea realiza vuelos
sólo entre las ciudades conectadas por líneas. La estructura de datos que refleja esta relación
recibe el nombre de grafo.

•
•

Jujuy

Salta
•
•

•

Rosario

Córdoba

Buenos Aires
•

Mendoza

Nota:
Se suelen usar muchos nombres al referirse a los elementos de una estructura de
datos, algunos de ellos son: elemento, ítem, registro, nodo y objeto. El nombre que se utiliza
depende del tipo de estructura, del contexto en el que se usa esa estructura y de quién la
utiliza.

Realizado por María del Valle Aranda

pág. 26
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD II: TRABAJOS PRÁCTICOS

Objetivo:

Definir la estructura de datos más adecuada (arrays, listas enlazadas, árboles, colas,
pilas, grafos) para el almacenamiento de los datos que se dan a continuación. Resuelva
los Trabajos Prácticos N° 7, 8, 9 y 10.

Realizado por María del Valle Aranda

pág. 27
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 7

1. Dados los siguientes datos, que representan CANTIDAD de ALUMNOS por Curso y por
Sección, realice mediante la Planilla de Cálculos el almacenamiento de los mismos. Indique la
estructura de datos utilizada.

[8, 8] =35

[3, 7] =31

[2, 4] =35

[7, 2] =34

[8, 2] =34

[8, 5] =35

[2, 3] =32

[5, 2] =34

[6, 1] =32

[7, 1] =33

[4, 5] =35

[4, 4] =35

[7, 3] =34

[6, 5] =34

[6, 7] =31

[1, 1] =32

[5, 7] =31

[8, 1] =32

[1, 8] =36

[8, 4] =35

[5, 3] =34

[7, 4] =35

[1, 6] =34

[4, 7] =31

[3, 1] =33

[4, 6] =30

[3, 6] =34

[4, 8] =36

[1, 2] =34

[8, 3] =32

[4, 1] =32

[5, 8] =36

[2, 6] =30

[5, 1] =33

[8, 7] =31

[6, 3] =34

[2, 8] =36

[6, 4] =36

[7, 8] =36

[1, 3] =34

[3, 4] =35

[8, 6] =30

[2, 5] =35

[2, 1] =33

[1, 4] =36

[3, 3] =34

[1, 5] =34

[5, 4] =36

[6, 2] =35

[4, 3] =34

[4, 2] =34

[5, 5] =35

[3, 8] =36

[2, 2] =35

[6, 6] =30

[7, 6] =34

[1, 7] =35

[5, 6] =34

[3, 2] =34

[7, 5] =35

[7, 7] =31

[3, 5] =35

[2, 7] =31

[6, 8] =36

2. Mediante la utilización de funciones, determine:
a) Total de Alumnos por Curso
b) Promedio de Alumnos por Curso.
c) Cantidad mayor de alumnos para cada Curso.
d) Cantidad menor de alumnos para cada Curso.
e) Cantidad Total de Alumnos.

3. Guarde el archivo en su carpeta y disco de trabajo.

Realizado por María del Valle Aranda

pág. 28
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 8

1.

Dados los siguiente datos, y utilizando la estructura de datos más adecuada para
economizar espacio de almacenamiento, proponga todas las formas posibles de almacenar
los datos, con la estructura de seleccionada. Utilice para ello la Planilla de Cálculos. Guarde
todo lo realizado, en un archivo dentro de su carpeta y disco de trabajo.

Paciente
Abregú, Marcelo
Boccelli, Mario
Colombres, Francisco
Constanzo, Fabiana
Dionissi, Laura
Duarte, Aníbal
Echegaray, Pedro
Farías, Claudia
García, Silvia
Gómez, Pablo
Huerta, Mariela
Juárez, Sandra
Klotz, Eva
López, Angélica
Llorens, Sandra
Mercier, Lorena
Murta, Rosa
Ninci, Esteban
Ortiz, Eduardo
Otobre, Fernanda
Pascetti, Elena
Paschini, Soledad
Quiroga, Miriam
Ramírez, Osvaldo
Robledo, Raúl
Sánchez, Carlos
Soria, David
Suárez, Jorge
Taborda, Ernesto
Tobares, Mariza
Uboldi, Marcos
Vivas, Horacio
Winkel, Marcela

Médico
Gómez Centurión
Arévalo
Fernández
Fernández
Mantovani
Soria
Gómez Centurión
Mantovani
Gómez Centurión
Fernández
Arévalo
Mantovani
Gómez Centurión
Fernández
Soria
Mantovani
Arévalo
Gómez Centurión
Mantovani
Fernández
Arévalo
Fernández
Soria
Arévalo
Gómez Centurión
Fernández
Mantovani
Fernández
Arévalo
Gómez Centurión
Arévalo
Mantovani
Gómez Centurión

2. Agregue una columna para numerar los registros, denomínela Nº de Paciente, complétela
mediante el procedimiento de rellenar automáticamente, incrementando el contenido de la
celda.
3. Mediante el procedimiento de Filtro Avanzado, genere una tabla para cada Médico, con los
pacientes que cada uno de ellos atiende.
4. Indique a que tipo de estructura se asemeja, lo realizado en el paso anterior.

Realizado por María del Valle Aranda

pág. 29
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 9

1.

Dada la siguiente estructura de datos:

01 Empleado
02 Nombre del Empleado
03 Nombre
03 Apellido
02 Sueldo
03 Sueldo Básico
03 Sueldo Bruto
02 Sindicato
03 Afiliado
03 Aporte
2. Los datos que debería almacenar en la misma, son:
GARCIA, LAURA, 11350, 11645, Sí, 1%
ALVAREZ, LUIS, 11550, 11780, No, 0%
BARROS, ARMANDO, 11670, 11875, Sí, 1%
SANCHEZ, ISMAEL, 12100, 12650, Sí, 1%
CACERES, EFRAIN, 11870, 12130, No, 0%
CORNEJO, DANIEL, 11935, 12298, No, 0%
DIAZ, ALDO, 11645, 11878, Sí, 1%
FARIAS, JUAN, 11780, 12120, Sí, 1%
BUSTOS, ENRIQUE, 11458, 11623, Sí, 1%
GASPO, GENOVEVA, 11618, 11895, Sí, 1%
LUNA, CECILIA, 11950, 12250, Sí, 1%
ALONSO, JAVIER, 12250, 12743, Sí, 1%
PARDO, CRISTINA, 11590, 11780, No, 0%
RODRIGUEZ, GABRIEL, 11450, 11660, No, 0%
MORENO, LUIS, 11359, 11487, No, 0%

3. Mediante la Planilla de Cálculos, realice el almacenamiento de los datos y guárdelo en su
carpeta y disco de trabajo. Para determinar el Aporte del empleado al Sindicato,
resuélvalo mediante el uso de Funciones, si el Empleado es Afiliado al Sindicato, deberá
calcular el 1% sobre el Sueldo Básico, caso contrario, no realizará Aporte (0%).
4. Indique el tipo de estructura utilizado.

Realizado por María del Valle Aranda

pág. 30
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº 10

Provincia
Bs. As.

Córdoba

Sta. Fe

Entre Ríos

La Pampa

Estilo
Pop

540750

Rock

178000

Clásica
Folclore
Tango
Jazz
Melódica

50000
89000
250750
98700
219570

Totales:

1. Con los datos anteriores, almacenados mediante la Planilla de Cálculos, obtenga la Cantidad
de Discos Vendidos por Estilo musical en cada Provincia, teniendo en cuenta lo siguiente:
En Córdoba se vendió un 30% menos que en Bs. As.
En Sta. Fe se vendió un 37.5% menos que en Bs. As.
En Entre Ríos se vendió un 45% menos que en Bs. As.
En La Pampa se vendió un 10% más que en Entre Ríos.
2. Mediante funciones calcule Totales para cada Provincia.
3. Indique la estructura de datos utilizados.
4. Señale los valores que le corresponden a los siguientes índices:
Cantidad
Cantidad
Cantidad
Cantidad
Cantidad
Cantidad
Cantidad
Cantidad
Cantidad
Cantidad

de Discos Vendidos[7, 1]
de Discos Vendidos[3, 5]
de Discos Vendidos[1, 4]
de Discos Vendidos[5, 5]
de Discos Vendidos[7, 5]
de Discos Vendidos[2, 4]
de Discos Vendidos[6, 2]
de Discos Vendidos[4, 1]
de Discos Vendidos[4, 5]
de Discos Vendidos[1, 1]

Realizado por María del Valle Aranda

pág. 31
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD III: Operaciones con Estructura de Datos

Operaciones con Estructura de Datos
Los datos que contiene una estructura se procesan por medio de determinadas
operaciones. De hecho, generalmente elegimos una determinada estructura de datos, en
función de las operaciones que realizamos sobre ella.

Las que se describen a continuación son las que se utilizan con mayor frecuencia:

Recorrido: implica acceder a cada registro una única vez aunque uno o más ítems
del registro sean procesados. Este acceso y procesamiento también se denomina a
veces con el término "visitar el registro".

Búsqueda: implica la localización de un registro caracterizado por una determinada
clave o también el acceso a los registros que cumplen una o más condiciones.

Inserción: implica añadir nuevos registros a la estructura de datos.

Eliminación: esta operación implica borrar un registro de la estructura de datos.

Modificación: esta operación implica un cambio o actualización de los datos
contenidos en un registro.

Ordenamiento: esta operación implica clasificar los registros conforme a un orden
lógico determinado.

Mezcla: esta operación implica combinar dos archivos previamente ordenados en
uno único que también lo está.

Con frecuencia dos o más de estas operaciones se usan conjuntamente, por ejemplo,
cuando queremos eliminar un registro con una clave determinada, primero debemos buscarlo
para luego recién eliminarlo.

Realizado por María del Valle Aranda

pág. 32
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD III: TRABAJOS PRÁCTICOS

Objetivo:

Analizar el comportamiento de las estructura de datos (arrays, listas enlazadas,
árboles, colas, pilas, grafos) ante las operaciones
eliminación, ordenamiento,

de inserción, modificación,

búsqueda, mezcla o recorrido. Resuelva los Trabajos

Prácticos 11, 12, 13 y 14.

Realizado por María del Valle Aranda

pág. 33
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº11

Objetivo:
Realizar recorrido, búsqueda, inserción, eliminación, modificación, ordenamiento y
mezcla de los datos, contenidos en diferentes estructuras de datos.

Utilizaremos el Sistema de Gestión de Base de Datos Video.

1. Recorrido:
a) Para realizar un recorrido por los datos contenidos en cada una de las tablas, prepare un
informe para Socios, Tema, Películas y Alquiler. Coloque en cada uno de ellos como
Encabezado: Video: Tabla de xxxxxxx, donde xxxxxxx será el nombre de la tabla
respectiva, y como pie de página la fecha actual y el nº de página.

2. Búsqueda:
a) Mediante Consulta, localice en la Tabla Socios, todos aquellos que tengan Código Postal 5001
ó 5009.
b) En la Tabla Películas y mediante Consulta, encuentre las películas de la productora
Universal, realizadas entre 1960 y 1980.
c) En la Tabla Alquiler utilizando Consulta, muestre cuantas veces fue alquilada la película De
aquí a la eternidad, durante el 1/2/13 y el 20/2/13.

3. Inserción:
a) Agregue a la Tabla Socios, Películas y Alquiler, los siguientes registros:
Código
Socio
10020
10021
10022
10023
10024

Código
de
Película
8

Nombre
Mateo
Diego
Olga
Ariadna
Marcelo

Título

11

Cinema
Paradiso
Superman II

12

La Misión

13

El lado
oscuro del
corazón

Apellido
Pedreira
Pérez
Sánchez
Murcia
Romero

DNI
28.097.187
31.950.564
6.254.871
27.351.241
20.354.167

Domicilio

Ciudad

Perú 234
Jujuy 1435
Urquiza 331
Murcia 814
Garzón 191

Córdoba
Córdoba
Córdoba
Córdoba
Córdoba

Intérprete 1

Intérprete 2

Philippe
Noiret
Christopher
Reeve
Robert de Niro

Jacques
Giuseppe
Perrin
Tornatore
Margot Kidder Richard
Donner
Jeremy Irons Roland
Joffe
Sandra
Eliseo
Ballesteros
Subiela

Darío
Grandinetti

Realizado por María del Valle Aranda

Director

Código
Postal
5001
5003
5000
5012
5011

Productora

Teléfono
4681254
4738853
4221458
4551778
4519547

Observaciones
Alquila por 5 días

Código de
Año
Duración
tema
producción

Franco
Cristaldi
Universal

7

1988

123

8

1980

137

Goldcrest

7

1986

120

Fernado
Socolowickz

7

1992

110

pág. 34
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Código de Alquiler
1125
1126
1127
1129
1130

Código de Socio
10022
10024
10013
10021
10020

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Código de película
8
12
8
12
1

Fecha de Alquiler
17/03/13
21/03/13
05/04/13
30/04/13
02/05/13

Fecha de devolución
19/03/13
23/03/13
08/04/13
02/05/13
04/05/13

Devuelto
Sí
No
Sí
Sí
Sí

4. Eliminación:
a) En la tabla Socios, ubique los siguientes y elimínelos: 10001, 10003, 10006, 10012 y 10015.

5. Modificación:
a) En la tabla Socios y mediante la opción Reemplazar que se encuentra en el menú Edición,
modifique los siguientes datos:

Código
Socio
10000
10008

Nombre

Apellido

DNI

Domicilio

Ciudad

Colón 1234

Código
Postal
5000

Teléfono

Observaciones

4267898
Pagó abono para
todo el año 2013.

10020
10022
10023

Pereyra
4.254.871
Mircó

6. Ordenamiento:
a) En la tabla Socios, realice un ordenamiento ascendente por el campo Apellido.
b) En la tabla Tema, realice un ordenamiento ascendente por el campo Tema.
c) En la tabla Películas, realice un ordenamiento ascendente por el campo Año producción.
d) En la tabla Alquiler, realice un ordenamiento descendente por el campo Código de Alquiler.

7. Mezcla:
a) Genere en Excel la siguiente tabla, guárdela en su carpeta y disco de trabajo con el nombre
Socios.

Código
Socio
10025
10026
10027
10028
10029

Nombre
Alejandro
Lucía
Hugo
Guillermo
Mónica

Apellido
Fonseca
Ibañez
Loza
Murcia
Arceloni

DNI
14.898.342
17.958.564
4.299.831
14.360.181
28.150.314

Domicilio

Ciudad

Petorutti 21
Cornejo 349
Urquiza 931
Galeano 79
Gorriti 1917

Córdoba
Córdoba
Córdoba
Córdoba
Córdoba

Código
Postal
5009
5009
5000
5009
5011

Teléfono
4811254
4818851
4251957
4811787
4569547

Observaciones
Paga con Tarjeta
Abonado
Abonado

b) Desde Access, cerciórese que la base de datos Video esté abierta, seleccione la tabla
Socios (no la abra).
c) Desde la barra de menú seleccione Archivo, en ella la opción Obtener datos externos y
luego Importar.
d) En la ventana Importar ingrese los siguiente datos: en Buscar en: seleccione su disco y
carpeta de trabajo, en Tipo de archivo: seleccione Microsoft Excel (*.xls), en Nombre de
archivo: tipee Socios, presione luego en el botón Importar.
Realizado por María del Valle Aranda

pág. 35
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

e) Aparecerá la ventana del Asistente para importación de hojas de cálculo, en

ella se

presentará seleccionada la opción Mostrar hoja de cálculos (Socios), presione entonces el
botón Siguiente.
f) En la ventana siguiente sólo deberá seleccionar en la casilla de verificación Primera fila
contiene títulos de columnas, presione luego sobre el botón Siguiente.
g) En esta ventana deberá elegir la opción En una tabla existente y allí seleccionar la tabla
Socios, presione el botón Siguiente.
h) En la última ventana aparecerá seleccionada la tabla Socios, presione el botón Terminar.
i) Una vez finalizada la importación de los datos, aparecerá un cuadro de diálogo indicándolo,
presione en el botón Aceptar. Ahora puede abrir la tabla Socios y corroborar la operación
de Mezcla realizada.

Realizado por María del Valle Aranda

pág. 36
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº12

Objetivo:
Analizar el comportamiento de los datos en una pila, ante las operaciones de inserción
y eliminación.

1. Dada la siguiente información, utilice para el almacenamiento de la misma la estructura de
datos denominada pila. Realice esta actividad mediante Access, llame la base de datos
como EMPRESA y la tabla como PERSONAL.

2. Utilice un formulario para la carga de los datos.

Legajo ApellidoNombre
1190

Asis

1105

Ana

D.N.I.

Dirección

Teléfono

Fecha
Tiene Sueldo
Ingreso Hijos? Básico

27.158.195

Fragueiro 1219

422-1118

Barzola Lorenzo

18.186.125

Tejeda 1876

481-6212 10/11/05

No

1118

Córdoba Sergio

11.947.521

La Pampa 89

425-1247 08/09/02

Sí

1182

Córdoba Claudia

28.189.125

Reyna 765

462-1587 01/01/00

No

1196

Espada Mónica

19.157.117

Valladolid 435

455-1247 10/02/04

Sí

1119
1157

Filguera Josefina 21.128.147
García Manuel
23.524.116

Betania 874
Galeano 234

489-4712 15/05/03
01/03/02

No
Sí

1113
1125
1171

Huergo Manuel
Juárez Sandra
León
Horacio

28.341.774 9 de Julio 987
24.258.241 Junín 234
17.181.145 Artigas 131

425-8791 01/08/00
421-1145 14/05/05
423-4112 30/11/04

Sí
Sí
No

1110

Luna

27.541.377 Richieri 1987

465-4157 01/10/01

No

1131

Montes Carmen

29.166.165

Mendoza 1432

471-5874 15/07/02

Sí

1155

Nieto

Federico

17.151.191

Mercedarios 91 464-1177 10/06/05

Sí

1188
1103

Piñeiro
Roldán

Laura
Manuel

26.317.119
16.125.135

Tablada 914
Pinzón 327

428-1290 01/11/99
15/04/07

Sí
No

1168

Sánchez Gabriela

18.168.165

Lafinur 1587

481-5557 01/02/06

No

1173
1116

Taborda Silvina
25.654.251 Corro 314
Teruel Santiago 15.115.122 Tosno 2319

422-3331 02/08/02
469-2547 01/01/00

Sí
Sí

1183

Uria

Diego

10.191.541

Baigorrí 775

473-1254 01/09/05

No

1121

Vivas

Walter

27.125.125

Urquiza 2518

01/02/00

Sí

Nicolás

01/02/99

Sí

Antecedentes
Laborales

$ 11.850 Trabajó en empresas de
telefonía y correo.
$12.200 Trabajó en empresa
autopartista.
$11.630 Trabajo en medios de
comunicación.
$11.875 Trabajó en instituciones
bancarias.
$ 11.945 Trabajó en empresa de
servicios
$ 12.100
$ 11.750 Trabajó en industria
electrónica.
$ 11.580
$ 11.725
$ 11.670 Trabajó en empresa
autopartista.
$12.250 Trabajo en medios de
comunicación.
$ 11.770 Trabajó en instituciones
educativas.
$ 11.675 Trabajó en empresas
gastronómicas.
$ 11.725
$ 11.875 Trabajó en empresa de
servicios
$11.675 Trabajó en instituciones
financieras.
$ 11.580
$ 11.850 Trabajó en empresa
autopartista.
$ 11.875 Trabajó en empresa de
servicios
$ 11.945 Trabajó en empresas
gastronómicas.

3. Analice y resuelva la siguiente situación: "como consecuencia de la recesión económica la
empresa debe reducir el 50% de su personal". ¿Cuáles serán los empleados que deberá
despedir, considerando la estructura de datos empleada?

Realizado por María del Valle Aranda

pág. 37
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

4. Analice como es el comportamiento de la operación de inserción de registros en una
estructura de pila.

5. Antes de eliminar los registros de la tabla PERSONAL genere otra de características
similares a la anterior, denomínela PERSONAL DESPEDIDO. Una vez eliminados los
registros de la primera almacénelos en esta última. Utilice para ello las herramientas
Copiar, Pegar (solamente estructura) y Pegar datos anexados.

Realizado por María del Valle Aranda

pág. 38
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº13

Objetivo:
Analizar el comportamiento de los datos en una lista enlazada, ante las operaciones
de ordenamiento, inserción y eliminación.

1. Dada la siguiente información, utilice para el almacenamiento de la misma la estructura de
datos denominada lista enlazada. Realice esta actividad mediante Excel, llame al archivo
PAISES.
Continente

País

Europa
América
Asia
África
Europa
Australia y
Oceanía
África
América
Asia
Australia y
Oceanía
Europa
Europa
Europa
África
América
América
Asia
África
Asia
África
Asia
Asia
Europa
América
América

Suecia
Argentina
India
Argelia
España
Australia
Nigeria
Cuba
Mongolia
Nueva
Zelanda
Austria
Italia
Bélgica
Marruecos
Colombia
Brasil
Irán
Sudáfrica
Irak
Egipto
Afganistán
China
Portugal
Venezuela
Canadá

2. Una vez almacenada la información en la lista enlazada, realice un ordenamiento alfabético
de la misma utilizando como clave de ordenamiento el campo países. Analice el
comportamiento de los datos enlazados ante la operación realizada.

3. Elimine de la lista enlazada, los registros que corresponden a los siguientes países:
Mongolia, Nueva Zelanda, Austria, Colombia y Egipto. Analice el comportamiento de los
datos enlazados ante esta operación.

Realizado por María del Valle Aranda

pág. 39
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

4. Inserte en la lista enlazada los siguientes registros, cuide mantener el ordenamiento
anterior. Analice el comportamiento de los datos restantes de la lista al efectuar esta
operación.

Continente
Asia
Australia y
Oceanía
Europa
América
África

Realizado por María del Valle Aranda

País
Pakistán
Papua Nueva
Guinea
Francia
Bolivia
Mozambique

pág. 40
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico Nº14

Objetivo:
Analizar el comportamiento de los datos en una cola, ante las operaciones de inserción
y eliminación.

1. Utilice para el almacenamiento de la siguiente información, la estructura de datos
denominada cola. Hágalo mediante Access, cree la base de datos CONSULTORIO y dentro
de ella la tabla TURNO PACIENTES.

2. Mediante formulario realice la carga de los datos.

Nº de
Turno

Nº
Historia
Clínica

Apellido y
Nombre

D.N.I.

Edad

Teléfono

Tiene Nombre
Mutual? de la
Mutual

Motivo de la
consulta

10

1521

ARDILES, Sara

4.998.775

65

472-3318

Sí

PAMI

Dolor de cabeza
y mareos.
Estado febril.
Decaimiento,
fatiga y mareos.
Congestión nasal
y fiebre.
Dolor de
garganta y
fiebre
Decaimiento y
fiebre.
Estado gripal.
Dolor de oídos y
fiebre.
Chequeo general.
Dolor lumbar.
Decaimiento,
dolor de
garganta, fiebre.
Decaimiento y
mareos.
Estado gripal.
Dolor de cabeza
y náuseas.
Chequeo médico.
Estado febril.

2
7

1570
1573

BORIOLI, Luis
CAMARA, Delia

18.186.125
7.998.775

31
52

489-9612
425-1247

No
Sí

DASPU

14

1501

DAVILA, Hernán

3.189.228

72

482-1587

Sí

PAMI

11

1597

EREÑU, Mónica

19.157.117

28

455-1214

Sí

DASPU

9

1591

FANTINI, José

21.128.147

25

469-4712

No

1
3

1547
1553

FERRARI, Manuel 23.524.116
HUERTA, Miguel
6.341.777

26

Sí
No

APROSS

425-8791

6
18
15

1525
1517
1560

JALIL, Marta
LERDA, Rodolfo
LIPARI, Ariel

14.258.241
17.181.145
11.541.377

39
33
45

489-1145
425-6512
465-1547

Sí
Sí
No

OSECAC
APROSS

13

1531

MONTT, Gloria

10.116.165

47

481-5174

Sí

IOSEP

5
12

1585
1548

MUNS, Jorge
PANERO, Raúl

17.151.191
16.173. 911

464-7711
482-9120

Sí
Sí

OSECAC
OSPLAD

8
17

1568
1508

6.125.135
13.168.165

56
40

489-4457

No
Sí

DASPU

4

1519

ROSEN, Silvia
SANTIAGO,
Claudia
TEJAS, Samuel

8.654.251

51

425-1333

Sí

OSECAC

Fiebre y dolor
de garganta.

16

1546

UBALDO, Teresa

5. 511.122

60

473-5247

Sí

APROSS

Dolor de oídos,
garganta y
fiebre.

3. Todos los pacientes anotados asistieron a la consulta. Hasta el momento el médico lleva
atendido 8 pacientes, ¿cuáles serán los registros que deberán ser dados de baja de
acuerdo a la estructura de datos utilizada?

Realizado por María del Valle Aranda

pág. 41
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

4. Antes de eliminar los registros de la tabla TURNO PACIENTES

genere otra de

características similares a la anterior, denomínela PACIENTES ATENDIDOS. Una vez
eliminados los registros de la primera almacénelos en esta última. Utilice para ello las
herramientas Copiar, Pegar (solamente estructura) y Pegar datos anexados. Exporte la
tabla PACIENTES ATENDIDOS a la Planilla de Cálculos Excel con el mismo nombre.

5. Analice como es el comportamiento de la operación de inserción de registros en una
estructura de cola.

Realizado por María del Valle Aranda

pág. 42
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD IV: Algoritmos

Algoritmos. Complejidad y Relación espacio-tiempo.
Un algoritmo es una secuencia de operaciones o pasos perfectamente definidos que
conducen a la resolución de un problema. Desarrollar algoritmos que manipulen eficientemente
los datos será uno de nuestros objetivos. El tiempo y el espacio utilizado en ello miden la mayor
o menor eficiencia de un algoritmo. La complejidad de un algoritmo es aquella función que da el
tiempo y/o el espacio utilizado por el algoritmo en función de los datos de entrada.
Cada algoritmo guarda una estrecha relación con una estructura de datos. Por ello, no
siempre es posible utilizar el algoritmo más eficiente, puesto que la elección de la estructura
de datos depende de varias cuestiones, incluida la de qué tipo de datos administramos y la
frecuencia con que se realizan diferentes operaciones sobre ellos. Así deberemos encontrar
una situación de compromiso entre tiempo y espacio utilizados. En general, si aumentamos el
espacio necesario para almacenar los datos, conseguiremos un mejor rendimiento en el tiempo y
viceversa. Estas ideas quedan reflejadas en los siguientes ejemplos.

Algoritmos de búsqueda
Supongamos tener un archivo que contiene, entre otros datos, el nombre y el número
de teléfono de sus miembros y que dado el nombre de un miembro queremos conocer su número
telefónico. Una forma de hacer esto es buscarlo secuencialmente en el archivo, es decir
aplicando el siguiente algoritmo:

Búsqueda secuencial: Recorre cada registro del archivo, uno a uno, hasta
encontrar el nombre buscado y a partir de él el correspondiente número de teléfono.
Es evidente que el tiempo necesario para ejecutar el algoritmo es proporcional al
número de comparaciones realizadas. También suponiendo que todos los nombres del
archivo tienen la misma probabilidad de ser encontrados o no, en un determinado
momento, es claro que el promedio de comparaciones que realizaremos para esta
búsqueda es n/2, donde n es el número de registros del archivo. Es decir la
complejidad de la búsqueda secuencial viene dada por C(n)=n/2.
Este algoritmo puede resultar inviable en la práctica si la lista consta de miles de
nombres como en una guía telefónica. Sin embargo si los nombres están ordenados

Realizado por María del Valle Aranda

pág. 43
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

alfabéticamente podremos utilizar un algoritmo más eficiente, denominado de
búsqueda binaria.

Búsqueda binaria: Comparar el nombre buscado con el que se encuentra en mitad
de la lista. Con ello dividimos la lista en dos partes y determinamos en cual de las dos
se encuentra el nombre buscado. Nuevamente repetimos el mismo proceso en la parte
seleccionada hasta que encontramos el nombre deseado, o no.
Se puede expresar que la complejidad del algoritmo de búsqueda binaria viene dada
por C(n)=log2n
De esta forma no se necesitan más que 15 comparaciones para encontrar un nombre
de una lista que contiene 25.000 nombres.
Aunque el algoritmo de búsqueda binaria es muy eficiente, presenta algunos
inconvenientes. Concretamente el algoritmo implica la posibilidad de acceder
directamente al elemento mitad de una lista. Por tanto la lista debe ser almacenada
en algún tipo de array. Desgraciadamente para este tipo de estructura, la inserción
de un elemento en ella implica el movimiento de un gran número de datos, al igual que
ocurre cuando deseamos borrar o extraer algún dato del array.
La compañía telefónica soluciona este problema editando una nueva guía cada año y
manteniendo un archivo temporal para los clientes que se dan de alta durante ese
período.

Esto

quiere

decir

que

la

compañía

de

teléfonos

actualiza

casi

instantáneamente su lista de clientes. En este caso una lista secuencial puede no ser
la estructura más adecuada.

Ejemplo de la relación espacio-tiempo
Supongamos que un archivo contiene en sus registros nombres, números de documento
y más información adicional. Ordenar el archivo alfabéticamente y utilizar la búsqueda binaria
es un buen método si lo que deseamos es encontrar un registro que contiene un determinado
nombre. Por el contrario, supongamos que lo que conocemos es el número de documento. En
este caso debemos realizar una búsqueda secuencial en todo el archivo, lo que implica gran
cantidad de tiempo cuando el archivo es largo. ¿Cómo resolver este problema? Una forma es
tener otro archivo igual, pero ordenado por número de documento. Esta solución duplica el
espacio necesario para el almacenamiento de datos. Otra solución representada en la Figura 10
es la de tener el archivo principal ordenado de acuerdo al número de documento y
adicionalmente un array auxiliar con dos columnas, la primera de ellas conteniendo la lista
alfabética de los nombres y la segunda punteros que indiquen la dirección de los registros
correspondiente en el archivo principal. Esta forma de resolver el problema es una de las más
utilizadas, puesto que el espacio adicional necesario es mínimo frente a la información extra
que proporciona.
Realizado por María del Valle Aranda

pág. 44
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

1
2
3
4
5
6
7

Nombre
Avalos, Mara
Brunelli, Oscar
Cordi, Silvia
Cuevas, Delia
Dávila, Ana
Lobos, Isabel
Luna, Nicolás

Puntero
3
71
2
29
57
7
17

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

1
2
3
4
5
6
7

Documento
17.158.125
18.339.451
21.125.144
22.154.147
24.254.717
28.119.154
29.178.112

Nombre
Marín, Claudia
Cordi, Silvia
Avalos, Mara
Tulián, José
Soro, Carlos
Brandán, Luis
Lobos, Isabel

Datos adicionales
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxx

Figura 10

Lo mostrado en la figura anterior es similar al procedimiento de indexar un campo,
crea un índice para ese campo indicando en que registro se encuentra el dato buscado.

Comentario: Supongamos que un archivo está ordenado de acuerdo al número de
Documento. Cuando añadimos nuevos registros los datos deben cambiar de posición para
mantener el orden. Una forma sencilla de minimizar el número de movimientos es utilizar el
número de Documento como dirección del registro. Con esto no sólo es innecesario el
movimiento de registros cuando insertamos uno nuevo, sino que además el acceso a los mismos
es instantáneo. La desventaja de este método de almacenamiento es que necesita de un gran
número de posiciones de memoria para pocos cientos o a lo sumo unos pocos miles de registros.
Claramente la relación espacio-tiempo obtenida no es muy ventajosa.

Diseño de algoritmos
Algunos algoritmos pueden ser muy complejos. Sin embargo, los programas que
implementan los algoritmos más complejos pueden ser diseñados fácilmente, si organizamos los
mismos en una estructura de módulos jerárquica, como la que se muestra en la Figura 11. En la
organización descripta, cada programa contiene un módulo principal que representa una
descripción general del algoritmo. Este módulo principal contiene llamadas a submódulos que
contienen información más detallada que el principal. Cada submódulo puede hacer referencia a
su vez a más submódulos, así sucesivamente. La organización de un programa en una estructura
jerárquica de este tipo requiere el uso de ciertos criterios de flujo y de estructuras lógicas
asociadas con el concepto de programación estructurada.

Realizado por María del Valle Aranda

pág. 45
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Módulo
principal

Figura 11

Notación algorítmica
El formato para representar formalmente un algoritmo se compone de dos partes. La
primera consiste en una descripción de los propósitos del algoritmo, la descripción de las
variables que intervienen en el mismo y de los valores de entrada de éstas. La segunda parte
consiste en la secuencia de pasos que deben ser ejecutados para la consecución del resultado.

Sea el array DATOS compuesto por valores numéricos y contenido en la memoria de la
computadora. Deseamos encontrar la posición de memoria LUG y el valor del elemento mayor
de DATOS. Sin conocer otra información, una forma de resolver el problema es la siguiente:

Inicialmente comenzamos con LUG=1 y MAX=DATOS[1], a continuación comparamos MAX
con los elementos siguientes de DATOS, representados por DATOS[K]. Si DATOS[K] es
mayor que MAX, actualizaremos LUG y MAX de tal forma que ahora serán LUG=K y
MAX=DATOS[K]. Los valores buscados se encontrarán en LUG y MAX al final del algoritmo.

Una representación formal del algoritmo descrito, y cuyo diagrama de flujo se
muestra en la Figura 12, es la siguiente:

Algoritmo para encontrar el elemento mayor de un Array.
Tiene como entrada un array no vacío, DATOS compuesto de
valores
numéricos. El algoritmo localiza el mayor de todos los datos contenidos en
MAX y el lugar que ocupa LUG. Utilizamos la variable K como contador.
Paso 1: [Inicialización]. K:=1, LUG:=1 y MAX =DATOS[1].
Paso 2:
[Incrementar el contador]. K:=K+1.
Paso 3: [Test del contador]. Si K > , entonces:
Escribir LUG y MAX y salir.
Paso 4: [Comparar y actualizar]. Si MAX<DATOS[K], entonces:
LUG:=K y MAX:=DATOS[K].
Paso 5: [Repetición del ciclo]. Ir al paso 2.

Realizado por María del Valle Aranda

pág. 46
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Comienzo

K←1
LUG ← 1
MAX ← DATOS[1]

K ← K+1

Si
¿Es K>N?

Escribir: LUG, MAX

No

No

Parar

¿Es MAX<DATOS[K]?

Si
LUG ← K
MAX ← DATOS[K]

Figura 12

Componentes de un algoritmo
Pasos, control y salida
Los pasos de los que consta un algoritmo son ejecutados uno detrás de otro,
comenzando por el paso 1, salvo que se indique lo contrario. No obstante, el control puede
transferirse a un paso n a través de la sentencia Ir a o Saltar al paso n. Por ejemplo en el
algoritmo descrito anteriormente el paso 5 transfiere el control al paso 2. En la mayoría de los
casos la sentencia puede ser eliminada si usamos convenientemente algunas estructuras de
control.
Si aparecen varias sentencias en el mismo paso, por ejemplo:

K:=1,

LUG:=1

y

MAX:=DATOS[1]

se ejecutan siempre de izquierda a derecha.
El algoritmo termina cuando en los sucesivos pasos ejecutamos la sentencia Salir.
Esta sentencia es equivalente a la STOP utilizada en FORTRAN o PARAR en los diagramas de
flujo.
Realizado por María del Valle Aranda

pág. 47
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Comentarios
Cada paso puede contener un comentario que estará limitado por corchetes, para
indicar que operaciones realiza dicho paso. Los comentarios pueden aparecer al principio o al
final del mismo.

Nombres de variables
Los nombres de variables estarán compuestos siempre por letras mayúsculas como
MAX o DATOS. Asimismo designaremos también con mayúsculas las variables de una sola letra
o los contadores que utilicemos.

Sentencias de asignación
La operación de asignación de valores a variables las simbolizaremos mediante los dos

puntos-igual := que se usa en Pascal. Por ejemplo:

MAX:=DATOS[1]

asigna el valor contenido en el DATOS[1] a la variable MAX. También se utilizan la
flecha ← o el signo = para simbolizar esta operación.

Entrada y salida
Los datos pueden ser introducidos y asignados a las variables por medio de la
sentencia Leer con el formato siguiente:

Leer: Nombres de variables

Análogamente, mensajes acotados por comillas y los valores de las variables se pueden
escribir mediante las sentencias Escribir o Imprimir. Su formato es el siguiente:

Escribir: Mensajes y/o nombres de variables

Procedimientos
El término procedimiento lo utilizaremos para referirnos a módulos que resuelven
algoritmos completos, pero que son utilizados por otros que resuelven un problema general. Por
tanto, la utilización de los términos módulos o procedimientos es una cuestión de nomenclatura.
En ese sentido reservaremos la palabra algoritmo para la resolución de problemas generales. El
término procedimiento lo utilizaremos también al describir cierto tipo de subalgoritmos.

Realizado por María del Valle Aranda

pág. 48
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Estructuras de Control
Los algoritmos y los correspondiente programas que los ejecutan en una computadora
son fácilmente inteligibles si en su diseño utilizamos módulos internos (definidos dentro del
mismo) y son diseñados de acuerdo a las reglas impuestas por los tres tipos de lógicas
siguientes:
Lógica secuencial o flujo secuencial.
Lógica selectiva o flujo condicional.
Lógica iterativa o flujo repetitivo.

Lógica secuencial o flujo secuencial
En la lógica secuencial implica que los módulos sean ejecutados uno a continuación del
otro, excepto que alguna instrucción indique lo contrario. La secuencia puede indicarse
explícitamente numerando los sucesivos pasos, o implícita en el que el orden lo impone la
ubicación de las sentencias.

Lógica selectiva o flujo condicional
La lógica selectiva utiliza un conjunto de condiciones que implican la ejecución de
alguna alternativa entre varias. Las estructuras que implementan este tipo de lógica reciben el
nombre de estructuras condicionadas o estructuras Si. Para una mayor claridad, se indica el
final de tal estructura mediante el comentario

[Fin de la estructura condicional]

o alguno equivalente. Estas estructuras condicionales pueden ser de tres tipos:

a) Alternativa simple. Tiene la forma:
Si condición, entonces:
[Módulo A]
[Final de la estructura condicional]

El diagrama de flujo de esta estructura se muestra en la Figura 13 a). En este caso si
la condición se cumple, se ejecuta el Módulo A, que puede estar compuesto por varias
sentencias. En cualquier otro caso el Módulo A no se ejecuta y se transfiere el
control al paso siguiente del algoritmo.

Realizado por María del Valle Aranda

pág. 49
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

b) Alternativa doble. Esta estructura tiene la forma:
Si condición, entonces:
[Módulo A]
Si No:
[Módulo B]
[Final de la estructura condicional]

El diagrama de flujo de esta estructura se muestra en la Figura 13 b). Como se indica
en el mismo, si la condición se cumple, se ejecuta el Módulo A. En caso contrario, se
ejecutará el B.

No

¿Condición?

¿Condición?

Si

No

Si

Módulo A

Módulo A

a) Alternativa simple

Módulo B

b) Alternativa doble
Figura 13

c) Alternativa múltiple. Tiene la forma:

Si condición (1), entonces:
[Módulo A1]
Si No Si condición (2), entonces:
[Módulo A2]
:
Si No Si condición (M), entonces:
[Módulo AM]
Si No:
[Módulo B]
[Final de la estructura condicional]

La lógica de esta estructura permite la ejecución de un solo módulo, concretamente
el módulo siguiente a la primera condición que se cumpla o el módulo que sigue al Si No
final.

Realizado por María del Valle Aranda

pág. 50
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Lógica iterativa o flujo repetitivo
El tercer tipo de lógica hace referencia a aquel tipo de estructura que implica la
utilización de lazos o ciclos. Fundamentalmente pueden ser de dos tipos, ambas comienzan con
la sentencia repetir seguida de un módulo que recibe el nombre de cuerpo del ciclo. El final del
ciclo se indica mediante la sentencia

[Fin de ciclo]

o alguna equivalente.

a) Ciclo Repetir-Desde utiliza una variable índice, por ejemplo K, para controlar el
ciclo. Este tendrá la forma:

Repetir-Desde K=R hasta S de T:
[Módulo ]
[Fin del ciclo]

El diagrama de flujo de esta estructura puede verse en la Figura 14 a). R recibe el
nombre de valor inicial, S el de valor final o valor de prueba y T el de incremento. El
cuerpo del ciclo se ejecuta primero para un valor de K=R. La primera vez para K=R+T,
la siguiente para K=R+2T, y así sucesivamente hasta que K>S. El diagrama de flujo
presentado asume que el incremento T es positivo. Si T fuese negativo, el ciclo
terminaría cuando K<S.

b) Ciclo Repetir-Mientras utiliza una condición para controlar el mismo. Tiene la
forma:

Repetir-Mientras condición:
[Módulo ]
[Fin del ciclo]

El diagrama correspondiente puede verse en la Figura 14 b). Obsérvese que el ciclo
continúa hasta que la condición exigida sea falsa. Es evidente que previa a la
estructura expuesta debe existir una sentencia que inicialice la condición que rige el
ciclo. Asimismo dentro del módulo que se ejecuta dentro de este debe haber alguna
sentencia que pueda cambiar la condición, para que el ciclo pueda terminar.

Realizado por María del Valle Aranda

pág. 51
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

K←R

¿Es K>S?

Si

¿Condición?

No

No

Si

Módulo
(cuerpo del ciclo)

Módulo
(cuerpo del ciclo)

K ← K+T

a) Estructura repetir-desde

b) Estructura repetir-mientras
Figura 14

Realizado por María del Valle Aranda

pág. 52
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD IV: TRABAJOS PRÁCTICOS

Objetivo:

Determinar la complejidad en algoritmos de búsqueda secuencial y binaria.
Reconocer los componentes de un algoritmo. Crear algoritmos con estructuras de
control, de flujo condicional. Resuelva el Trabajo Práctico N° 15.

Realizado por María del Valle Aranda

pág. 53
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

TRABAJO PRÁCTICO N° 15

1.

Mediante Excel, determinar la complejidad en algoritmos de búsqueda secuencial y binaria,
para los siguientes archivos.
Nombre del
archivo

Cantidad
de registros

Afiliados
Artículos
Empleados
Alumnos
Asociados
Abonados

2.

Complejidad
Búsqueda Secuencial
Búsqueda Binaria

1000
20
250
5000
15000
25000

En el siguiente algoritmo, identifique los componentes que integran el mismo:
Comienzo

K←1
LUG ← 1
MAX ← DATOS[1]

K ← K+1

Si
¿Es K>N?

No

No

Escribir: LUG, MAX

Parar

¿Es MAX<DATOS[K]?

Si
LUG ← K
MAX ← DATOS[K]

3.

Mediante un diagrama de flujo plantee un algoritmo, en el que incluya una estructura de
control de lógica selectiva o flujo condicional, del tipo alternativa múltiple. Resuélvalo
utilizando la Planilla de Cálculos Excel.

Realizado por María del Valle Aranda

pág. 54
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD V: Cadenas

Procesamiento de cadenas

En la actualidad es muy frecuente el uso de las computadoras para el procesamiento
de datos no numéricos llamados datos de caracteres, o de texto.
La terminología informática utiliza preferentemente el término cadena para una
secuencia de caracteres en lugar del término palabra, puesto que a este último le asigna otro
significado. Por este motivo y para evitar confusiones el procesamiento de textos es
referenciado por los términos "procesamiento de cadenas", "manipulación de cadenas" o
"edición de textos".
Una de las aplicaciones más importantes es el procesamiento de textos. Dicho
procesamiento implica, generalmente, algún tipo de reconocimiento de muestras, tales como
comprobar si una determinada palabra, aparece en un determinado texto.

Terminología básica

Cada lenguaje de programación posee un conjunto de caracteres que utiliza para
comunicarse con la computadora. Este conjunto incluye generalmente a los siguientes:

Alfabético:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Dígitos:

0 1 2 3 4 5 6 7 8 9

Caracteres especiales:

+ - / * ( ) , . $ = ´

El

conjunto

de

caracteres

frecuentemente simbolizado por

especiales

que generalmente

incluye

el

blanco,

, varía de un lenguaje a otro.

Una secuencia finita S, compuesta por cero ó más caracteres, recibe el nombre
de cadena.

El número de caracteres presente en una cadena constituye su longitud.

Una cadena con cero caracteres recibe el nombre de cadena vacía o cadena nula.

Las cadenas las indicaremos incluyendo los caracteres que las componen entre
comillas simples, estas comillas servirán también como delimitadores de cadenas.

Realizado por María del Valle Aranda

pág. 55
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Son cadenas:

´EL FINAL´

´SER O NO SER´

´´

´

´

cuyas longitudes respectivas son 8, 12, 0 y 2. Insistimos en que el blanco es un
carácter y por tanto contribuye a la longitud de la cadena. En algunos casos las comillas pueden
omitirse si el contexto deja ver claramente que la expresión es una cadena.

Sean S1 y S2 dos cadenas. La cadena obtenida colocando a continuación de los
caracteres de S1 los de S2, recibe el nombre de concatenación de S1 y S2 y se expresa así:
S1//S2. Evidentemente la longitud de S1//S2 es igual a la suma de las longitudes de S1 y S2.

Decimos que una cadena Y es una subcadena de la cadena S si existen dos cadenas X y
Z tales que:

S = X//Y//Z

Si X no es una cadena vacía decimos que es la subcadena inicial de S. Si Z no es una
cadena vacía decimos que es la subcadena terminal de S.
Lógicamente si Y es una subcadena de S, su longitud no puede ser mayor que la de S.

Almacenamiento de Cadenas

Generalmente una cadena puede almacenarse en algunos de estos tipos de estructura:
Estructuras de longitud fija.
Estructuras de longitud variable pero con máximo fijado.
Estructuras enlazadas.

Almacenamiento de longitud fija u orientada al registro:
En el almacenamiento de estructura fija cada registro tiene la misma longitud, es
decir contiene el mismo número de caracteres. Puesto que los datos suelen introducirse a
través de terminales que poseen un ancho de 80 columnas, los registros serán de una longitud
de 80 caracteres.
Las principales ventajas de este tipo de almacenamiento son: el poder acceder
fácilmente a cualquier registro y la facilidad a la hora de actualizar los datos de un
determinado registro.
Las desventajas en cambio son: se emplea mucho tiempo al leer los registros si la
mayoría de la información en ellos almacenada consiste en blancos que no tienen una misión
específica y algunos registros pueden necesitar más espacio que el disponible.

Realizado por María del Valle Aranda

pág. 56
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Almacenamiento de longitud variable con máximo establecido:
Aunque las cadenas pueden almacenarse en celdas de memoria, de longitud fija, puede
ser ventajoso el conocer la longitud actual de la cadena. Por ejemplo no es necesario leer todo
el registro cuando la cadena ocupa únicamente la primera parte de la celda de memoria.
También algunas operaciones con cadenas dependen de la existencia de cadenas de longitud
variable.
El almacenamiento de cadenas de longitud variable en celdas de memoria de longitud
fija puede realizarse de dos maneras:
Utilizando una marca, como dos símbolos $$ consecutivos, para indicar el final de
la cadena.
Incluir la longitud de la cadena como un ítem adicional en un array de punteros.
Estas marcas de separación, tales como el $$ o el array de punteros si bien ahorran
espacio y son utilizadas con frecuencia en el almacenamiento de registros en memorias
secundarias (discos) ya que son relativamente permanentes y precisan pocos cambios; suelen
ser poco eficientes cuando las cadenas y su longitud están sometidas a cambios frecuentes.

Almacenamiento enlazado: Una lista enlazada es una secuencia ordenada de celdas
de memoria, llamadas nodos, donde cada nodo contiene un elemento llamado enlace, el cual
apunta al siguiente nodo de la lista, es decir que contiene la dirección del siguiente elemento de
la lista.

Operaciones con Cadenas

Subcadenas: cuando queremos acceder a una subcadena contenida en una
determinada cadena, debemos conocer las siguientes elementos: el nombre de la cadena o la
cadena misma, la posición que ocupa el primer carácter de la subcadena en la cadena a la que
pertenece y la longitud de la subcadena. Llamaremos a esta operación Subcadena y
escribiremos:
SUBCADENA(cadena, inicial, longitud)

Por ejemplo: SUBCADENA(´EL FINAL´,4,5) = ´FINAL´

Indexación: el término indexación o localización de secuencias hace referencia a la
operación de encontrar la posición en que aparece por primera vez una secuencia de caracteres
P dentro de un texto T. Simbolizamos esta operación de la siguiente forma:

INDEX(texto, secuencia)

Realizado por María del Valle Aranda

pág. 57
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Si la secuencia no se encuentra dentro del texto, entonces INDEX nos devuelve el
valor 0.

Por ejemplo: INDEX(´EL FINAL´, ´AL´)=7

Concatenación: Sean las cadenas S1 y S2. La concatenación de S1 y S2, simbolizada
por S1//S2 es aquella obtenida colocando a continuación de los caracteres de S1 los de S2.

Por ejemplo: Sea S1 = ´PABLO´ y S2 = ´NERUDA´

S1//S2 = ´PABLONERUDA´
ó
S1/´ ´/S2 = ´PABLO NERUDA´

Longitud: el número de caracteres que componen una cadena recibe el nombre de
longitud de la cadena y se simboliza así:

LONGITUD(cadena)

Por ejemplo: LONGITUD(´PABLO´)=5

Realizado por María del Valle Aranda

pág. 58
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

UNIDAD V: TRABAJOS PRÁCTICOS

Objetivo:

Reconocer dentro de los tipos de datos, las cadenas. Operar con ellas, respetando
su sintaxis con el propósito de obtener la información requerida. Resuelva el
Trabajo Práctico N° 16.

Realizado por María del Valle Aranda

pág. 59
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Trabajo Práctico N°16
Objetivo:
Encontrar subcadenas, determinar la posición de una subcadena, concatenar textos, y
determinar la longitud de determinadas cadenas.

1. En la hoja 1 de la planilla de cálculos, realice una tabla como la que se muestra a
continuación:
Apellido

Nombre

Marín,
Hadad,
Alvarez,
Trombotto,
Torello,
Fernández,
Garzón,
Fonseca,
Patrito,
Luna,
Farías,
Furcade,
Mozzini,
Lazarte,
Quintana,
Carmona,
Ortiz,
Brie,
Gardella,
Boccelli

Matías
Manuel
Eduardo
Ricardo
Laura
Emilia
Marcela
Alejandra
Raúl
Federico
Roberto
Martina
Susana
Fabián
Claudio
Fernando
Lorenzo
Felipe
Lorena
Cecilia

Tipo de
Documento

D.N.I.
D.N.I.
Pas.
Pas.
D.N.I.
Pas.
C.I.
C.I.
C.I.
D.N.I.
C.I.
Pas.
C.I.
D.N.I.
C.I.
C.I.
Pas.
D.N.I.
D.N.I.
D.N.I.

N° de Documento

27.451.311
29.115.131
90.485.219
91.744.932
25.541.112
92.451.711
95.210.175
2.455.320
98.119.475
28.545.512
3.518.425
90.444.312
95.115.476
13.151.541
5.720.015
99.775.459
90.911.515
17.454.553
29.991.141
29.341.181

Lugar de Procedencia

Argentina-Buenos Aires
Argentina-Córdoba
Bolivia-La Paz
Bolivia-Sucre
Argentina-Salta
Bolivia-Potosí
Brasil-San Pablo
Uruguay-Montevideo
Brasil-Porto Alegre
Argentina-Córdoba
Uruguay-Colonia
Bolivia-La Paz
Brasil-San Pablo
Argentina-Salta
Uruguay-Montevideo
Brasil-Porto Alegre
Bolivia-Sucre
Argentina-Buenos Aires
Argentina-Córdoba
Argentina-Buenos Aires

2. En la hoja 2 de la planilla, utilizando funciones de texto, concatene las cadenas de
caracteres de las columnas Apellido y Nombre, Tipo de Documento y N° de Documento, de
forma tal que la tabla quede así:
Apellido y Nombre

Tipo y N° de Documento

Lugar de Procedencia

3. Agregue a la tabla anterior, una columna denominada País de Procedencia. Para obtenerla
extraiga mediante una función de texto, de la columna Lugar de Procedencia, la subcadena
correspondiente al país. Sería conveniente que antes ordenara la tabla por esta clave.

4. A continuación de las anteriores, agregue las siguientes columnas:
País de
Destino

Fecha de
Traslado

Para determinar Lugar de Destino, considere lo siguiente:
Si el País de Procedencia es Argentina, el País de Destino será Francia
Si el País de Procedencia es Bolivia, el País de Destino será Alemania
Si el País de Procedencia es Brasil, el País de Destino será Portugal
Si el País de Procedencia es Uruguay, el País de Destino será España

Realizado por María del Valle Aranda

pág. 60
Universidad Nacional de Córdoba
Escuela Superior de Comercio Manuel Belgrano
Nivel Terciario

Analista de Sistemas Informáticos
Estructura de Datos
1º Año

Para determinar Fecha de Traslado, considere lo siguiente:
Si el País de Destino es Alemania ó Portugal, la Fecha de Traslado será el 01/07/13
Si el País de Destino es Francia ó España, la Fecha de Traslado será el 01/08/13

5. Mediante funciones de texto, determine la longitud de las cadenas de caracteres, de las
columnas Apellido y Nombre y Lugar de Procedencia.

Realizado por María del Valle Aranda

pág. 61

Contenu connexe

Tendances

Campos daniel presentacion de base de datos
Campos daniel presentacion de base de datosCampos daniel presentacion de base de datos
Campos daniel presentacion de base de datosDaniel Campos
 
Tutorial de estructura de datos, gratis
Tutorial de estructura de datos, gratisTutorial de estructura de datos, gratis
Tutorial de estructura de datos, gratisParalafakyou Mens
 
Que es una base de datos
Que es una base de datosQue es una base de datos
Que es una base de datosjosetrejo1993
 
Base de datos
Base de datosBase de datos
Base de datosjomistef
 
Análisis de la Prueba ENLACE
Análisis de la Prueba ENLACEAnálisis de la Prueba ENLACE
Análisis de la Prueba ENLACEConsuelo Valle
 
4 4 Bases De Datos
4 4 Bases De Datos4 4 Bases De Datos
4 4 Bases De DatosUVM
 
Lina marcela alzate, stephany aristizabal introducción a las bases de datos 1...
Lina marcela alzate, stephany aristizabal introducción a las bases de datos 1...Lina marcela alzate, stephany aristizabal introducción a las bases de datos 1...
Lina marcela alzate, stephany aristizabal introducción a las bases de datos 1...Lina Marcela
 
Introduccion a las bases de datos
Introduccion a las bases de datosIntroduccion a las bases de datos
Introduccion a las bases de datosjedwinm
 
Contenido UNIDAD II. COMO SON LAS BASES DE DATOS.
Contenido UNIDAD II.  COMO SON LAS BASES DE DATOS.Contenido UNIDAD II.  COMO SON LAS BASES DE DATOS.
Contenido UNIDAD II. COMO SON LAS BASES DE DATOS.spgutierrez86
 
Base De Datos I Completo
Base De Datos I CompletoBase De Datos I Completo
Base De Datos I Completoguest7eaf64
 

Tendances (18)

Campos daniel presentacion de base de datos
Campos daniel presentacion de base de datosCampos daniel presentacion de base de datos
Campos daniel presentacion de base de datos
 
Tutorial de estructura de datos, gratis
Tutorial de estructura de datos, gratisTutorial de estructura de datos, gratis
Tutorial de estructura de datos, gratis
 
Diseño y analisis de bd
Diseño y analisis de bdDiseño y analisis de bd
Diseño y analisis de bd
 
Computacion ii.
Computacion ii.Computacion ii.
Computacion ii.
 
Trabajo exposicion grupo_5
Trabajo exposicion grupo_5Trabajo exposicion grupo_5
Trabajo exposicion grupo_5
 
Base de datos
Base de datosBase de datos
Base de datos
 
Que es una base de datos
Que es una base de datosQue es una base de datos
Que es una base de datos
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Informatica
InformaticaInformatica
Informatica
 
Clase3
Clase3Clase3
Clase3
 
Base de datos
Base de datosBase de datos
Base de datos
 
Análisis de la Prueba ENLACE
Análisis de la Prueba ENLACEAnálisis de la Prueba ENLACE
Análisis de la Prueba ENLACE
 
4 4 Bases De Datos
4 4 Bases De Datos4 4 Bases De Datos
4 4 Bases De Datos
 
Lina marcela alzate, stephany aristizabal introducción a las bases de datos 1...
Lina marcela alzate, stephany aristizabal introducción a las bases de datos 1...Lina marcela alzate, stephany aristizabal introducción a las bases de datos 1...
Lina marcela alzate, stephany aristizabal introducción a las bases de datos 1...
 
Introduccion a las bases de datos
Introduccion a las bases de datosIntroduccion a las bases de datos
Introduccion a las bases de datos
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Contenido UNIDAD II. COMO SON LAS BASES DE DATOS.
Contenido UNIDAD II.  COMO SON LAS BASES DE DATOS.Contenido UNIDAD II.  COMO SON LAS BASES DE DATOS.
Contenido UNIDAD II. COMO SON LAS BASES DE DATOS.
 
Base De Datos I Completo
Base De Datos I CompletoBase De Datos I Completo
Base De Datos I Completo
 

Similaire à Estructura de Datos - UNCo

Presentación1
Presentación1Presentación1
Presentación1jesanchez5
 
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptxPresentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptxCarlosEspaa16
 
Teoria de la informacion
Teoria de la informacionTeoria de la informacion
Teoria de la informacionrikupenumbra
 
Teoría de la Información
Teoría de la InformaciónTeoría de la Información
Teoría de la InformaciónRafael Brito
 
Definiciones Y Ejemplos Pp2003
Definiciones Y Ejemplos   Pp2003Definiciones Y Ejemplos   Pp2003
Definiciones Y Ejemplos Pp2003diego_aacc
 
Teoría de la información
Teoría de la informaciónTeoría de la información
Teoría de la informaciónoscar Guaita
 
Teoria de la informacion
Teoria de la informacionTeoria de la informacion
Teoria de la informacionJanetsy Salazar
 
Base de datos antonio yeguez
Base de datos antonio yeguezBase de datos antonio yeguez
Base de datos antonio yeguezanto2707
 
Dato - Qué es, concepto, ejemplos y tipos de datos.pdf
Dato - Qué es, concepto, ejemplos y tipos de datos.pdfDato - Qué es, concepto, ejemplos y tipos de datos.pdf
Dato - Qué es, concepto, ejemplos y tipos de datos.pdfRichard Daniel Coro Arcayne
 

Similaire à Estructura de Datos - UNCo (20)

Sesion01EDx.pptx
Sesion01EDx.pptxSesion01EDx.pptx
Sesion01EDx.pptx
 
Presentación1
Presentación1Presentación1
Presentación1
 
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptxPresentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
Presentación Estructuras de Datos Y Estructuras de Almacenamiento.pptx
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Teoria de la informacion
Teoria de la informacionTeoria de la informacion
Teoria de la informacion
 
Rafael brito
Rafael britoRafael brito
Rafael brito
 
Teoría de la Información
Teoría de la InformaciónTeoría de la Información
Teoría de la Información
 
Definiciones Y Ejemplos Pp2003
Definiciones Y Ejemplos   Pp2003Definiciones Y Ejemplos   Pp2003
Definiciones Y Ejemplos Pp2003
 
German sgbd
German sgbdGerman sgbd
German sgbd
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Estructura de datos benita
Estructura de datos benitaEstructura de datos benita
Estructura de datos benita
 
Base de datos
Base de datosBase de datos
Base de datos
 
Teoría de la información
Teoría de la informaciónTeoría de la información
Teoría de la información
 
Teoria de la informacion
Teoria de la informacionTeoria de la informacion
Teoria de la informacion
 
Base de datos antonio yeguez
Base de datos antonio yeguezBase de datos antonio yeguez
Base de datos antonio yeguez
 
Dato - Qué es, concepto, ejemplos y tipos de datos.pdf
Dato - Qué es, concepto, ejemplos y tipos de datos.pdfDato - Qué es, concepto, ejemplos y tipos de datos.pdf
Dato - Qué es, concepto, ejemplos y tipos de datos.pdf
 

Plus de Paralafakyou Mens

Corriente alterna trifasica
 Corriente alterna trifasica Corriente alterna trifasica
Corriente alterna trifasicaParalafakyou Mens
 
Introduccion a la discucion filosofica de lo moral
Introduccion a la discucion filosofica de lo moralIntroduccion a la discucion filosofica de lo moral
Introduccion a la discucion filosofica de lo moralParalafakyou Mens
 
Marco legal del profecional en analista de sistemas
Marco legal del profecional en analista de sistemasMarco legal del profecional en analista de sistemas
Marco legal del profecional en analista de sistemasParalafakyou Mens
 
Insalar, compilar y depurar cobol
Insalar, compilar y depurar cobolInsalar, compilar y depurar cobol
Insalar, compilar y depurar cobolParalafakyou Mens
 
Ejercicios de sistema de datos
Ejercicios de sistema de datosEjercicios de sistema de datos
Ejercicios de sistema de datosParalafakyou Mens
 
Como instalar Cobol en window 7
Como instalar Cobol en window 7Como instalar Cobol en window 7
Como instalar Cobol en window 7Paralafakyou Mens
 
Instalar e configurar o cobol45 no dos
Instalar e configurar o cobol45 no dosInstalar e configurar o cobol45 no dos
Instalar e configurar o cobol45 no dosParalafakyou Mens
 
Ingles tecnico i para informática 2013 en oficio
Ingles tecnico i para informática 2013  en oficioIngles tecnico i para informática 2013  en oficio
Ingles tecnico i para informática 2013 en oficioParalafakyou Mens
 
Programacion de juegos para celulares
Programacion de juegos para celularesProgramacion de juegos para celulares
Programacion de juegos para celularesParalafakyou Mens
 
Un proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobolUn proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobolParalafakyou Mens
 
Montaje y desmontaje de rodamientos
Montaje y desmontaje de rodamientosMontaje y desmontaje de rodamientos
Montaje y desmontaje de rodamientosParalafakyou Mens
 

Plus de Paralafakyou Mens (20)

Corriente alterna trifasica
 Corriente alterna trifasica Corriente alterna trifasica
Corriente alterna trifasica
 
Introduccion a la discucion filosofica de lo moral
Introduccion a la discucion filosofica de lo moralIntroduccion a la discucion filosofica de lo moral
Introduccion a la discucion filosofica de lo moral
 
Marco legal del profecional en analista de sistemas
Marco legal del profecional en analista de sistemasMarco legal del profecional en analista de sistemas
Marco legal del profecional en analista de sistemas
 
Insalar, compilar y depurar cobol
Insalar, compilar y depurar cobolInsalar, compilar y depurar cobol
Insalar, compilar y depurar cobol
 
Manula de cobol
Manula de cobolManula de cobol
Manula de cobol
 
Guia de cobol
Guia de cobolGuia de cobol
Guia de cobol
 
2° practico p. politica
2° practico p. politica2° practico p. politica
2° practico p. politica
 
Ejercicios de sistema de datos
Ejercicios de sistema de datosEjercicios de sistema de datos
Ejercicios de sistema de datos
 
Etica final
Etica finalEtica final
Etica final
 
Como instalar Cobol en window 7
Como instalar Cobol en window 7Como instalar Cobol en window 7
Como instalar Cobol en window 7
 
Instalar e configurar o cobol45 no dos
Instalar e configurar o cobol45 no dosInstalar e configurar o cobol45 no dos
Instalar e configurar o cobol45 no dos
 
Ingles tecnico i para informática 2013 en oficio
Ingles tecnico i para informática 2013  en oficioIngles tecnico i para informática 2013  en oficio
Ingles tecnico i para informática 2013 en oficio
 
Programacion de juegos para celulares
Programacion de juegos para celularesProgramacion de juegos para celulares
Programacion de juegos para celulares
 
Teorías étcias
Teorías étciasTeorías étcias
Teorías étcias
 
Un proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobolUn proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobol
 
Montaje y desmontaje de rodamientos
Montaje y desmontaje de rodamientosMontaje y desmontaje de rodamientos
Montaje y desmontaje de rodamientos
 
Curso de power cobol
Curso de power cobolCurso de power cobol
Curso de power cobol
 
Niquel y sus aleaciones
Niquel y sus aleacionesNiquel y sus aleaciones
Niquel y sus aleaciones
 
Materiales magneticos
Materiales magneticosMateriales magneticos
Materiales magneticos
 
Aluminio
AluminioAluminio
Aluminio
 

Estructura de Datos - UNCo

  • 1. UNIVERSIDAD NACIONAL DE CÓRDOBA ESCUELA SUPERIOR DE COMERCIO MANUEL BELGRANO NIVEL TERCIARIO ANALISTA DE SISTEMAS ESTRUCTURA DE DATOS Prof. MARIA DEL VALLE ARANDA AÑO 2013
  • 2. FU DAME TACIÓ Desde la perspectiva del aprendizaje esta asignatura implica añadir nuevos niveles de dificultad y complejidad a las ya complejas relaciones entre la estructura del conocimiento y las estrategias de aprendizaje a desarrollar por los alumnos. La resolución de problemas en este espacio es considerada desde una concepción tecnológica, donde un problema se plantea combinando la lógica del conocimiento y la aplicación de diferentes técnicas. Desde un enfoque pedagógico, la incorporación de las estructuras de datos como modelos matemáticos y lógicos en correspondencia con su aplicación, no sólo pone en juego los esquemas de pensamiento de los alumnos, sino también representa un estímulo creativo, y una valoración de la propia producción. La integración de conocimientos y experiencia a través de la práctica facilitan una comprensión más reflexiva y crítica de los contenidos curriculares, destacando el dominio de los procesos que son necesarios para alcanzar nuevos conocimientos. OBJETIVOS GE ERALES • Desarrollar el razonamiento intuitivo y lógico. • Valorar la información como fundamento en la toma de decisiones. • Escoger las herramientas informáticas más convenientes para el desempeño de su actividad. • Generar estrategias personales de resolución de problemas. OBJETIVOS ESPECÍFICOS • Reconocer la organización elemental de los datos como medio para la obtención de información. • Reconocer las distintas estructuras de datos como medios de almacenamiento de información. • Desarrollar habilidades para seleccionar las estructuras de datos más adecuadas teniendo en cuenta el contexto de funcionamiento de las mismas. • Desarrollar una lógica para la resolución de problemas que se le planteen en la aplicación de las estructuras de datos. CO TE IDO U IDAD I: Introducción. Organización elemental de los datos. Dato. Campo. Registro. Tabla o Archivo. Atributo. Entidad. Conjunto de Entidades. Elementos simples. Grupos de Elementos. Tipos de datos. Tipos de registros.
  • 3. Clave primaria. Creación de índices. U IDAD II: Estructura de Datos. Concepto. Arrays. Array Lineal. Array Bidimensional. Array multidimensional. Listas Enlazadas. Punteros. Enlaces. Árbol. Pila. Cúspide. Cola. Frente y final. Grafo. U IDAD III: Operaciones con Estructura de Datos Recorrido. Búsqueda. Inserción. Eliminación. Modificación. Ordenamiento. Mezcla. U IDAD IV: Algoritmos. Complejidad y relación espacio-tiempo. Algoritmos de búsqueda. Algoritmos de ordenamiento. Diseño. Notación algorítmica. Componentes. U IDAD V: Cadenas. Procesamiento de cadenas. Terminología básica. Almacenamiento de cadenas. Operaciones con cadenas. METODOLOGÍA DE E SEÑA ZA El docente desarrollará los contenidos teóricos, para luego ser aplicados en las ejercitaciones planteadas. Los trabajos prácticos han sido formulados con la intención de que los conceptos teóricos sean llevados al campo experimental, al de la resolución de los problemas. Se busca enfatizar la formación práctica de los alumnos privilegiando el “saber - hacer”.
  • 4. BIBLIOGRAFIA: • Estructura de Datos, Seymour Lipschutz, Mc Graw Hill, 2001. • Estructura de Datos y Organización de Archivos, Mary e. S. Loomis, Prentice-Hall, 2001. • Estructura de Datos y Algoritmos, Roberto Hernández, Raquel Dormido, Juan Carlos Lázaro y S. Ros, Prentice-Hall, 2001. • Estructura de Datos, Luis Joyanes Aguilar, Ignacio Zahonero Martínez, Mc Graw-Hill, 2007. • Notas de Cátedra con ejercitaciones prácticas, versión 2013, elaborada por María del Valle Aranda.
  • 5. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD I: Introducción. Organización elemental de los datos. Introducción: Los datos son los que dan origen a la información. Por lo tanto los datos son la materia prima de la que deriva la información. La información esta compuesta por datos que se han recopilado y procesado de una forma significativa. En nuestras experiencias diarias nos enfrentamos rutinariamente a ambos conceptos, datos e información. Usamos los datos para producir información que nos ayudará a tomar decisiones. Por ejemplo, al levantarnos por la mañana recopilamos dos unidades de datos: vemos la hora y luego recordamos la hora a la que comienza nuestra actividad. Sustraemos después la hora actual de la hora de inicio de nuestra actividad. Este cálculo mental nos da la información de cuánto tiempo debemos emplear para prepararnos e irnos. Basándonos en esta información tomamos una decisión: apresurarnos, o relajarnos y tomar todo con calma. Producimos información a través de datos para ayudarnos a tomar decisiones en miles de situaciones cada día. Organización Elemental de los datos: Dato. Campo. Registro. Archivo. En el siguiente nivel de jerarquía se combinan los caracteres para representar un elemento dato. El elemento dato, a veces mal llamado campo por ser este quien lo contiene, es la unidad lógica más pequeña en la representación de datos. Algunos ejemplos pueden ser el Número de Legajo del Empleado, el Nombre y el Estado Civil. Luego, los elementos datos relacionados se agrupan para formar los registros lógicos, o simplemente registros. Por ejemplo el Número de Legajo del Empleado, el Nombre y el Estado Civil están agrupados para formar el registro del empleado. En el nivel siguiente nivel de la jerarquía los registros que tienen el mismo elemento dato están combinados para formar un archivo. Por ejemplo el archivo contiene el Número de Legajo, el Nombre y el Estado Civil de todos los empleados de la empresa. Realizado por María del Valle Aranda pág. 5
  • 6. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año 1234 Daniel Casado 1245 Mariela Casada 1253 Raúl Soltero Registro lógico 1253 Raúl Soltero Campo (dato) 1253 Archivo Atributo. Entidad. Conjunto de Entidades. Como veíamos anteriormente, los datos se organizan jerárquicamente en campos, registros y archivos. Para hacer estos términos más precisos, introduciremos una terminología adicional. Una entidad es algo que posee ciertos atributos o propiedades a los cuales se les puede asignar valores. Estos valores pueden ser numéricos o no. Por ejemplo, los siguientes son posibles atributos de la entidad "empleado de la empresa", con los correspondientes valores: Atributos: Nombre Edad Sexo DNI Valores: Juan García 34 M 18.457.987 Entidades con atributos iguales (por ejemplo, todos los empleados de la empresa) forman un conjunto de entidades. Cada atributo de un conjunto de entidades tiene un rango de valores, que es el conjunto de valores posibles que pueden asignársele a ese atributo. El término información a veces se usa al referirse a datos con atributos determinados. La forma en que los datos se organizan en la jerarquía: campos, registros y archivos refleja la relación entre atributos, entidades y conjuntos de entidades. Así un campo es una unidad elemental de información que representa un atributo de una entidad, un registro es una colección de campos de una entidad y un archivo es una colección de registros de las entidades contenidas en un conjunto de entidades. Elementos simples. Grupo de elementos. La palabra datos hace referencia a valores simples o conjuntos de valores. Denominamos elemento a una unidad básica de valores. A aquellos elementos que pueden dividirse en otros reciben el nombre de grupo de elementos. Por el contrario, los no subdivisibles reciben el nombre de elementos simples. Por ejemplo el nombre de un empleado Realizado por María del Valle Aranda pág. 6
  • 7. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año puede ser subdividido en tres subunidades: nombre, primer apellido y segundo apellido, pero el número de documento debe ser tratado como una unidad simple. Tipos de Datos: Los diferentes lenguajes de programación como así también los sistemas encargados de administrar y manipular datos, coinciden en utilizar los siguientes tipos de datos: Texto: es el más común, también denominados carácter, son utilizados para el almacenamiento de caracteres alfanuméricos (letras, números, símbolos). Numérico: Se puede introducir números enteros o fraccionarios. Lógico: sólo pueden contener el valor verdadero o falso. El valor 1 representa verdadero y el valor 0 falso. Tipos de Registros: Los registros pueden clasificarse por su longitud. Un archivo puede tener registros de longitud fija o variable. En los registros de longitud fija, todos ellos contienen los mismos elementos con la misma cantidad de espacio asignado a cada uno. En los registros de longitud variable los registros del archivo pueden tener distintas longitudes. Por ejemplo, los registros de estudiantes normalmente tienen longitud variable, puesto que estudiantes diferentes pueden cursar distintas materias. En general los registros de longitud variable tienen longitudes mínimas y máximas. Clave primaria: Cada registro de un archivo puede contener muchos campos elementales, aunque el valor de un determinado campo puede determinar unívocamente el registro dentro del archivo. Este campo K recibe el nombre de clave primaria y los valores k1, k2,... de dichos campos reciben el nombre de claves o valores de clave. Por ejemplo supongamos que un vendedor de automóviles lleva un archivo de inventario donde cada campo del mismo contiene los siguientes datos: Número de Serie Tipo Modelo Precio Accesorios El campo Número de Serie puede servir como clave primaria para el archivo, puesto que cada automóvil tiene un único número de serie. Realizado por María del Valle Aranda pág. 7
  • 8. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Supongamos que un Club mantiene un archivo de socios, donde cada registro contiene los siguientes datos: Nombre Dirección Teléfono Cuotas que debe Aunque hay cuatro unidades de dato, nombre y dirección pueden ser grupos de unidades. Aquí el nombre es una clave primaria. Nótese que la dirección y el teléfono no sirven como clave primaria, puesto que algunos socios pueden pertenecer a la misma familia y tener la misma dirección y teléfono. Realizado por María del Valle Aranda pág. 8
  • 9. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD I: TRABAJOS PRÁCTICOS Los trabajos prácticos han sido formulados con la intención de que los conceptos teóricos sean llevados al campo experimental, al de la resolución de los problemas. Se busca enfatizar la formación práctica de los alumnos privilegiando el “saber - hacer”. Realizado por María del Valle Aranda pág. 9
  • 10. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Objetivo: A fin de realizar un reconocimiento de la organización elemental de los datos: datos, campos, registros, archivos, atributos, entidades, conjunto de entidades, tipos de datos, tipos de registros, claves primarias y mediante la utilización de herramientas informáticas tales como la Planilla de Cálculos Excel o el Sistema de Gestión de Base de Datos Access, desarrollaremos los trabajos prácticos N° 1, 2, 3, 4, 5 y 6. Realizado por María del Valle Aranda pág. 10
  • 11. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 1 1. Mediante la Planilla de Cálculos Excel, genere un archivo con los siguientes registros, validando los datos de la tercera y cuarta columna. Guárdelo en su disco y carpeta de trabajo. Gallardo, Laura Albareda, Juan Bastide, José L. Socca, Diego González, Fabiana Tissera, Florencia Alonso, Javier Dahabar, Juan Martínez, Mónica Benavídez, Claudia Cáceres, Santiago Dalmacio, Joaquín Villada, Susana Echauri, Lorena Montoya, Lorenzo Catamarca 1176-BºGral.Paz Sarachaga 123-BºAlta Cba. 9 de Julio 2987-BºAlto Alberdi Independencia 1165-BºNva.Cba. Ferreyra 1165-BºP.V.Sarsfield Aconcagua 213-BºPque.Capital Lamarca 3212-BºUrca La Cordillera 3399-BºCentenario Av.Colón 31-BºCentro Av.Sabattini 432-BºMaipú Entre Ríos 1876-BºSan Vicente Dean Funes 1234-BºAlberdi Neuquén 678-BºProvidencia Juan B.Justo 3645-BºAyacucho Manuel Reyna 654-BºCerveceros F M M M F F M M F F M M F F M 17 16 17 17 16 17 16 17 16 17 17 16 16 17 17 49 65 70 72 53 60 75 59 69 47 62 82 54 68 60 1,52 1,69 1,82 1,85 1,63 1,70 1,72 1,63 1,72 1,50 1,64 1,75 1,60 1,72 1,60 2. Asígnele a cada conjunto de entidades el atributo correspondiente. 3. Genere con los datos anteriores un nuevo archivo, desagrupando aquellos atributos conformados por grupos de elementos. Guárdelo en su disco y en su carpeta de trabajo. 4. Indique cuales son los campos que conforman este nuevo archivo. 5. Defina para cada archivo la clave primaria. 6. Con la clave definida para cada archivo realice un ordenamiento de los registros que los conforman. 7. En el primero de los archivos aplique filtro avanzado para separar los registros considerando el Sexo. 8. En el otro archivo aplique filtro avanzado para separar los registros teniendo en cuenta la Edad. 9. Guarde las modificaciones realizadas sobre ambos archivos. Realizado por María del Valle Aranda pág. 11
  • 12. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 2 1. Crear una Base de Datos: a) Ejecute Access. b) Seleccione la opción Base de datos en blanco. Pulse el botón Aceptar. c) El cuadro Archivo nueva base de datos que aparece en pantalla, nos permite seleccionar la unidad de disco en la cual queremos guardar nuestra base de datos y el nombre que queremos asignarle a la misma. Elija Guardar en: su disco y carpeta de trabajo y como nombre de archivo coloque VIDEO. d) Pulse el botón Crear. En su pantalla aparecerá la ventana de Base de datos. 2. Creación de Tablas: En este punto va a crear la primera tabla de la base de datos VIDEO. a) Pulse sobre el botón Nuevo. En su pantalla aparecerá la ventana Nueva Tabla. b) Seleccione la opción Vista Diseño y pulse el botón Aceptar. 3. Definición de los campos: a) Sitúe el cursor en la primera fila de la columna Nombre de campo. b) Teclee Código de Socio. Pulse la tecla Tab para pasar a la columna Tipo de Datos. c) Elija Tipo de dato, Numérico. Pulse la tecla Tab para pasar a la columna Descripción. Teclee Código de socio. d) Continúe cargando los siguientes campos: Nombre de campo Nombre Apellido DNI Domicilio Ciudad Código Postal Teléfono Observaciones Tipo de dato Texto Texto Numérico Texto Texto Numérico Texto Memo Descripción Nombre del cliente Apellido del cliente D.N.I del cliente Dirección del cliente Ciudad donde reside Teléfono del cliente Otros datos de interés. 4. Propiedades de los campos: Utilizando el Mouse, sitúese en el campo denominado Código de Socio. Observe el cuadro de Propiedades del campo situada en la parte inferior izquierda de la pantalla. Coloque las siguientes propiedades a los campos. Nombre de campo Código de Socio Nombre Apellido DNI Domicilio Ciudad Código Postal Teléfono Observaciones Tamaño Formato Entero Largo 20 30 Entero Largo 30 20 Entero largo 20 Estándar Estándar Número General Realizado por María del Valle Aranda Lugares Título Decimales 0 Código Requerido Indexado sí si (sin dup.) 0 Nombre Apellido D.N.I. sí sí sí no si (con dup.) si (sin dup.) 0 Dirección Ciudad Código Postal sí no no no no no Teléfono no Otros datos de Interés. no no no pág. 12
  • 13. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año 5. Clave principal: Seleccione el campo Código de Socio. Luego desde la barra de herramientas elija el icono Clave Principal y presione sobre él, o en el menú Edición seleccione la opción Clave Principal. 6. Guarde la tabla con el nombre Socios. Cierre la Aplicación. 7. Modificar el Diseño de una tabla: a) b) c) d) Seleccione la Tabla Socios y presione sobre el botón Diseño. Ubique el campo Código Postal. En Tipo de campo, cámbielo a Texto. Modifique las siguientes Propiedades: Tamaño 8. Guarde las modificaciones realizadas, cierre la tabla y salga de la aplicación. Realizado por María del Valle Aranda pág. 13
  • 14. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 3 1. Añadir registros a una Tabla: a) Ejecute Access. b) Pulse sobre la opción Abrir una base de datos Existente. y seleccione la base de datos VIDEO de la lista de archivos. Presione el botón Abrir c) Seleccione la tabla socios y presione el botón Abrir. d) Ubíquese en el campo Código de socio y cargue los siguientes registros: Código Socio 10008 10001 Nombre Daniela José Apellido Castillo Juncos DNI 21.987.987 5.980.567 Domicilio Ciudad Código Postal Betania 234 Córdoba 5009 Sucre 345 Córdoba 5000 Teléfono Observaciones 4236587 4879854 e) Guarde la tabla y ciérrela. f) Cierre la aplicación. 2. Resuelva el Práctico Nº 4. 3. Seleccione el Formulario SOCIOS y ábralo. Utilizando el mismo termine de cargar los datos de la tabla VIDEO. Código Socio 10014 Nombre Apellido DNI Emilia Martínez 18.089.567 10005 Diego Perez 25.456.967 10012 Mónica Ruiz 19.777.909 10002 10004 Ana Santiago Mercado Sánchez 4.678.987 13.567.789 10016 Carlos Ferrero 8.098.987 10000 10015 Barrios Ferreyra 7.980.980 22.984.345 10009 Juan Juan Alberto Lorena Parnisa 13.984.098 10013 Mario Odone 14.980.065 10018 Ana María Garay 17.985.456 10006 Roberto Meratto 23.345.678 10010 María Prado 15.677.877 10007 10019 Luis Rodrigo Castro García 14.567.890 13.765.679 10003 Laura Suarez 12.345.678 10011 10017 Sandra Estela Paez Gómez 16.987.098 9.987.098 Domicilio Código Postal San Martín Córdoba 5000 908 Sarmiento Córdoba 5001 345 Castro Barros 367 Salta 56 Mendoza 34 4º B Coronel Olmedo 896 Colón 234 Tablada 34 Mariano Larra 234 Mariano Moreno 456 Tucumán 65 Dean Funes 678 Las Palmeras 45 Lafinur 56 Entre Ríos 67 9 de Julio 567 2º A Maipú 190 Martín Coronado 345 Ciudad Teléfono Observaciones 4908765 4567090 Córdoba 5009 4223677 Córdoba 5001 Córdoba 5000 Córdoba 5009 4098723 035434879892 4876500 Córdoba 5000 Córdoba 5000 4567898 4667565 Córdoba 5009 4239800 Córdoba 5000 4870978 Córdoba 5000 4662443 Córdoba 5000 4229856 Córdoba 5009 400866 Córdoba 5009 Córdoba 5000 4879809 4098766 Córdoba 5000 4986543 Córdoba 5000 Córdoba 5009 Suele devolver las fuera de término 4556890 4321212 Buena clienta Todas las semanas lleva 2 películas Buena Clienta 4. Cierre el formulario y la aplicación. Realizado por María del Valle Aranda pág. 14
  • 15. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 4 1. Formulario. a) b) c) d) e) f) g) h) i) j) k) l) Abra la base de datos VIDEO. Seleccione la pestaña Formulario. Pulse el botón Nuevo. Elija la opción Asistente para formularios. Seleccione la Tabla Socios. Presione sobre el botón Aceptar. Seleccione haciendo doble clic sobre los mismos, los campos: Código de Socio, Nombre, Apellido, DNI, Domicilio, Ciudad, Código Postal, Teléfono, Observaciones. Pulse el botón Siguiente. Elija la opción En Columnas y Pulse el botón Siguiente. Seleccione un estilo y pulse el botón Siguiente. Coloque como título SOCIOS y pulse el botón Terminar. Maximice la ventana del formulario. Verifique que esté seleccionado el modo Vista Diseño. Si fuera necesario, aumente la sección del encabezado, para ello ubique el puntero del Mouse en la línea que separa el Encabezado del formulario de la sección Detalle, el puntero se transformará en una doble flecha arrastre el mouse hasta conseguir el ancho deseado. Utilizando el icono Etiqueta, de la barra Cuadro de herramientas, coloque como Encabezado de Formulario su apellido y nombre y como Pié de Formulario la fecha del día. Guarde el Formulario y cierre el mismo. Presione el botón Abrir y chequee todos los registros. Cierre nuevamente el Formulario. 2. Continúe con la resolución del Trabajo Práctico N°3, punto 3). Realizado por María del Valle Aranda pág. 15
  • 16. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 5 1. Ejecute Access. Continuaremos trabajando con el Sistema de Gestión de Base de Datos, generado en el Trabajo Práctico Nº2. 2. Pulse sobre la opción Abrir una base de datos Existente y seleccione la base de datos VIDEO de la lista de archivos. Presione el botón Abrir. 3. En la ventana Base de datos, en la Pestaña Tabla, presione el botón Nuevo. 4. Cree las siguientes tablas. Defina Tipo de campos, propiedades y clave principal para las mismas, teniendo en cuenta los datos que contendrán. 5. Genere para cada una de ellas un formulario, y desde allí cargue los datos. Tabla TEMA Código de tema 1 2 3 4 5 6 7 8 9 10 11 12 Tema Suspenso Terror Bélica Oeste Comedia Musical Drama Ciencia-Ficción Policial Histórica Aventuras Erótica 6. Guarde la Tabla con el nombre TEMA. Cargue los datos mediante el Formulario. 7. Utilizando el mismo procedimiento anterior cree las tablas PELÍCULAS y ALQUILER. Tabla PELÍCULAS Código Título de Película 1 De Aquí a la eternidad 2 Superman 3 Sed de Mal 4 J.K.F 5 Uno, Dos, Tres El Mago de Oz Un Horizonte Lejano Misión Explosiva El Color Púrpura 6 7 9 10 Intérprete 1 Intérprete 2 Director Burt Lancaster Christopher Reeve Charton Heston Kevin Costner Montgomery Fred Clif Zinnemann Margot Kidder Richard Donner Janet Leigh Orson Welles Sissi Spacek Oliver Stone James cagney Judy Garland Horst Bucholz Billy Wilder Tom Cruise Frank Morgan Victor Fleming Nicole Ron Kidman Howard Tom Erika Eleniak Berenger Danny Glover Whoopi Goldberg Realizado por María del Valle Aranda Dennis Hopper Steven Spielberg Productora Warner Bros Universal Código Año Durade producción tema ción 7 1965 130 8 1978 137 9 1965 110 10 1991 189 5 1960 95 Universal 6 1939 94 Paramount Pictures 7 1992 134 Paramount Pictures Warner Bros 5 1993 97 8 1985 148 Universal Warner Brose United Artist pág. 16
  • 17. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Tabla ALQUILER: Código de Alquiler 1101 1102 1103 1107 1112 1117 1118 1122 1124 Código de Socio 10000 10009 10011 10002 10005 10000 10013 10008 10008 Realizado por María del Valle Aranda Código de película 4 1 5 9 10 2 7 7 1 Fecha de Alquiler 10/02/13 20/02/13 05/02/13 30/01/13 24/02/13 06/02/13 01/02/13 26/02/13 27/02/13 Fecha de devolución 12/02/13 22/02/13 08/02/13 04/02/13 26/02/13 10/02/13 03/02/13 28/02/13 01/03/13 Devuelto Sí Sí Sí Sí Sí Sí Sí Sí No pág. 17
  • 18. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 6 1. Realice la siguiente consulta: CONSULTA1 (tabla PELÍCULAS) a) b) c) d) e) f) g) h) i) j) k) Abra la base de datos VIDEO. Seleccione la pestaña Consultas. Haga Clic en el botón Nuevo. Elija la opción Vista Diseño. La primera opción que aparece nos pregunta que tabla vamos a utilizar en la Consulta, en este caso seleccione PELÍCULAS y pulse el botón agregar. Pulse el botón Cerrar para indicarle a Access que la consulta sólo se compone de una tabla. En la parte Inferior de la ventana, en el registro Campo, elija en la primera columna, Código de Película, en la segunda, Título, en la tercera, Director y en la cuarta, Productora. En el registro Criterios, ubíquese en la columna Productora y tipee Universal. En el registro Mostrar, verifique que todos los casilleros estén tildados Guarde la consulta con el nombre de CONSULTA1. Ciérrela. Para visualizar el resultado de la Consulta, presione sobre el botón Abrir. Cierre nuevamente la Consulta 2. Realice las siguientes consultas, tenga en cuenta los Criterios a utilizar, de acuerdo a los resultados que se muestran a continuación. CONSULTA2 (tabla SOCIOS). RESULTADO: Código 10003 10004 Nombre Laura Santiago Apellido Suarez Sánchez Domicilio 9 de Julio 567 2º A Mendoza 34 4º B Teléfono 4986543 03543-4879892 Guarde la consulta como CONSULTA2 CONSULTA3 (tabla ALQUILER , PELÍCULAS y SOCIOS). RESULTADO: Código de Socio 10008 Apellido Socio Castillo Nombre Socio Daniela 10008 Castillo Daniela Código de película 7 1 Título Devuelto Un Horizonte Lejano De Aquí a la eternidad Sí No Guarde la consulta como CONSULTA3. Realizado por María del Valle Aranda pág. 18
  • 19. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD II: Estructura de Datos Estructura de Datos Los datos pueden organizarse de muchas formas diferentes; el modelo matemático o lógico de una organización particular de datos recibe el nombre de estructura de datos. La elección de un modelo de datos en particular, depende de dos cuestiones. Primero, debe ser lo suficientemente complejo para mostrarnos la relación entre los datos y lo que representan y por el contrario, la estructura debe ser lo suficientemente simple para que los datos puedan ser procesados de forma eficiente cuando sea preciso. Dentro de las estructuras de datos posibles encontramos: Arrays La estructura de datos más simple es el array lineal (o unidimensional). Un array lineal es una lista de un número finito de datos simples, referenciados por medio de un conjunto de n números consecutivos, normalmente 1, 2, 3,...., n. Si designamos el array con la letra A, los elementos de A los denotamos por medio de la notación subindicada a1, a2, a3,....., an o a través de notación parentizada A(1), A(2), A(3),....., A(n) o por corchetes A[1], A[2], A[3],....., A[n] donde el número n en A[n] recibe el nombre de índice y A[n] el de variable subindicada. Comentario: las notaciones parentizadas o con corchetes son las que se utilizan para computadoras ya que los lenguajes de programación no suelen permitir letras minúsculas con subíndices. Realizado por María del Valle Aranda pág. 19
  • 20. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Array Lineal. Ejemplo: El array lineal ESTUDIANTES consta de los nombres de siete estudiantes (Figura 1). Aquí ESTUDIANTE 1 representa a Juan Arnau, ESTUDIANTE 2 a Federico Bodo, y así sucesivamente. 1 2 3 4 5 6 7 ESTUDIANTE Juan Arnau Federico Bodo Gastón Gutiérrez Cecilia Luna Gabriela Pignata José Silva Ricardo Villegas Figura 1 Los arrays lineales reciben el nombre de arrays unidimensionales debido a que cada elemento del mismo se referencia a través de un solo índice. Un array bidimensional es una colección de datos pertenecientes a una misma entidad, donde cada elemento se referencia por dos índices (tales arrays reciben el nombre de matrices en matemáticas y de tablas en aplicaciones comerciales). De forma análoga se definen los arrays multidimensionales. Array Bidimensional. Ejemplo: Una cadena de 7 Sucursales, compuestas por 3 Depósitos cada una, puede representar sus ventas mensuales, como se muestra en la Figura 2. Estos datos pueden almacenarse en una computadora, utilizando un array bidimensional en el que el primer índice representa una Sucursal y el segundo un Depósito. Si elegimos VENTAS como nombre para el array , tendremos que: Sucursal VENTAS[1, 1] = VENTAS[1, 2] = VENTAS[1, 3] = . . . . VENTAS[7, 3] = Depósito 111500 113200 110700 117632 Decimos que el tamaño del array es de 7 x 3, puesto que contiene 7 filas (horizontales) y 3 columnas (verticales). Realizado por María del Valle Aranda pág. 20
  • 21. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Depósito Analista de Sistemas Informáticos Estructura de Datos 1º Año 1 2 3 Sucursal 1 2 3 4 5 6 7 111500 125750 117170 18970 127547 131131 114287 113200 121754 118340 112760 125876 127541 116784 110700 132230 115730 17760 113765 120787 117632 Figura 2 Listas enlazadas Nos introduciremos en el tema mediante un ejemplo. Supongamos que un concesionario de automóviles mantiene un archivo donde cada registro contiene el nombre de un Cliente y su correspondiente Vendedor, como se muestra a continuación: 1 2 3 4 5 6 7 8 9 Cliente Antonietti Brizuela Carreño Dávila Fernández Martínez Pedrotti Sánchez Vilches Figura 3 Vendedor Lozada Venturi Palacios Lozada Venturi Lozada Palacios Venturi Lozada Claramente este archivo puede ser almacenado en la computadora por medio de una tabla compuesta por dos columnas con nueve nombres cada una. Sin embargo esta puede no ser la forma más útil de almacenar los datos (Figura 3). Otra forma de almacenar los datos es mediante dos arrays separados. En uno se podrían almacenar los nombres de los clientes, junto con una entrada llamada puntero que nos indicaría la localización del Vendedor correspondiente, y estos estarían almacenados en el segundo array. La estructura descripta se muestra en la Figura 4, donde algunos punteros son representados por una flecha que tiene su origen en el campo puntero del primer array y el destino en el Vendedor asociado. En la práctica, el uso de un entero como puntero utiliza menos espacio que un nombre, por lo tanto esta representación economiza espacio, sobre todo si cada Vendedor tiene cientos de Clientes. Realizado por María del Valle Aranda pág. 21
  • 22. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Cliente Antonietti Brizuela Carreño Dávila Fernández Martínez Pedrotti Sánchez Vilches 1 2 3 4 5 6 7 8 9 Puntero 1 3 2 1 3 1 2 3 1 Figura 4 Analista de Sistemas Informáticos Estructura de Datos 1º Año Vendedor Lozada Palacios Venturi 1 2 3 Supongamos que la Gerencia de Comercialización necesita una lista de Clientes de un Vendedor determinado. Usando la representación de datos de la Figura 4, habrá que buscar en toda la lista de Clientes. Una forma de simplificar la búsqueda es utilizar los punteros de otra forma; cada Vendedor puede tener un conjunto de punteros que dan la posición de sus Clientes, como se muestra en la Figura 5. La principal desventaja de esta representación es que cada Vendedor puede tener muchos punteros y que el conjunto de estos cambiará cuando agreguemos o eliminemos Clientes. 1 2 3 Vendedor Lozada Palacios Venturi Puntero 1, 4, 6, 9 3, 7 2, 5, 8 Figura 5 Otra forma de almacenar los datos de la Figura 3, se muestra a continuación (Figura 6). Aquí cada Vendedor posee un puntero que apunta a su primer Cliente. En la lista Cliente el campo enlace apunta al siguiente Cliente del mismo Vendedor, indicando el último Cliente asociado con un 0. Esto queda reflejado en la Figura 6, para el Vendedor Lozada. Usando esta representación es más fácil obtener la lista de Clientes para un Vendedor determinado, e insertar y eliminar Clientes. Realizado por María del Valle Aranda pág. 22
  • 23. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario 1 2 3 4 5 6 7 8 9 Cliente Antonietti Brizuela Carreño Dávila Fernández Martínez Pedrotti Sánchez Vilches Analista de Sistemas Informáticos Estructura de Datos 1º Año Enlace 4 5 7 6 8 9 0 0 0 Vendedor Lozada Palacios Venturi Puntero 1 3 2 1 2 3 Figura 6 Las formas anteriores de representación son ejemplos de Listas enlazadas. Aunque los términos puntero y enlace son usados indistintamente, trataremos de utilizar el término puntero cuando un elemento de una lista apunta a otro de una lista distinta y el término enlace cuando lo hace hacia otro, pero de la misma lista. Árboles Los datos presentan frecuentemente relaciones de jerarquía entre ellos. Las estructuras de datos que refleja esta relación recibe el nombre de grafo en árbol o simplemente árbol. Indicaremos a continuación algunas de sus propiedades básicas mediante dos ejemplos. Ejemplo de Estructura de Registro Mientras que un archivo puede representarse mediante uno o más arrays, un registro que contiene grupos de elementos o elementos simples, puede describirse mejor mediante una estructura de árbol. Un registro perteneciente a la entidad Empleado, puede contener los siguientes atributos ó campos: Legajo, Nombre, Dirección, Edad, Sueldo, Subordinados Sin embargo, Nombre puede ser un grupo de elementos compuesto por Apellido y Nombre de pila. También Dirección puede estar conformada por los ítems Calle, Número, Zona donde a su vez ésta última puede estar compuesta por los subítems Barrio, Localidad, Realizado por María del Valle Aranda pág. 23
  • 24. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Provincia, Código Postal. Esta estructura jerárquica se muestra en la Figura 7a. Otra forma de representar la estructura de árbol es mediante niveles como se muestra en la Figura 7b. Empleado Legajo Nombre Apellido Dirección Nombre de Pila Calle Número Barrio Edad Sueldo Subordinados Zona Localidad Provincia Código Figura 7a 01 Empleado 02 Legajo 02 Nombre 03 Apellido 03 Nombre de pila 02 Dirección 03 Calle 03 Número 03 Zona 04 Barrio 04 Localidad 04 Provincia 04 Código Postal 02 Edad 02 Sueldo 02 Subordinados Figura 7b Ejemplo de Expresiones Algebraicas Sea la expresión algebraica: (2x + y) (a - 7b)3 Usando la flecha vertical ( ) para expresar la exponenciación y el asterisco (*) para la multiplicación, podemos representar esta expresión mediante el árbol de la Figura 8. Observe que el orden en que deben realizarse las operaciones quedan reflejadas en el diagrama: la exponenciación debe realizarse después de la resta, y la multiplicación situada en la cúspide del árbol debe ejecutarse al último. Realizado por María del Valle Aranda pág. 24
  • 25. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año * + * 2 y - x a 3 * 7 b Figura 8 Pila Una pila, también denominada sistema último-dentro primero-fuera (LIFO), es una lista lineal de registros, en la cual las inserciones y extracciones tienen lugar sólo por un extremo llamado cúspide. Esta estructura es similar en su operación a una pila de platos como los de la Figura 9. En ella los platos son siempre agregados o retirados por la cúspide de la misma. cúspide Figura 9 Realizado por María del Valle Aranda pág. 25
  • 26. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Cola Una cola, también denominada sistema primero-dentro primero-fuera (FIFO), es una lista lineal en la cual las extracciones se realizan siempre por un extremo, llamado frente y las inserciones por el extremo contrario llamado final de la lista. Esta estructura opera de la misma forma que un grupo de personas esperando el ómnibus, la primera persona en la cola es la primera en subir al ómnibus. Parada de ómnibus Grafos Los datos contienen, en algunos casos, relaciones entre ellos que no son necesariamente jerárquicas. Por ejemplo supongamos que una empresa aérea realiza vuelos sólo entre las ciudades conectadas por líneas. La estructura de datos que refleja esta relación recibe el nombre de grafo. • • Jujuy Salta • • • Rosario Córdoba Buenos Aires • Mendoza Nota: Se suelen usar muchos nombres al referirse a los elementos de una estructura de datos, algunos de ellos son: elemento, ítem, registro, nodo y objeto. El nombre que se utiliza depende del tipo de estructura, del contexto en el que se usa esa estructura y de quién la utiliza. Realizado por María del Valle Aranda pág. 26
  • 27. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD II: TRABAJOS PRÁCTICOS Objetivo: Definir la estructura de datos más adecuada (arrays, listas enlazadas, árboles, colas, pilas, grafos) para el almacenamiento de los datos que se dan a continuación. Resuelva los Trabajos Prácticos N° 7, 8, 9 y 10. Realizado por María del Valle Aranda pág. 27
  • 28. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 7 1. Dados los siguientes datos, que representan CANTIDAD de ALUMNOS por Curso y por Sección, realice mediante la Planilla de Cálculos el almacenamiento de los mismos. Indique la estructura de datos utilizada. [8, 8] =35 [3, 7] =31 [2, 4] =35 [7, 2] =34 [8, 2] =34 [8, 5] =35 [2, 3] =32 [5, 2] =34 [6, 1] =32 [7, 1] =33 [4, 5] =35 [4, 4] =35 [7, 3] =34 [6, 5] =34 [6, 7] =31 [1, 1] =32 [5, 7] =31 [8, 1] =32 [1, 8] =36 [8, 4] =35 [5, 3] =34 [7, 4] =35 [1, 6] =34 [4, 7] =31 [3, 1] =33 [4, 6] =30 [3, 6] =34 [4, 8] =36 [1, 2] =34 [8, 3] =32 [4, 1] =32 [5, 8] =36 [2, 6] =30 [5, 1] =33 [8, 7] =31 [6, 3] =34 [2, 8] =36 [6, 4] =36 [7, 8] =36 [1, 3] =34 [3, 4] =35 [8, 6] =30 [2, 5] =35 [2, 1] =33 [1, 4] =36 [3, 3] =34 [1, 5] =34 [5, 4] =36 [6, 2] =35 [4, 3] =34 [4, 2] =34 [5, 5] =35 [3, 8] =36 [2, 2] =35 [6, 6] =30 [7, 6] =34 [1, 7] =35 [5, 6] =34 [3, 2] =34 [7, 5] =35 [7, 7] =31 [3, 5] =35 [2, 7] =31 [6, 8] =36 2. Mediante la utilización de funciones, determine: a) Total de Alumnos por Curso b) Promedio de Alumnos por Curso. c) Cantidad mayor de alumnos para cada Curso. d) Cantidad menor de alumnos para cada Curso. e) Cantidad Total de Alumnos. 3. Guarde el archivo en su carpeta y disco de trabajo. Realizado por María del Valle Aranda pág. 28
  • 29. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 8 1. Dados los siguiente datos, y utilizando la estructura de datos más adecuada para economizar espacio de almacenamiento, proponga todas las formas posibles de almacenar los datos, con la estructura de seleccionada. Utilice para ello la Planilla de Cálculos. Guarde todo lo realizado, en un archivo dentro de su carpeta y disco de trabajo. Paciente Abregú, Marcelo Boccelli, Mario Colombres, Francisco Constanzo, Fabiana Dionissi, Laura Duarte, Aníbal Echegaray, Pedro Farías, Claudia García, Silvia Gómez, Pablo Huerta, Mariela Juárez, Sandra Klotz, Eva López, Angélica Llorens, Sandra Mercier, Lorena Murta, Rosa Ninci, Esteban Ortiz, Eduardo Otobre, Fernanda Pascetti, Elena Paschini, Soledad Quiroga, Miriam Ramírez, Osvaldo Robledo, Raúl Sánchez, Carlos Soria, David Suárez, Jorge Taborda, Ernesto Tobares, Mariza Uboldi, Marcos Vivas, Horacio Winkel, Marcela Médico Gómez Centurión Arévalo Fernández Fernández Mantovani Soria Gómez Centurión Mantovani Gómez Centurión Fernández Arévalo Mantovani Gómez Centurión Fernández Soria Mantovani Arévalo Gómez Centurión Mantovani Fernández Arévalo Fernández Soria Arévalo Gómez Centurión Fernández Mantovani Fernández Arévalo Gómez Centurión Arévalo Mantovani Gómez Centurión 2. Agregue una columna para numerar los registros, denomínela Nº de Paciente, complétela mediante el procedimiento de rellenar automáticamente, incrementando el contenido de la celda. 3. Mediante el procedimiento de Filtro Avanzado, genere una tabla para cada Médico, con los pacientes que cada uno de ellos atiende. 4. Indique a que tipo de estructura se asemeja, lo realizado en el paso anterior. Realizado por María del Valle Aranda pág. 29
  • 30. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 9 1. Dada la siguiente estructura de datos: 01 Empleado 02 Nombre del Empleado 03 Nombre 03 Apellido 02 Sueldo 03 Sueldo Básico 03 Sueldo Bruto 02 Sindicato 03 Afiliado 03 Aporte 2. Los datos que debería almacenar en la misma, son: GARCIA, LAURA, 11350, 11645, Sí, 1% ALVAREZ, LUIS, 11550, 11780, No, 0% BARROS, ARMANDO, 11670, 11875, Sí, 1% SANCHEZ, ISMAEL, 12100, 12650, Sí, 1% CACERES, EFRAIN, 11870, 12130, No, 0% CORNEJO, DANIEL, 11935, 12298, No, 0% DIAZ, ALDO, 11645, 11878, Sí, 1% FARIAS, JUAN, 11780, 12120, Sí, 1% BUSTOS, ENRIQUE, 11458, 11623, Sí, 1% GASPO, GENOVEVA, 11618, 11895, Sí, 1% LUNA, CECILIA, 11950, 12250, Sí, 1% ALONSO, JAVIER, 12250, 12743, Sí, 1% PARDO, CRISTINA, 11590, 11780, No, 0% RODRIGUEZ, GABRIEL, 11450, 11660, No, 0% MORENO, LUIS, 11359, 11487, No, 0% 3. Mediante la Planilla de Cálculos, realice el almacenamiento de los datos y guárdelo en su carpeta y disco de trabajo. Para determinar el Aporte del empleado al Sindicato, resuélvalo mediante el uso de Funciones, si el Empleado es Afiliado al Sindicato, deberá calcular el 1% sobre el Sueldo Básico, caso contrario, no realizará Aporte (0%). 4. Indique el tipo de estructura utilizado. Realizado por María del Valle Aranda pág. 30
  • 31. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº 10 Provincia Bs. As. Córdoba Sta. Fe Entre Ríos La Pampa Estilo Pop 540750 Rock 178000 Clásica Folclore Tango Jazz Melódica 50000 89000 250750 98700 219570 Totales: 1. Con los datos anteriores, almacenados mediante la Planilla de Cálculos, obtenga la Cantidad de Discos Vendidos por Estilo musical en cada Provincia, teniendo en cuenta lo siguiente: En Córdoba se vendió un 30% menos que en Bs. As. En Sta. Fe se vendió un 37.5% menos que en Bs. As. En Entre Ríos se vendió un 45% menos que en Bs. As. En La Pampa se vendió un 10% más que en Entre Ríos. 2. Mediante funciones calcule Totales para cada Provincia. 3. Indique la estructura de datos utilizados. 4. Señale los valores que le corresponden a los siguientes índices: Cantidad Cantidad Cantidad Cantidad Cantidad Cantidad Cantidad Cantidad Cantidad Cantidad de Discos Vendidos[7, 1] de Discos Vendidos[3, 5] de Discos Vendidos[1, 4] de Discos Vendidos[5, 5] de Discos Vendidos[7, 5] de Discos Vendidos[2, 4] de Discos Vendidos[6, 2] de Discos Vendidos[4, 1] de Discos Vendidos[4, 5] de Discos Vendidos[1, 1] Realizado por María del Valle Aranda pág. 31
  • 32. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD III: Operaciones con Estructura de Datos Operaciones con Estructura de Datos Los datos que contiene una estructura se procesan por medio de determinadas operaciones. De hecho, generalmente elegimos una determinada estructura de datos, en función de las operaciones que realizamos sobre ella. Las que se describen a continuación son las que se utilizan con mayor frecuencia: Recorrido: implica acceder a cada registro una única vez aunque uno o más ítems del registro sean procesados. Este acceso y procesamiento también se denomina a veces con el término "visitar el registro". Búsqueda: implica la localización de un registro caracterizado por una determinada clave o también el acceso a los registros que cumplen una o más condiciones. Inserción: implica añadir nuevos registros a la estructura de datos. Eliminación: esta operación implica borrar un registro de la estructura de datos. Modificación: esta operación implica un cambio o actualización de los datos contenidos en un registro. Ordenamiento: esta operación implica clasificar los registros conforme a un orden lógico determinado. Mezcla: esta operación implica combinar dos archivos previamente ordenados en uno único que también lo está. Con frecuencia dos o más de estas operaciones se usan conjuntamente, por ejemplo, cuando queremos eliminar un registro con una clave determinada, primero debemos buscarlo para luego recién eliminarlo. Realizado por María del Valle Aranda pág. 32
  • 33. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD III: TRABAJOS PRÁCTICOS Objetivo: Analizar el comportamiento de las estructura de datos (arrays, listas enlazadas, árboles, colas, pilas, grafos) ante las operaciones eliminación, ordenamiento, de inserción, modificación, búsqueda, mezcla o recorrido. Resuelva los Trabajos Prácticos 11, 12, 13 y 14. Realizado por María del Valle Aranda pág. 33
  • 34. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº11 Objetivo: Realizar recorrido, búsqueda, inserción, eliminación, modificación, ordenamiento y mezcla de los datos, contenidos en diferentes estructuras de datos. Utilizaremos el Sistema de Gestión de Base de Datos Video. 1. Recorrido: a) Para realizar un recorrido por los datos contenidos en cada una de las tablas, prepare un informe para Socios, Tema, Películas y Alquiler. Coloque en cada uno de ellos como Encabezado: Video: Tabla de xxxxxxx, donde xxxxxxx será el nombre de la tabla respectiva, y como pie de página la fecha actual y el nº de página. 2. Búsqueda: a) Mediante Consulta, localice en la Tabla Socios, todos aquellos que tengan Código Postal 5001 ó 5009. b) En la Tabla Películas y mediante Consulta, encuentre las películas de la productora Universal, realizadas entre 1960 y 1980. c) En la Tabla Alquiler utilizando Consulta, muestre cuantas veces fue alquilada la película De aquí a la eternidad, durante el 1/2/13 y el 20/2/13. 3. Inserción: a) Agregue a la Tabla Socios, Películas y Alquiler, los siguientes registros: Código Socio 10020 10021 10022 10023 10024 Código de Película 8 Nombre Mateo Diego Olga Ariadna Marcelo Título 11 Cinema Paradiso Superman II 12 La Misión 13 El lado oscuro del corazón Apellido Pedreira Pérez Sánchez Murcia Romero DNI 28.097.187 31.950.564 6.254.871 27.351.241 20.354.167 Domicilio Ciudad Perú 234 Jujuy 1435 Urquiza 331 Murcia 814 Garzón 191 Córdoba Córdoba Córdoba Córdoba Córdoba Intérprete 1 Intérprete 2 Philippe Noiret Christopher Reeve Robert de Niro Jacques Giuseppe Perrin Tornatore Margot Kidder Richard Donner Jeremy Irons Roland Joffe Sandra Eliseo Ballesteros Subiela Darío Grandinetti Realizado por María del Valle Aranda Director Código Postal 5001 5003 5000 5012 5011 Productora Teléfono 4681254 4738853 4221458 4551778 4519547 Observaciones Alquila por 5 días Código de Año Duración tema producción Franco Cristaldi Universal 7 1988 123 8 1980 137 Goldcrest 7 1986 120 Fernado Socolowickz 7 1992 110 pág. 34
  • 35. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Código de Alquiler 1125 1126 1127 1129 1130 Código de Socio 10022 10024 10013 10021 10020 Analista de Sistemas Informáticos Estructura de Datos 1º Año Código de película 8 12 8 12 1 Fecha de Alquiler 17/03/13 21/03/13 05/04/13 30/04/13 02/05/13 Fecha de devolución 19/03/13 23/03/13 08/04/13 02/05/13 04/05/13 Devuelto Sí No Sí Sí Sí 4. Eliminación: a) En la tabla Socios, ubique los siguientes y elimínelos: 10001, 10003, 10006, 10012 y 10015. 5. Modificación: a) En la tabla Socios y mediante la opción Reemplazar que se encuentra en el menú Edición, modifique los siguientes datos: Código Socio 10000 10008 Nombre Apellido DNI Domicilio Ciudad Colón 1234 Código Postal 5000 Teléfono Observaciones 4267898 Pagó abono para todo el año 2013. 10020 10022 10023 Pereyra 4.254.871 Mircó 6. Ordenamiento: a) En la tabla Socios, realice un ordenamiento ascendente por el campo Apellido. b) En la tabla Tema, realice un ordenamiento ascendente por el campo Tema. c) En la tabla Películas, realice un ordenamiento ascendente por el campo Año producción. d) En la tabla Alquiler, realice un ordenamiento descendente por el campo Código de Alquiler. 7. Mezcla: a) Genere en Excel la siguiente tabla, guárdela en su carpeta y disco de trabajo con el nombre Socios. Código Socio 10025 10026 10027 10028 10029 Nombre Alejandro Lucía Hugo Guillermo Mónica Apellido Fonseca Ibañez Loza Murcia Arceloni DNI 14.898.342 17.958.564 4.299.831 14.360.181 28.150.314 Domicilio Ciudad Petorutti 21 Cornejo 349 Urquiza 931 Galeano 79 Gorriti 1917 Córdoba Córdoba Córdoba Córdoba Córdoba Código Postal 5009 5009 5000 5009 5011 Teléfono 4811254 4818851 4251957 4811787 4569547 Observaciones Paga con Tarjeta Abonado Abonado b) Desde Access, cerciórese que la base de datos Video esté abierta, seleccione la tabla Socios (no la abra). c) Desde la barra de menú seleccione Archivo, en ella la opción Obtener datos externos y luego Importar. d) En la ventana Importar ingrese los siguiente datos: en Buscar en: seleccione su disco y carpeta de trabajo, en Tipo de archivo: seleccione Microsoft Excel (*.xls), en Nombre de archivo: tipee Socios, presione luego en el botón Importar. Realizado por María del Valle Aranda pág. 35
  • 36. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año e) Aparecerá la ventana del Asistente para importación de hojas de cálculo, en ella se presentará seleccionada la opción Mostrar hoja de cálculos (Socios), presione entonces el botón Siguiente. f) En la ventana siguiente sólo deberá seleccionar en la casilla de verificación Primera fila contiene títulos de columnas, presione luego sobre el botón Siguiente. g) En esta ventana deberá elegir la opción En una tabla existente y allí seleccionar la tabla Socios, presione el botón Siguiente. h) En la última ventana aparecerá seleccionada la tabla Socios, presione el botón Terminar. i) Una vez finalizada la importación de los datos, aparecerá un cuadro de diálogo indicándolo, presione en el botón Aceptar. Ahora puede abrir la tabla Socios y corroborar la operación de Mezcla realizada. Realizado por María del Valle Aranda pág. 36
  • 37. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº12 Objetivo: Analizar el comportamiento de los datos en una pila, ante las operaciones de inserción y eliminación. 1. Dada la siguiente información, utilice para el almacenamiento de la misma la estructura de datos denominada pila. Realice esta actividad mediante Access, llame la base de datos como EMPRESA y la tabla como PERSONAL. 2. Utilice un formulario para la carga de los datos. Legajo ApellidoNombre 1190 Asis 1105 Ana D.N.I. Dirección Teléfono Fecha Tiene Sueldo Ingreso Hijos? Básico 27.158.195 Fragueiro 1219 422-1118 Barzola Lorenzo 18.186.125 Tejeda 1876 481-6212 10/11/05 No 1118 Córdoba Sergio 11.947.521 La Pampa 89 425-1247 08/09/02 Sí 1182 Córdoba Claudia 28.189.125 Reyna 765 462-1587 01/01/00 No 1196 Espada Mónica 19.157.117 Valladolid 435 455-1247 10/02/04 Sí 1119 1157 Filguera Josefina 21.128.147 García Manuel 23.524.116 Betania 874 Galeano 234 489-4712 15/05/03 01/03/02 No Sí 1113 1125 1171 Huergo Manuel Juárez Sandra León Horacio 28.341.774 9 de Julio 987 24.258.241 Junín 234 17.181.145 Artigas 131 425-8791 01/08/00 421-1145 14/05/05 423-4112 30/11/04 Sí Sí No 1110 Luna 27.541.377 Richieri 1987 465-4157 01/10/01 No 1131 Montes Carmen 29.166.165 Mendoza 1432 471-5874 15/07/02 Sí 1155 Nieto Federico 17.151.191 Mercedarios 91 464-1177 10/06/05 Sí 1188 1103 Piñeiro Roldán Laura Manuel 26.317.119 16.125.135 Tablada 914 Pinzón 327 428-1290 01/11/99 15/04/07 Sí No 1168 Sánchez Gabriela 18.168.165 Lafinur 1587 481-5557 01/02/06 No 1173 1116 Taborda Silvina 25.654.251 Corro 314 Teruel Santiago 15.115.122 Tosno 2319 422-3331 02/08/02 469-2547 01/01/00 Sí Sí 1183 Uria Diego 10.191.541 Baigorrí 775 473-1254 01/09/05 No 1121 Vivas Walter 27.125.125 Urquiza 2518 01/02/00 Sí Nicolás 01/02/99 Sí Antecedentes Laborales $ 11.850 Trabajó en empresas de telefonía y correo. $12.200 Trabajó en empresa autopartista. $11.630 Trabajo en medios de comunicación. $11.875 Trabajó en instituciones bancarias. $ 11.945 Trabajó en empresa de servicios $ 12.100 $ 11.750 Trabajó en industria electrónica. $ 11.580 $ 11.725 $ 11.670 Trabajó en empresa autopartista. $12.250 Trabajo en medios de comunicación. $ 11.770 Trabajó en instituciones educativas. $ 11.675 Trabajó en empresas gastronómicas. $ 11.725 $ 11.875 Trabajó en empresa de servicios $11.675 Trabajó en instituciones financieras. $ 11.580 $ 11.850 Trabajó en empresa autopartista. $ 11.875 Trabajó en empresa de servicios $ 11.945 Trabajó en empresas gastronómicas. 3. Analice y resuelva la siguiente situación: "como consecuencia de la recesión económica la empresa debe reducir el 50% de su personal". ¿Cuáles serán los empleados que deberá despedir, considerando la estructura de datos empleada? Realizado por María del Valle Aranda pág. 37
  • 38. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año 4. Analice como es el comportamiento de la operación de inserción de registros en una estructura de pila. 5. Antes de eliminar los registros de la tabla PERSONAL genere otra de características similares a la anterior, denomínela PERSONAL DESPEDIDO. Una vez eliminados los registros de la primera almacénelos en esta última. Utilice para ello las herramientas Copiar, Pegar (solamente estructura) y Pegar datos anexados. Realizado por María del Valle Aranda pág. 38
  • 39. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº13 Objetivo: Analizar el comportamiento de los datos en una lista enlazada, ante las operaciones de ordenamiento, inserción y eliminación. 1. Dada la siguiente información, utilice para el almacenamiento de la misma la estructura de datos denominada lista enlazada. Realice esta actividad mediante Excel, llame al archivo PAISES. Continente País Europa América Asia África Europa Australia y Oceanía África América Asia Australia y Oceanía Europa Europa Europa África América América Asia África Asia África Asia Asia Europa América América Suecia Argentina India Argelia España Australia Nigeria Cuba Mongolia Nueva Zelanda Austria Italia Bélgica Marruecos Colombia Brasil Irán Sudáfrica Irak Egipto Afganistán China Portugal Venezuela Canadá 2. Una vez almacenada la información en la lista enlazada, realice un ordenamiento alfabético de la misma utilizando como clave de ordenamiento el campo países. Analice el comportamiento de los datos enlazados ante la operación realizada. 3. Elimine de la lista enlazada, los registros que corresponden a los siguientes países: Mongolia, Nueva Zelanda, Austria, Colombia y Egipto. Analice el comportamiento de los datos enlazados ante esta operación. Realizado por María del Valle Aranda pág. 39
  • 40. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año 4. Inserte en la lista enlazada los siguientes registros, cuide mantener el ordenamiento anterior. Analice el comportamiento de los datos restantes de la lista al efectuar esta operación. Continente Asia Australia y Oceanía Europa América África Realizado por María del Valle Aranda País Pakistán Papua Nueva Guinea Francia Bolivia Mozambique pág. 40
  • 41. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico Nº14 Objetivo: Analizar el comportamiento de los datos en una cola, ante las operaciones de inserción y eliminación. 1. Utilice para el almacenamiento de la siguiente información, la estructura de datos denominada cola. Hágalo mediante Access, cree la base de datos CONSULTORIO y dentro de ella la tabla TURNO PACIENTES. 2. Mediante formulario realice la carga de los datos. Nº de Turno Nº Historia Clínica Apellido y Nombre D.N.I. Edad Teléfono Tiene Nombre Mutual? de la Mutual Motivo de la consulta 10 1521 ARDILES, Sara 4.998.775 65 472-3318 Sí PAMI Dolor de cabeza y mareos. Estado febril. Decaimiento, fatiga y mareos. Congestión nasal y fiebre. Dolor de garganta y fiebre Decaimiento y fiebre. Estado gripal. Dolor de oídos y fiebre. Chequeo general. Dolor lumbar. Decaimiento, dolor de garganta, fiebre. Decaimiento y mareos. Estado gripal. Dolor de cabeza y náuseas. Chequeo médico. Estado febril. 2 7 1570 1573 BORIOLI, Luis CAMARA, Delia 18.186.125 7.998.775 31 52 489-9612 425-1247 No Sí DASPU 14 1501 DAVILA, Hernán 3.189.228 72 482-1587 Sí PAMI 11 1597 EREÑU, Mónica 19.157.117 28 455-1214 Sí DASPU 9 1591 FANTINI, José 21.128.147 25 469-4712 No 1 3 1547 1553 FERRARI, Manuel 23.524.116 HUERTA, Miguel 6.341.777 26 Sí No APROSS 425-8791 6 18 15 1525 1517 1560 JALIL, Marta LERDA, Rodolfo LIPARI, Ariel 14.258.241 17.181.145 11.541.377 39 33 45 489-1145 425-6512 465-1547 Sí Sí No OSECAC APROSS 13 1531 MONTT, Gloria 10.116.165 47 481-5174 Sí IOSEP 5 12 1585 1548 MUNS, Jorge PANERO, Raúl 17.151.191 16.173. 911 464-7711 482-9120 Sí Sí OSECAC OSPLAD 8 17 1568 1508 6.125.135 13.168.165 56 40 489-4457 No Sí DASPU 4 1519 ROSEN, Silvia SANTIAGO, Claudia TEJAS, Samuel 8.654.251 51 425-1333 Sí OSECAC Fiebre y dolor de garganta. 16 1546 UBALDO, Teresa 5. 511.122 60 473-5247 Sí APROSS Dolor de oídos, garganta y fiebre. 3. Todos los pacientes anotados asistieron a la consulta. Hasta el momento el médico lleva atendido 8 pacientes, ¿cuáles serán los registros que deberán ser dados de baja de acuerdo a la estructura de datos utilizada? Realizado por María del Valle Aranda pág. 41
  • 42. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año 4. Antes de eliminar los registros de la tabla TURNO PACIENTES genere otra de características similares a la anterior, denomínela PACIENTES ATENDIDOS. Una vez eliminados los registros de la primera almacénelos en esta última. Utilice para ello las herramientas Copiar, Pegar (solamente estructura) y Pegar datos anexados. Exporte la tabla PACIENTES ATENDIDOS a la Planilla de Cálculos Excel con el mismo nombre. 5. Analice como es el comportamiento de la operación de inserción de registros en una estructura de cola. Realizado por María del Valle Aranda pág. 42
  • 43. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD IV: Algoritmos Algoritmos. Complejidad y Relación espacio-tiempo. Un algoritmo es una secuencia de operaciones o pasos perfectamente definidos que conducen a la resolución de un problema. Desarrollar algoritmos que manipulen eficientemente los datos será uno de nuestros objetivos. El tiempo y el espacio utilizado en ello miden la mayor o menor eficiencia de un algoritmo. La complejidad de un algoritmo es aquella función que da el tiempo y/o el espacio utilizado por el algoritmo en función de los datos de entrada. Cada algoritmo guarda una estrecha relación con una estructura de datos. Por ello, no siempre es posible utilizar el algoritmo más eficiente, puesto que la elección de la estructura de datos depende de varias cuestiones, incluida la de qué tipo de datos administramos y la frecuencia con que se realizan diferentes operaciones sobre ellos. Así deberemos encontrar una situación de compromiso entre tiempo y espacio utilizados. En general, si aumentamos el espacio necesario para almacenar los datos, conseguiremos un mejor rendimiento en el tiempo y viceversa. Estas ideas quedan reflejadas en los siguientes ejemplos. Algoritmos de búsqueda Supongamos tener un archivo que contiene, entre otros datos, el nombre y el número de teléfono de sus miembros y que dado el nombre de un miembro queremos conocer su número telefónico. Una forma de hacer esto es buscarlo secuencialmente en el archivo, es decir aplicando el siguiente algoritmo: Búsqueda secuencial: Recorre cada registro del archivo, uno a uno, hasta encontrar el nombre buscado y a partir de él el correspondiente número de teléfono. Es evidente que el tiempo necesario para ejecutar el algoritmo es proporcional al número de comparaciones realizadas. También suponiendo que todos los nombres del archivo tienen la misma probabilidad de ser encontrados o no, en un determinado momento, es claro que el promedio de comparaciones que realizaremos para esta búsqueda es n/2, donde n es el número de registros del archivo. Es decir la complejidad de la búsqueda secuencial viene dada por C(n)=n/2. Este algoritmo puede resultar inviable en la práctica si la lista consta de miles de nombres como en una guía telefónica. Sin embargo si los nombres están ordenados Realizado por María del Valle Aranda pág. 43
  • 44. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año alfabéticamente podremos utilizar un algoritmo más eficiente, denominado de búsqueda binaria. Búsqueda binaria: Comparar el nombre buscado con el que se encuentra en mitad de la lista. Con ello dividimos la lista en dos partes y determinamos en cual de las dos se encuentra el nombre buscado. Nuevamente repetimos el mismo proceso en la parte seleccionada hasta que encontramos el nombre deseado, o no. Se puede expresar que la complejidad del algoritmo de búsqueda binaria viene dada por C(n)=log2n De esta forma no se necesitan más que 15 comparaciones para encontrar un nombre de una lista que contiene 25.000 nombres. Aunque el algoritmo de búsqueda binaria es muy eficiente, presenta algunos inconvenientes. Concretamente el algoritmo implica la posibilidad de acceder directamente al elemento mitad de una lista. Por tanto la lista debe ser almacenada en algún tipo de array. Desgraciadamente para este tipo de estructura, la inserción de un elemento en ella implica el movimiento de un gran número de datos, al igual que ocurre cuando deseamos borrar o extraer algún dato del array. La compañía telefónica soluciona este problema editando una nueva guía cada año y manteniendo un archivo temporal para los clientes que se dan de alta durante ese período. Esto quiere decir que la compañía de teléfonos actualiza casi instantáneamente su lista de clientes. En este caso una lista secuencial puede no ser la estructura más adecuada. Ejemplo de la relación espacio-tiempo Supongamos que un archivo contiene en sus registros nombres, números de documento y más información adicional. Ordenar el archivo alfabéticamente y utilizar la búsqueda binaria es un buen método si lo que deseamos es encontrar un registro que contiene un determinado nombre. Por el contrario, supongamos que lo que conocemos es el número de documento. En este caso debemos realizar una búsqueda secuencial en todo el archivo, lo que implica gran cantidad de tiempo cuando el archivo es largo. ¿Cómo resolver este problema? Una forma es tener otro archivo igual, pero ordenado por número de documento. Esta solución duplica el espacio necesario para el almacenamiento de datos. Otra solución representada en la Figura 10 es la de tener el archivo principal ordenado de acuerdo al número de documento y adicionalmente un array auxiliar con dos columnas, la primera de ellas conteniendo la lista alfabética de los nombres y la segunda punteros que indiquen la dirección de los registros correspondiente en el archivo principal. Esta forma de resolver el problema es una de las más utilizadas, puesto que el espacio adicional necesario es mínimo frente a la información extra que proporciona. Realizado por María del Valle Aranda pág. 44
  • 45. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario 1 2 3 4 5 6 7 Nombre Avalos, Mara Brunelli, Oscar Cordi, Silvia Cuevas, Delia Dávila, Ana Lobos, Isabel Luna, Nicolás Puntero 3 71 2 29 57 7 17 Analista de Sistemas Informáticos Estructura de Datos 1º Año 1 2 3 4 5 6 7 Documento 17.158.125 18.339.451 21.125.144 22.154.147 24.254.717 28.119.154 29.178.112 Nombre Marín, Claudia Cordi, Silvia Avalos, Mara Tulián, José Soro, Carlos Brandán, Luis Lobos, Isabel Datos adicionales xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxxxxxxxxxx Figura 10 Lo mostrado en la figura anterior es similar al procedimiento de indexar un campo, crea un índice para ese campo indicando en que registro se encuentra el dato buscado. Comentario: Supongamos que un archivo está ordenado de acuerdo al número de Documento. Cuando añadimos nuevos registros los datos deben cambiar de posición para mantener el orden. Una forma sencilla de minimizar el número de movimientos es utilizar el número de Documento como dirección del registro. Con esto no sólo es innecesario el movimiento de registros cuando insertamos uno nuevo, sino que además el acceso a los mismos es instantáneo. La desventaja de este método de almacenamiento es que necesita de un gran número de posiciones de memoria para pocos cientos o a lo sumo unos pocos miles de registros. Claramente la relación espacio-tiempo obtenida no es muy ventajosa. Diseño de algoritmos Algunos algoritmos pueden ser muy complejos. Sin embargo, los programas que implementan los algoritmos más complejos pueden ser diseñados fácilmente, si organizamos los mismos en una estructura de módulos jerárquica, como la que se muestra en la Figura 11. En la organización descripta, cada programa contiene un módulo principal que representa una descripción general del algoritmo. Este módulo principal contiene llamadas a submódulos que contienen información más detallada que el principal. Cada submódulo puede hacer referencia a su vez a más submódulos, así sucesivamente. La organización de un programa en una estructura jerárquica de este tipo requiere el uso de ciertos criterios de flujo y de estructuras lógicas asociadas con el concepto de programación estructurada. Realizado por María del Valle Aranda pág. 45
  • 46. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Módulo principal Figura 11 Notación algorítmica El formato para representar formalmente un algoritmo se compone de dos partes. La primera consiste en una descripción de los propósitos del algoritmo, la descripción de las variables que intervienen en el mismo y de los valores de entrada de éstas. La segunda parte consiste en la secuencia de pasos que deben ser ejecutados para la consecución del resultado. Sea el array DATOS compuesto por valores numéricos y contenido en la memoria de la computadora. Deseamos encontrar la posición de memoria LUG y el valor del elemento mayor de DATOS. Sin conocer otra información, una forma de resolver el problema es la siguiente: Inicialmente comenzamos con LUG=1 y MAX=DATOS[1], a continuación comparamos MAX con los elementos siguientes de DATOS, representados por DATOS[K]. Si DATOS[K] es mayor que MAX, actualizaremos LUG y MAX de tal forma que ahora serán LUG=K y MAX=DATOS[K]. Los valores buscados se encontrarán en LUG y MAX al final del algoritmo. Una representación formal del algoritmo descrito, y cuyo diagrama de flujo se muestra en la Figura 12, es la siguiente: Algoritmo para encontrar el elemento mayor de un Array. Tiene como entrada un array no vacío, DATOS compuesto de valores numéricos. El algoritmo localiza el mayor de todos los datos contenidos en MAX y el lugar que ocupa LUG. Utilizamos la variable K como contador. Paso 1: [Inicialización]. K:=1, LUG:=1 y MAX =DATOS[1]. Paso 2: [Incrementar el contador]. K:=K+1. Paso 3: [Test del contador]. Si K > , entonces: Escribir LUG y MAX y salir. Paso 4: [Comparar y actualizar]. Si MAX<DATOS[K], entonces: LUG:=K y MAX:=DATOS[K]. Paso 5: [Repetición del ciclo]. Ir al paso 2. Realizado por María del Valle Aranda pág. 46
  • 47. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Comienzo K←1 LUG ← 1 MAX ← DATOS[1] K ← K+1 Si ¿Es K>N? Escribir: LUG, MAX No No Parar ¿Es MAX<DATOS[K]? Si LUG ← K MAX ← DATOS[K] Figura 12 Componentes de un algoritmo Pasos, control y salida Los pasos de los que consta un algoritmo son ejecutados uno detrás de otro, comenzando por el paso 1, salvo que se indique lo contrario. No obstante, el control puede transferirse a un paso n a través de la sentencia Ir a o Saltar al paso n. Por ejemplo en el algoritmo descrito anteriormente el paso 5 transfiere el control al paso 2. En la mayoría de los casos la sentencia puede ser eliminada si usamos convenientemente algunas estructuras de control. Si aparecen varias sentencias en el mismo paso, por ejemplo: K:=1, LUG:=1 y MAX:=DATOS[1] se ejecutan siempre de izquierda a derecha. El algoritmo termina cuando en los sucesivos pasos ejecutamos la sentencia Salir. Esta sentencia es equivalente a la STOP utilizada en FORTRAN o PARAR en los diagramas de flujo. Realizado por María del Valle Aranda pág. 47
  • 48. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Comentarios Cada paso puede contener un comentario que estará limitado por corchetes, para indicar que operaciones realiza dicho paso. Los comentarios pueden aparecer al principio o al final del mismo. Nombres de variables Los nombres de variables estarán compuestos siempre por letras mayúsculas como MAX o DATOS. Asimismo designaremos también con mayúsculas las variables de una sola letra o los contadores que utilicemos. Sentencias de asignación La operación de asignación de valores a variables las simbolizaremos mediante los dos puntos-igual := que se usa en Pascal. Por ejemplo: MAX:=DATOS[1] asigna el valor contenido en el DATOS[1] a la variable MAX. También se utilizan la flecha ← o el signo = para simbolizar esta operación. Entrada y salida Los datos pueden ser introducidos y asignados a las variables por medio de la sentencia Leer con el formato siguiente: Leer: Nombres de variables Análogamente, mensajes acotados por comillas y los valores de las variables se pueden escribir mediante las sentencias Escribir o Imprimir. Su formato es el siguiente: Escribir: Mensajes y/o nombres de variables Procedimientos El término procedimiento lo utilizaremos para referirnos a módulos que resuelven algoritmos completos, pero que son utilizados por otros que resuelven un problema general. Por tanto, la utilización de los términos módulos o procedimientos es una cuestión de nomenclatura. En ese sentido reservaremos la palabra algoritmo para la resolución de problemas generales. El término procedimiento lo utilizaremos también al describir cierto tipo de subalgoritmos. Realizado por María del Valle Aranda pág. 48
  • 49. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Estructuras de Control Los algoritmos y los correspondiente programas que los ejecutan en una computadora son fácilmente inteligibles si en su diseño utilizamos módulos internos (definidos dentro del mismo) y son diseñados de acuerdo a las reglas impuestas por los tres tipos de lógicas siguientes: Lógica secuencial o flujo secuencial. Lógica selectiva o flujo condicional. Lógica iterativa o flujo repetitivo. Lógica secuencial o flujo secuencial En la lógica secuencial implica que los módulos sean ejecutados uno a continuación del otro, excepto que alguna instrucción indique lo contrario. La secuencia puede indicarse explícitamente numerando los sucesivos pasos, o implícita en el que el orden lo impone la ubicación de las sentencias. Lógica selectiva o flujo condicional La lógica selectiva utiliza un conjunto de condiciones que implican la ejecución de alguna alternativa entre varias. Las estructuras que implementan este tipo de lógica reciben el nombre de estructuras condicionadas o estructuras Si. Para una mayor claridad, se indica el final de tal estructura mediante el comentario [Fin de la estructura condicional] o alguno equivalente. Estas estructuras condicionales pueden ser de tres tipos: a) Alternativa simple. Tiene la forma: Si condición, entonces: [Módulo A] [Final de la estructura condicional] El diagrama de flujo de esta estructura se muestra en la Figura 13 a). En este caso si la condición se cumple, se ejecuta el Módulo A, que puede estar compuesto por varias sentencias. En cualquier otro caso el Módulo A no se ejecuta y se transfiere el control al paso siguiente del algoritmo. Realizado por María del Valle Aranda pág. 49
  • 50. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año b) Alternativa doble. Esta estructura tiene la forma: Si condición, entonces: [Módulo A] Si No: [Módulo B] [Final de la estructura condicional] El diagrama de flujo de esta estructura se muestra en la Figura 13 b). Como se indica en el mismo, si la condición se cumple, se ejecuta el Módulo A. En caso contrario, se ejecutará el B. No ¿Condición? ¿Condición? Si No Si Módulo A Módulo A a) Alternativa simple Módulo B b) Alternativa doble Figura 13 c) Alternativa múltiple. Tiene la forma: Si condición (1), entonces: [Módulo A1] Si No Si condición (2), entonces: [Módulo A2] : Si No Si condición (M), entonces: [Módulo AM] Si No: [Módulo B] [Final de la estructura condicional] La lógica de esta estructura permite la ejecución de un solo módulo, concretamente el módulo siguiente a la primera condición que se cumpla o el módulo que sigue al Si No final. Realizado por María del Valle Aranda pág. 50
  • 51. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Lógica iterativa o flujo repetitivo El tercer tipo de lógica hace referencia a aquel tipo de estructura que implica la utilización de lazos o ciclos. Fundamentalmente pueden ser de dos tipos, ambas comienzan con la sentencia repetir seguida de un módulo que recibe el nombre de cuerpo del ciclo. El final del ciclo se indica mediante la sentencia [Fin de ciclo] o alguna equivalente. a) Ciclo Repetir-Desde utiliza una variable índice, por ejemplo K, para controlar el ciclo. Este tendrá la forma: Repetir-Desde K=R hasta S de T: [Módulo ] [Fin del ciclo] El diagrama de flujo de esta estructura puede verse en la Figura 14 a). R recibe el nombre de valor inicial, S el de valor final o valor de prueba y T el de incremento. El cuerpo del ciclo se ejecuta primero para un valor de K=R. La primera vez para K=R+T, la siguiente para K=R+2T, y así sucesivamente hasta que K>S. El diagrama de flujo presentado asume que el incremento T es positivo. Si T fuese negativo, el ciclo terminaría cuando K<S. b) Ciclo Repetir-Mientras utiliza una condición para controlar el mismo. Tiene la forma: Repetir-Mientras condición: [Módulo ] [Fin del ciclo] El diagrama correspondiente puede verse en la Figura 14 b). Obsérvese que el ciclo continúa hasta que la condición exigida sea falsa. Es evidente que previa a la estructura expuesta debe existir una sentencia que inicialice la condición que rige el ciclo. Asimismo dentro del módulo que se ejecuta dentro de este debe haber alguna sentencia que pueda cambiar la condición, para que el ciclo pueda terminar. Realizado por María del Valle Aranda pág. 51
  • 52. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año K←R ¿Es K>S? Si ¿Condición? No No Si Módulo (cuerpo del ciclo) Módulo (cuerpo del ciclo) K ← K+T a) Estructura repetir-desde b) Estructura repetir-mientras Figura 14 Realizado por María del Valle Aranda pág. 52
  • 53. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD IV: TRABAJOS PRÁCTICOS Objetivo: Determinar la complejidad en algoritmos de búsqueda secuencial y binaria. Reconocer los componentes de un algoritmo. Crear algoritmos con estructuras de control, de flujo condicional. Resuelva el Trabajo Práctico N° 15. Realizado por María del Valle Aranda pág. 53
  • 54. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año TRABAJO PRÁCTICO N° 15 1. Mediante Excel, determinar la complejidad en algoritmos de búsqueda secuencial y binaria, para los siguientes archivos. Nombre del archivo Cantidad de registros Afiliados Artículos Empleados Alumnos Asociados Abonados 2. Complejidad Búsqueda Secuencial Búsqueda Binaria 1000 20 250 5000 15000 25000 En el siguiente algoritmo, identifique los componentes que integran el mismo: Comienzo K←1 LUG ← 1 MAX ← DATOS[1] K ← K+1 Si ¿Es K>N? No No Escribir: LUG, MAX Parar ¿Es MAX<DATOS[K]? Si LUG ← K MAX ← DATOS[K] 3. Mediante un diagrama de flujo plantee un algoritmo, en el que incluya una estructura de control de lógica selectiva o flujo condicional, del tipo alternativa múltiple. Resuélvalo utilizando la Planilla de Cálculos Excel. Realizado por María del Valle Aranda pág. 54
  • 55. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD V: Cadenas Procesamiento de cadenas En la actualidad es muy frecuente el uso de las computadoras para el procesamiento de datos no numéricos llamados datos de caracteres, o de texto. La terminología informática utiliza preferentemente el término cadena para una secuencia de caracteres en lugar del término palabra, puesto que a este último le asigna otro significado. Por este motivo y para evitar confusiones el procesamiento de textos es referenciado por los términos "procesamiento de cadenas", "manipulación de cadenas" o "edición de textos". Una de las aplicaciones más importantes es el procesamiento de textos. Dicho procesamiento implica, generalmente, algún tipo de reconocimiento de muestras, tales como comprobar si una determinada palabra, aparece en un determinado texto. Terminología básica Cada lenguaje de programación posee un conjunto de caracteres que utiliza para comunicarse con la computadora. Este conjunto incluye generalmente a los siguientes: Alfabético: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Dígitos: 0 1 2 3 4 5 6 7 8 9 Caracteres especiales: + - / * ( ) , . $ = ´ El conjunto de caracteres frecuentemente simbolizado por especiales que generalmente incluye el blanco, , varía de un lenguaje a otro. Una secuencia finita S, compuesta por cero ó más caracteres, recibe el nombre de cadena. El número de caracteres presente en una cadena constituye su longitud. Una cadena con cero caracteres recibe el nombre de cadena vacía o cadena nula. Las cadenas las indicaremos incluyendo los caracteres que las componen entre comillas simples, estas comillas servirán también como delimitadores de cadenas. Realizado por María del Valle Aranda pág. 55
  • 56. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Son cadenas: ´EL FINAL´ ´SER O NO SER´ ´´ ´ ´ cuyas longitudes respectivas son 8, 12, 0 y 2. Insistimos en que el blanco es un carácter y por tanto contribuye a la longitud de la cadena. En algunos casos las comillas pueden omitirse si el contexto deja ver claramente que la expresión es una cadena. Sean S1 y S2 dos cadenas. La cadena obtenida colocando a continuación de los caracteres de S1 los de S2, recibe el nombre de concatenación de S1 y S2 y se expresa así: S1//S2. Evidentemente la longitud de S1//S2 es igual a la suma de las longitudes de S1 y S2. Decimos que una cadena Y es una subcadena de la cadena S si existen dos cadenas X y Z tales que: S = X//Y//Z Si X no es una cadena vacía decimos que es la subcadena inicial de S. Si Z no es una cadena vacía decimos que es la subcadena terminal de S. Lógicamente si Y es una subcadena de S, su longitud no puede ser mayor que la de S. Almacenamiento de Cadenas Generalmente una cadena puede almacenarse en algunos de estos tipos de estructura: Estructuras de longitud fija. Estructuras de longitud variable pero con máximo fijado. Estructuras enlazadas. Almacenamiento de longitud fija u orientada al registro: En el almacenamiento de estructura fija cada registro tiene la misma longitud, es decir contiene el mismo número de caracteres. Puesto que los datos suelen introducirse a través de terminales que poseen un ancho de 80 columnas, los registros serán de una longitud de 80 caracteres. Las principales ventajas de este tipo de almacenamiento son: el poder acceder fácilmente a cualquier registro y la facilidad a la hora de actualizar los datos de un determinado registro. Las desventajas en cambio son: se emplea mucho tiempo al leer los registros si la mayoría de la información en ellos almacenada consiste en blancos que no tienen una misión específica y algunos registros pueden necesitar más espacio que el disponible. Realizado por María del Valle Aranda pág. 56
  • 57. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Almacenamiento de longitud variable con máximo establecido: Aunque las cadenas pueden almacenarse en celdas de memoria, de longitud fija, puede ser ventajoso el conocer la longitud actual de la cadena. Por ejemplo no es necesario leer todo el registro cuando la cadena ocupa únicamente la primera parte de la celda de memoria. También algunas operaciones con cadenas dependen de la existencia de cadenas de longitud variable. El almacenamiento de cadenas de longitud variable en celdas de memoria de longitud fija puede realizarse de dos maneras: Utilizando una marca, como dos símbolos $$ consecutivos, para indicar el final de la cadena. Incluir la longitud de la cadena como un ítem adicional en un array de punteros. Estas marcas de separación, tales como el $$ o el array de punteros si bien ahorran espacio y son utilizadas con frecuencia en el almacenamiento de registros en memorias secundarias (discos) ya que son relativamente permanentes y precisan pocos cambios; suelen ser poco eficientes cuando las cadenas y su longitud están sometidas a cambios frecuentes. Almacenamiento enlazado: Una lista enlazada es una secuencia ordenada de celdas de memoria, llamadas nodos, donde cada nodo contiene un elemento llamado enlace, el cual apunta al siguiente nodo de la lista, es decir que contiene la dirección del siguiente elemento de la lista. Operaciones con Cadenas Subcadenas: cuando queremos acceder a una subcadena contenida en una determinada cadena, debemos conocer las siguientes elementos: el nombre de la cadena o la cadena misma, la posición que ocupa el primer carácter de la subcadena en la cadena a la que pertenece y la longitud de la subcadena. Llamaremos a esta operación Subcadena y escribiremos: SUBCADENA(cadena, inicial, longitud) Por ejemplo: SUBCADENA(´EL FINAL´,4,5) = ´FINAL´ Indexación: el término indexación o localización de secuencias hace referencia a la operación de encontrar la posición en que aparece por primera vez una secuencia de caracteres P dentro de un texto T. Simbolizamos esta operación de la siguiente forma: INDEX(texto, secuencia) Realizado por María del Valle Aranda pág. 57
  • 58. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Si la secuencia no se encuentra dentro del texto, entonces INDEX nos devuelve el valor 0. Por ejemplo: INDEX(´EL FINAL´, ´AL´)=7 Concatenación: Sean las cadenas S1 y S2. La concatenación de S1 y S2, simbolizada por S1//S2 es aquella obtenida colocando a continuación de los caracteres de S1 los de S2. Por ejemplo: Sea S1 = ´PABLO´ y S2 = ´NERUDA´ S1//S2 = ´PABLONERUDA´ ó S1/´ ´/S2 = ´PABLO NERUDA´ Longitud: el número de caracteres que componen una cadena recibe el nombre de longitud de la cadena y se simboliza así: LONGITUD(cadena) Por ejemplo: LONGITUD(´PABLO´)=5 Realizado por María del Valle Aranda pág. 58
  • 59. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año UNIDAD V: TRABAJOS PRÁCTICOS Objetivo: Reconocer dentro de los tipos de datos, las cadenas. Operar con ellas, respetando su sintaxis con el propósito de obtener la información requerida. Resuelva el Trabajo Práctico N° 16. Realizado por María del Valle Aranda pág. 59
  • 60. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Trabajo Práctico N°16 Objetivo: Encontrar subcadenas, determinar la posición de una subcadena, concatenar textos, y determinar la longitud de determinadas cadenas. 1. En la hoja 1 de la planilla de cálculos, realice una tabla como la que se muestra a continuación: Apellido Nombre Marín, Hadad, Alvarez, Trombotto, Torello, Fernández, Garzón, Fonseca, Patrito, Luna, Farías, Furcade, Mozzini, Lazarte, Quintana, Carmona, Ortiz, Brie, Gardella, Boccelli Matías Manuel Eduardo Ricardo Laura Emilia Marcela Alejandra Raúl Federico Roberto Martina Susana Fabián Claudio Fernando Lorenzo Felipe Lorena Cecilia Tipo de Documento D.N.I. D.N.I. Pas. Pas. D.N.I. Pas. C.I. C.I. C.I. D.N.I. C.I. Pas. C.I. D.N.I. C.I. C.I. Pas. D.N.I. D.N.I. D.N.I. N° de Documento 27.451.311 29.115.131 90.485.219 91.744.932 25.541.112 92.451.711 95.210.175 2.455.320 98.119.475 28.545.512 3.518.425 90.444.312 95.115.476 13.151.541 5.720.015 99.775.459 90.911.515 17.454.553 29.991.141 29.341.181 Lugar de Procedencia Argentina-Buenos Aires Argentina-Córdoba Bolivia-La Paz Bolivia-Sucre Argentina-Salta Bolivia-Potosí Brasil-San Pablo Uruguay-Montevideo Brasil-Porto Alegre Argentina-Córdoba Uruguay-Colonia Bolivia-La Paz Brasil-San Pablo Argentina-Salta Uruguay-Montevideo Brasil-Porto Alegre Bolivia-Sucre Argentina-Buenos Aires Argentina-Córdoba Argentina-Buenos Aires 2. En la hoja 2 de la planilla, utilizando funciones de texto, concatene las cadenas de caracteres de las columnas Apellido y Nombre, Tipo de Documento y N° de Documento, de forma tal que la tabla quede así: Apellido y Nombre Tipo y N° de Documento Lugar de Procedencia 3. Agregue a la tabla anterior, una columna denominada País de Procedencia. Para obtenerla extraiga mediante una función de texto, de la columna Lugar de Procedencia, la subcadena correspondiente al país. Sería conveniente que antes ordenara la tabla por esta clave. 4. A continuación de las anteriores, agregue las siguientes columnas: País de Destino Fecha de Traslado Para determinar Lugar de Destino, considere lo siguiente: Si el País de Procedencia es Argentina, el País de Destino será Francia Si el País de Procedencia es Bolivia, el País de Destino será Alemania Si el País de Procedencia es Brasil, el País de Destino será Portugal Si el País de Procedencia es Uruguay, el País de Destino será España Realizado por María del Valle Aranda pág. 60
  • 61. Universidad Nacional de Córdoba Escuela Superior de Comercio Manuel Belgrano Nivel Terciario Analista de Sistemas Informáticos Estructura de Datos 1º Año Para determinar Fecha de Traslado, considere lo siguiente: Si el País de Destino es Alemania ó Portugal, la Fecha de Traslado será el 01/07/13 Si el País de Destino es Francia ó España, la Fecha de Traslado será el 01/08/13 5. Mediante funciones de texto, determine la longitud de las cadenas de caracteres, de las columnas Apellido y Nombre y Lugar de Procedencia. Realizado por María del Valle Aranda pág. 61