SlideShare una empresa de Scribd logo
1 de 188
UNIVERSIDAD NACIONAL DE
CÓRDOBA
ESCUELA SUPERIOR DE COMERCIO
MANUEL BELGRANO
NIVEL TERCIARIO
ANALISTA DE SISTEMAS
OBJETIVOS GENERALES
• 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.
UNIDAD 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.
UNIDAD 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.
UNIDAD III
Operaciones con Estructura de Datos
• Recorrido.
• Búsqueda.
• Inserción.
• Eliminación.
• Modificación.
• Ordenamiento.
• Mezcla.
UNIDAD IV:
Algoritmos.
• Complejidad y relación espacio-tiempo.
• Algoritmos de búsqueda.
• Algoritmos de ordenamiento.
• Diseño.
• Notación algorítmica.
• Componentes.
UNIDAD V
Cadenas.
• Procesamiento de cadenas.
• Terminología básica.
• Almacenamiento de cadenas.
• Operaciones con cadenas.
BIBLIOGRAFIA:
• PARALAFAKYOU
• 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.
•UNIDAD I:
UNIDAD 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.
• Los datos son los que dan origen a la
información.
• Usamos los datos para producir información la
que nos ayudará a tomar decisiones.
• Organización Elemental de los datos:
• Dato. Campo. Registro. Archivo.
• El elemento dato es la unidad lógica más
pequeña en la representación de datos.
• Ejemplos :
• Número de Legajo del Empleado.
• El Nombre.
• El Estado Civil.
• Los elementos datos relacionados se agrupan
para formar los registros lógicos, o
simplemente registros.
• Ejemplo:
• El Número de Legajo del Empleado, el Nombre
y el Estado Civil están agrupados para formar
el registro del empleado.
• Los registros que tienen el mismo elemento
dato están combinados para formar un
archivo.
• Ejemplo: El archivo contiene el Número de
Legajo, el Nombre y el Estado Civil de todos
los empleados de la empresa.
• Atributo. Entidad. Conjunto de Entidades
• 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.
• Ejemplo: los siguientes son posibles atributos
de la entidad «empleado de la empresa.»
• "empleado de la empresa", con los
correspondientes valores:
• Entidades con atributos iguales:
• Por ejemplo:
• Todos los empleados de la empresa Estos
forman un conjunto de entidades.
RESUMEN
• 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.
• Los no subdivisibles reciben el nombre de
elementos simples.
• Por ejemplo:
• El nombre de un empleado.
• 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:
• 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:
• Un archivo puede tener registros de longitud
fija o variable.
Los registros de longitud fija.
• Contienen los mismos elementos con la
misma cantidad de espacio asignado a cada
uno.
Los registros de longitud variable
• Los registros del archivo pueden tener
distintas longitudes.
• 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:
• 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.
•CONTRAEJEMPLO:
• Supongamos que un Club mantiene un archivo
de socios, donde cada registro contiene los
siguientes datos:
• Aquí el nombre es una clave primaria.
• 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.
•UNIDAD II:
UIDAD 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.
•Estructura de Datos
• 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:
1
• Debe ser lo suficientemente complejo para
mostrarnos la relación entre los datos y lo
que representan.
2
• 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.
• 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.
• 1,2,3 ….n.
• Si designamos el array con la
• letra A.
• a1, a2, a3,....., an
• O a través de notación patentizada.
• 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
• 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.
• Ejemplo:
• El array lineal ESTUDIANTES consta de los
nombres de siete estudiantes:
• 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 a continuación.
• 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.
• Decimos que el tamaño del array es de 7 x
3, puesto que contiene 7 filas
• (horizontales) y 3 columnas (verticales).
•Listas enlazadas:
• Supongamos que un concesionario de
automóviles mantiene un archivo donde cada
registro contiene el nombre de un Cliente y su
correspondiente Vendedor,
• 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.
• Almacenar los datos 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.
• 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.
• Supongamos que la Gerencia de
Comercialización necesita una lista de Clientes
de un Vendedor determinado.
• 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.
• 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.
• Otra forma de almacenar los datos.
• En este caso 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.
por ejemplo 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
Utilizaremos
Puntero cuando un elemento de una
lista apunta a otro de una lista
distinta.
Enlace cuando lo hace hacia otro,
pero de la misma lista.
•Árbol
• Indicaremos a continuación algunas de sus
propiedades básicas mediante dos ejemplos.
• Ejemplo de Estructura de Registro
• Un registro perteneciente a la entidad
Empleado, puede contener los siguientes
atributos ó campos:
• 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
• Otra forma de representar la estructura de
árbol es mediante niveles.
• Ejemplo de Expresiones Algebraicas
• Usando la flecha vertical
para expresar la
exponenciación y el asterisco (*) para la
multiplicación, podemos representar esta
expresión mediante el siguiente árbol:
• 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.
•Pila
• Denominada sistema último-dentro primerofuera (LIFO), es una lista lineal de registros, en
la cual las inserciones y extracciones tienen
lugar sólo por un extremo llamado cúspide.
•Cola
• Denominada sistema primero-dentro primerofuera (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
•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.
UNIDAD III
UNIDAD III
Operaciones con Estructura de Datos
• Recorrido.
• Búsqueda.
• Inserción.
• Eliminación.
• Modificación.
• Ordenamiento.
• Mezcla.
• Operaciones con Estructura de Datos.
• 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á.
UNIDAD IV
UNIDAD IV:
Algoritmos.
• Complejidad y relación espacio-tiempo.
• Algoritmos de búsqueda.
• Algoritmos de ordenamiento.
• Diseño.
• Notación algorítmica.
• Componentes.
•Algoritmos
• Un algoritmo es una secuencia de
operaciones o pasos perfectamente definidos
que conducen a la resolución de un problema.
Algoritmos de búsqueda
Búsqueda secuencial:
• Recorre cada registro del archivo, uno a
uno, hasta encontrar el dato buscado.
• Ejemplo: Un nombre.
• Este algoritmo puede resultar inviable en la
práctica si la lista consta de miles de nombres
como en una guía telefónica.
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 (log en base 2 de n ).
• De esta forma no se necesitan más que 15
comparaciones para encontrar un nombr de
una lista que contiene 25.000 nombres.
Inconvenientes.
• Este 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.
Relación espacio-tiempo
• 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 a continuación 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.
•Diseño de
algoritmos
• 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.
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.
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.
• La segunda parte consiste en la secuencia de
pasos que deben ser ejecutados para la
consecución del resultado
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.
• Si aparecen varias sentencias en el mismo
paso, por ejemplo.

• Que se ejecutan siempre de izquierda a
derecha.
• Comentarios:
• Cada paso puede contener un comentario que
entre otras cosas debe indicar lo que realizara
esa parte del algoritmo así es mas fácil la
lectura del mismo.
• Nombres de variables
• Los nombres de variables estarán compuestos
siempre por letras mayúsculas como MAX o
DATOS.
• 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:
• 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. Con
el formato 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.
• 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.
Estructuras de Control
• Los algoritmos y los correspondientes 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:
• Implica que los módulos sean ejecutados uno
a continuación del otro, excepto que alguna
instrucción indique lo contrario.
• Lógica selectiva o flujo condicional
• Implican la ejecución de alguna alternativa
entre varias.
• 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]
DIAGRAMA DE FLUJO
• 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.
•
•
•
•
•
•

b) Alternativa doble. Tiene la forma:
Si condición entonces:
[Módulo A]
Si No:
[Módulo B]
[Final de la estructura condicional]
DIAGRAMA DE FLUJO
• Si la condición se cumple, se ejecuta el
Módulo A. En caso contrario, se ejecutará el B.
•
•
•
•
•

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 SINO el
siguiente, etc. asi hasta el final
• Lógica iterativa o flujo repetitivo
• Implica la utilización de lazos o ciclos.
• Fundamentalmente pueden ser de dos tipos,
ambas comienzan con la sentencia repetir.
• a) Ciclo Repetir-Desde
• Utiliza una variable índice, por ejemplo K, para
controlar el ciclo.
• Tiene la forma:
• Repetir Desde K=R hasta S de T:
• [Módulo ]
• [Fin del ciclo]
DIAGRAMA DE FLUJO
• R recibe el nombre de valor inicial
• S el de valor final o valor de prueba
• T el de incremento.
• b) Ciclo Repetir-Mientras
• Tiene la forma:
• Repetir Mientras condición:
• [Módulo ]
• [Fin del ciclo]
DIAGRAMA DE FLUJO
• El ciclo continúa hasta que la condición exigida
sea falsa.
UNIDAD V
UNIDAD V
Cadenas.
• Procesamiento de cadenas.
• Terminología básica.
• Almacenamiento de cadenas.
• Operaciones con cadenas.
•Cadenas
• Procesamiento de cadenas.
• 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
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:
• 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
• Cuyas longitudes respectivas son:
8, 12, 0 y 2.
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:
• 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
• El poder acceder fácilmente a cualquier
registro y la facilidad a la hora de actualizar los
datos de un determinado registro.
Las desventajas
• 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
• Almacenamiento de longitud variable con
máximo establecido:
• Algunas operaciones con cadenas dependen
de la existencia de cadenas de longitud
variable.
• 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
• 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:
• Indexación:
• 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:
• Si la secuencia no se encuentra dentro del
texto, entonces INDEX nos devuelve el
valor 0.
• 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.
• Longitud:
• El número de caracteres que componen una
cadena recibe el nombre de longitud de la
cadena y se simboliza así:

Más contenido relacionado

La actualidad más candente

Casos de uso
Casos de usoCasos de uso
Casos de uso53140294
 
Configuración de un sitio web
Configuración de un sitio webConfiguración de un sitio web
Configuración de un sitio webguestf305d8
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datoshugodanielgd
 
Sistema Operativo Solaris
Sistema Operativo SolarisSistema Operativo Solaris
Sistema Operativo SolarisMONSE100
 
Sistema operativo novell
Sistema operativo novellSistema operativo novell
Sistema operativo novellIvane Valdez
 
Multiprocesamiento (S.O)
Multiprocesamiento (S.O)Multiprocesamiento (S.O)
Multiprocesamiento (S.O)Javier Alvarez
 
Los tipos de datos de sql server
Los tipos de datos de sql serverLos tipos de datos de sql server
Los tipos de datos de sql serverCEUNISAL
 
Modelo de requerimientos
Modelo de requerimientosModelo de requerimientos
Modelo de requerimientosUTPL UTPL
 
Archivos y Directorios
Archivos y DirectoriosArchivos y Directorios
Archivos y DirectoriosMayra Almache
 
Tipos de control de flujo
Tipos de control  de flujoTipos de control  de flujo
Tipos de control de flujoFernando Luz
 
Sesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoSesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoJulio Pari
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de softwareIker Canarias
 
Diferencia entre un dominio y grupo de trabajo
Diferencia entre un dominio y grupo de trabajoDiferencia entre un dominio y grupo de trabajo
Diferencia entre un dominio y grupo de trabajopppppp__16
 
Base de datos distribuidas vs centralizadas
Base de datos distribuidas vs centralizadasBase de datos distribuidas vs centralizadas
Base de datos distribuidas vs centralizadasEduardo Simon Hernandez
 

La actualidad más candente (20)

Arquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidosArquitectura de sistemas distribuidos
Arquitectura de sistemas distribuidos
 
1. el modelado de casos de uso
1. el modelado de casos de uso1. el modelado de casos de uso
1. el modelado de casos de uso
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Configuración de un sitio web
Configuración de un sitio webConfiguración de un sitio web
Configuración de un sitio web
 
Unidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de DatosUnidad 1. Fundamentos de Base de Datos
Unidad 1. Fundamentos de Base de Datos
 
Sistema Operativo Solaris
Sistema Operativo SolarisSistema Operativo Solaris
Sistema Operativo Solaris
 
Sistema operativo novell
Sistema operativo novellSistema operativo novell
Sistema operativo novell
 
Multiprocesamiento (S.O)
Multiprocesamiento (S.O)Multiprocesamiento (S.O)
Multiprocesamiento (S.O)
 
Los tipos de datos de sql server
Los tipos de datos de sql serverLos tipos de datos de sql server
Los tipos de datos de sql server
 
Modelo de requerimientos
Modelo de requerimientosModelo de requerimientos
Modelo de requerimientos
 
Archivos y Directorios
Archivos y DirectoriosArchivos y Directorios
Archivos y Directorios
 
Tipos de control de flujo
Tipos de control  de flujoTipos de control  de flujo
Tipos de control de flujo
 
Sesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoSesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y diseno
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Fundamentos de las bases de datos
Fundamentos de las bases de datosFundamentos de las bases de datos
Fundamentos de las bases de datos
 
Diferencia entre un dominio y grupo de trabajo
Diferencia entre un dominio y grupo de trabajoDiferencia entre un dominio y grupo de trabajo
Diferencia entre un dominio y grupo de trabajo
 
Base de datos distribuidas vs centralizadas
Base de datos distribuidas vs centralizadasBase de datos distribuidas vs centralizadas
Base de datos distribuidas vs centralizadas
 
UNIX
UNIXUNIX
UNIX
 
Transparencia
TransparenciaTransparencia
Transparencia
 

Similar a UNIDAD I: Introducción a la organización elemental de los datos

Estructura de datos año 2013
Estructura de datos año 2013Estructura de datos año 2013
Estructura de datos año 2013Paralafakyou Mens
 
Glosario Base de DATOS
Glosario Base de DATOSGlosario Base de DATOS
Glosario Base de DATOSMiguel Franco
 
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 Base de datos
Teoria de Base de datosTeoria de Base de datos
Teoria de Base de datosUniandes
 
Presentación grupo 5.
Presentación grupo 5.Presentación grupo 5.
Presentación grupo 5.jorge
 
Presentación1
Presentación1Presentación1
Presentación1jesanchez5
 
Desarrollo si y base datos
Desarrollo si y base datosDesarrollo si y base datos
Desarrollo si y base datosJuan Quintana
 
Apuntes
ApuntesApuntes
ApuntesIESCH
 
Tipos de estructuras de datos en la asignatura de analisis y diseño
Tipos de estructuras de datos en la asignatura de analisis y diseñoTipos de estructuras de datos en la asignatura de analisis y diseño
Tipos de estructuras de datos en la asignatura de analisis y diseñoLuis Ramon Ponce Zuniga
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en CVane Borjas
 
CONCEPTOS DE BASES DE DATOS.pptx
CONCEPTOS DE BASES DE DATOS.pptxCONCEPTOS DE BASES DE DATOS.pptx
CONCEPTOS DE BASES DE DATOS.pptxHILARYDAHIANACORTES
 

Similar a UNIDAD I: Introducción a la organización elemental de los datos (20)

Bases de datos
Bases de datosBases de datos
Bases de datos
 
CONCEPTOS BÁSICOS DE BASE DE DATOS
CONCEPTOS BÁSICOS DE BASE DE DATOSCONCEPTOS BÁSICOS DE BASE DE DATOS
CONCEPTOS BÁSICOS DE BASE DE DATOS
 
Estructura de datos año 2013
Estructura de datos año 2013Estructura de datos año 2013
Estructura de datos año 2013
 
CREACION DE TABLAS
CREACION DE TABLASCREACION DE TABLAS
CREACION DE TABLAS
 
German sgbd
German sgbdGerman sgbd
German sgbd
 
Glosario Base de DATOS
Glosario Base de DATOSGlosario Base de DATOS
Glosario Base de DATOS
 
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
 
Base de-datos
Base de-datosBase de-datos
Base de-datos
 
Teoria de Base de datos
Teoria de Base de datosTeoria de Base de datos
Teoria de Base de datos
 
Presentación grupo 5.
Presentación grupo 5.Presentación grupo 5.
Presentación grupo 5.
 
Presentación1
Presentación1Presentación1
Presentación1
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Desarrollo si y base datos
Desarrollo si y base datosDesarrollo si y base datos
Desarrollo si y base datos
 
Apuntes
ApuntesApuntes
Apuntes
 
Apuntes
ApuntesApuntes
Apuntes
 
Tipos de estructuras de datos en la asignatura de analisis y diseño
Tipos de estructuras de datos en la asignatura de analisis y diseñoTipos de estructuras de datos en la asignatura de analisis y diseño
Tipos de estructuras de datos en la asignatura de analisis y diseño
 
Estructuras ing. Vanessa Borgas
Estructuras ing. Vanessa BorgasEstructuras ing. Vanessa Borgas
Estructuras ing. Vanessa Borgas
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
 
CONCEPTOS DE BASES DE DATOS.pptx
CONCEPTOS DE BASES DE DATOS.pptxCONCEPTOS DE BASES DE DATOS.pptx
CONCEPTOS DE BASES DE DATOS.pptx
 

Más 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
 

Más 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
 

UNIDAD I: Introducción a la organización elemental de los datos

  • 1. UNIVERSIDAD NACIONAL DE CÓRDOBA ESCUELA SUPERIOR DE COMERCIO MANUEL BELGRANO NIVEL TERCIARIO ANALISTA DE SISTEMAS
  • 2. OBJETIVOS GENERALES • 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.
  • 3. 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.
  • 4. UNIDAD 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.
  • 5. UNIDAD 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.
  • 6. UNIDAD III Operaciones con Estructura de Datos • Recorrido. • Búsqueda. • Inserción. • Eliminación. • Modificación. • Ordenamiento. • Mezcla.
  • 7. UNIDAD IV: Algoritmos. • Complejidad y relación espacio-tiempo. • Algoritmos de búsqueda. • Algoritmos de ordenamiento. • Diseño. • Notación algorítmica. • Componentes.
  • 8. UNIDAD V Cadenas. • Procesamiento de cadenas. • Terminología básica. • Almacenamiento de cadenas. • Operaciones con cadenas.
  • 9. BIBLIOGRAFIA: • PARALAFAKYOU • 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.
  • 11. UNIDAD 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.
  • 12. • Los datos son los que dan origen a la información. • Usamos los datos para producir información la que nos ayudará a tomar decisiones.
  • 14. • Dato. Campo. Registro. Archivo.
  • 15. • El elemento dato es la unidad lógica más pequeña en la representación de datos. • Ejemplos : • Número de Legajo del Empleado. • El Nombre. • El Estado Civil.
  • 16. • Los elementos datos relacionados se agrupan para formar los registros lógicos, o simplemente registros. • Ejemplo: • El Número de Legajo del Empleado, el Nombre y el Estado Civil están agrupados para formar el registro del empleado.
  • 17. • Los registros que tienen el mismo elemento dato están combinados para formar un archivo. • Ejemplo: El archivo contiene el Número de Legajo, el Nombre y el Estado Civil de todos los empleados de la empresa.
  • 18.
  • 19. • Atributo. Entidad. Conjunto de Entidades
  • 20. • 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. • Ejemplo: los siguientes son posibles atributos de la entidad «empleado de la empresa.»
  • 21. • "empleado de la empresa", con los correspondientes valores:
  • 22. • Entidades con atributos iguales: • Por ejemplo: • Todos los empleados de la empresa Estos forman un conjunto de entidades.
  • 23. RESUMEN • 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.
  • 25. • La palabra datos hace referencia a valores simples o conjuntos de valores.
  • 26. • Denominamos elemento a una unidad básica de valores.
  • 27. • A aquellos elementos que pueden dividirse en otros reciben el nombre de grupo de elementos.
  • 28. • Los no subdivisibles reciben el nombre de elementos simples. • Por ejemplo: • El nombre de un empleado.
  • 29. • 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.
  • 31. • 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.
  • 33. • Un archivo puede tener registros de longitud fija o variable.
  • 34. Los registros de longitud fija. • Contienen los mismos elementos con la misma cantidad de espacio asignado a cada uno.
  • 35. Los registros de longitud variable • Los registros del archivo pueden tener distintas longitudes.
  • 36. • 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.
  • 38. • 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.
  • 39. • Por ejemplo: • Supongamos que un vendedor de automóviles lleva un archivo de inventario donde cada campo del mismo contiene los siguientes datos:
  • 40.
  • 41. • 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.
  • 43. • Supongamos que un Club mantiene un archivo de socios, donde cada registro contiene los siguientes datos:
  • 44.
  • 45. • Aquí el nombre es una clave primaria. • 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.
  • 47. UIDAD 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.
  • 49. • El modelo matemático o lógico de una organización particular de datos recibe el nombre de estructura de datos.
  • 50. • La elección de un modelo de datos en particular DEPENDE DE:
  • 51. 1
  • 52. • Debe ser lo suficientemente complejo para mostrarnos la relación entre los datos y lo que representan.
  • 53. 2
  • 54. • La estructura debe ser lo suficientemente simple para que los datos puedan ser procesados de forma eficiente cuando sea preciso.
  • 55. • Dentro de las estructuras de datos posibles encontramos.
  • 57. • La estructura de datos más simple es el array lineal.
  • 58. • 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. • 1,2,3 ….n. • Si designamos el array con la • letra A. • a1, a2, a3,....., an
  • 59. • O a través de notación patentizada. • 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
  • 60. • 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.
  • 61. • Ejemplo: • El array lineal ESTUDIANTES consta de los nombres de siete estudiantes:
  • 62. • 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.
  • 63. • 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.
  • 65. • Ejemplo: Una cadena de 7 Sucursales, compuestas por 3 Depósitos cada una, puede representar sus ventas mensuales, como se muestra a continuación.
  • 66.
  • 67. • 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.
  • 68. • Decimos que el tamaño del array es de 7 x 3, puesto que contiene 7 filas • (horizontales) y 3 columnas (verticales).
  • 70. • Supongamos que un concesionario de automóviles mantiene un archivo donde cada registro contiene el nombre de un Cliente y su correspondiente Vendedor,
  • 71.
  • 72. • 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.
  • 73. • Almacenar los datos mediante dos arrays separados.
  • 74. • 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.
  • 75.
  • 76. • 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.
  • 77. • Supongamos que la Gerencia de Comercialización necesita una lista de Clientes de un Vendedor determinado.
  • 78. • 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.
  • 79. • 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.
  • 80.
  • 81. • Otra forma de almacenar los datos. • En este caso cada Vendedor posee un puntero que apunta a su primer Cliente.
  • 82. • En la lista Cliente el campo enlace apunta al siguiente Cliente del mismo Vendedor, indicando el último Cliente asociado con un 0. por ejemplo 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
  • 83. Utilizaremos Puntero cuando un elemento de una lista apunta a otro de una lista distinta. Enlace cuando lo hace hacia otro, pero de la misma lista.
  • 85. • Indicaremos a continuación algunas de sus propiedades básicas mediante dos ejemplos.
  • 86. • Ejemplo de Estructura de Registro
  • 87. • Un registro perteneciente a la entidad Empleado, puede contener los siguientes atributos ó campos:
  • 88. • 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
  • 89.
  • 90. • Otra forma de representar la estructura de árbol es mediante niveles.
  • 91.
  • 92. • Ejemplo de Expresiones Algebraicas
  • 93. • Usando la flecha vertical para expresar la exponenciación y el asterisco (*) para la multiplicación, podemos representar esta expresión mediante el siguiente árbol:
  • 94. • 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.
  • 96. • Denominada sistema último-dentro primerofuera (LIFO), es una lista lineal de registros, en la cual las inserciones y extracciones tienen lugar sólo por un extremo llamado cúspide.
  • 97.
  • 99. • Denominada sistema primero-dentro primerofuera (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
  • 100.
  • 102. • 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.
  • 103.
  • 105. UNIDAD III Operaciones con Estructura de Datos • Recorrido. • Búsqueda. • Inserción. • Eliminación. • Modificación. • Ordenamiento. • Mezcla.
  • 106. • Operaciones con Estructura de Datos.
  • 107. • Las que se describen a continuación son las que se utilizan con mayor frecuencia:
  • 108. 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".
  • 109. 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.
  • 110. Inserción: • Implica añadir nuevos registros a la estructura de datos.
  • 111. Eliminación: • Esta operación implica borrar un registro de la estructura de datos.
  • 112. Modificación: • Esta operación implica un cambio o actualización de los datos contenidos en un registro.
  • 113. Ordenamiento: • Esta operación implica clasificar los registros conforme a un orden lógico determinado.
  • 114. Mezcla: • Esta operación implica combinar dos archivos previamente ordenados en uno único que también lo está.
  • 116. UNIDAD IV: Algoritmos. • Complejidad y relación espacio-tiempo. • Algoritmos de búsqueda. • Algoritmos de ordenamiento. • Diseño. • Notación algorítmica. • Componentes.
  • 118. • Un algoritmo es una secuencia de operaciones o pasos perfectamente definidos que conducen a la resolución de un problema.
  • 120. Búsqueda secuencial: • Recorre cada registro del archivo, uno a uno, hasta encontrar el dato buscado. • Ejemplo: Un nombre. • Este algoritmo puede resultar inviable en la práctica si la lista consta de miles de nombres como en una guía telefónica.
  • 121. 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.
  • 122.
  • 123. • Se puede expresar que la complejidad del algoritmo de búsqueda binaria viene dada por C(n)=log2n (log en base 2 de n ). • De esta forma no se necesitan más que 15 comparaciones para encontrar un nombr de una lista que contiene 25.000 nombres.
  • 124. Inconvenientes. • Este 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.
  • 126. • 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.
  • 127. • 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.
  • 128. • Esta solución duplica el espacio necesario para el almacenamiento de datos.
  • 129. • Otra solución representada a continuación 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.
  • 130.
  • 132. • 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.
  • 133.
  • 134. 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.
  • 135. 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. • La segunda parte consiste en la secuencia de pasos que deben ser ejecutados para la consecución del resultado
  • 136.
  • 137.
  • 138. Componentes de un algoritmo •Pasos,control y salida
  • 139. • 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.
  • 140. • Si aparecen varias sentencias en el mismo paso, por ejemplo. • Que se ejecutan siempre de izquierda a derecha.
  • 141. • Comentarios: • Cada paso puede contener un comentario que entre otras cosas debe indicar lo que realizara esa parte del algoritmo así es mas fácil la lectura del mismo.
  • 142. • Nombres de variables • Los nombres de variables estarán compuestos siempre por letras mayúsculas como MAX o DATOS.
  • 143. • 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:
  • 144. • 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. Con el formato siguiente: • Escribir: Mensajes y/o nombres de variables
  • 145. • 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. • 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.
  • 146. Estructuras de Control • Los algoritmos y los correspondientes 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.
  • 147. • Lógica secuencial o flujo secuencial: • Implica que los módulos sean ejecutados uno a continuación del otro, excepto que alguna instrucción indique lo contrario.
  • 148. • Lógica selectiva o flujo condicional • Implican la ejecución de alguna alternativa entre varias.
  • 149. • Estas estructuras condicionales pueden ser de tres tipos:
  • 150. • a) Alternativa simple. Tiene la forma: • Si condición entonces: • [Módulo A] • [Final de la estructura condicional]
  • 152. • 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.
  • 153. • • • • • • b) Alternativa doble. Tiene la forma: Si condición entonces: [Módulo A] Si No: [Módulo B] [Final de la estructura condicional]
  • 155. • Si la condición se cumple, se ejecuta el Módulo A. En caso contrario, se ejecutará el B.
  • 156. • • • • • 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]
  • 157. • La lógica de esta estructura permite la ejecución de un solo módulo SINO el siguiente, etc. asi hasta el final
  • 158. • Lógica iterativa o flujo repetitivo • Implica la utilización de lazos o ciclos. • Fundamentalmente pueden ser de dos tipos, ambas comienzan con la sentencia repetir.
  • 159. • a) Ciclo Repetir-Desde • Utiliza una variable índice, por ejemplo K, para controlar el ciclo. • Tiene la forma: • Repetir Desde K=R hasta S de T: • [Módulo ] • [Fin del ciclo]
  • 161. • R recibe el nombre de valor inicial • S el de valor final o valor de prueba • T el de incremento.
  • 162. • b) Ciclo Repetir-Mientras • Tiene la forma: • Repetir Mientras condición: • [Módulo ] • [Fin del ciclo]
  • 164. • El ciclo continúa hasta que la condición exigida sea falsa.
  • 166. UNIDAD V Cadenas. • Procesamiento de cadenas. • Terminología básica. • Almacenamiento de cadenas. • Operaciones con cadenas.
  • 168. • Procesamiento de cadenas. • 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
  • 169. Terminología básica • Cada lenguaje de programación posee un conjunto de caracteres que utiliza para comunicarse con la computadora.
  • 170. Este conjunto incluye generalmente a los siguientes:
  • 171. • 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.
  • 172. • Las cadenas las indicaremos incluyendo los caracteres que las componen entre comillas simples, estas comillas servirán también como delimitadores de cadenas
  • 173. • Cuyas longitudes respectivas son: 8, 12, 0 y 2.
  • 174. 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.
  • 175. • Almacenamiento de longitud fija u orientada al registro: • 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.
  • 176. Las principales ventajas • El poder acceder fácilmente a cualquier registro y la facilidad a la hora de actualizar los datos de un determinado registro.
  • 177. Las desventajas • 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
  • 178. • Almacenamiento de longitud variable con máximo establecido: • Algunas operaciones con cadenas dependen de la existencia de cadenas de longitud variable.
  • 179. • 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
  • 180. • Suelen ser poco eficientes cuando las cadenas y su longitud están sometidas a cambios frecuentes.
  • 181. • 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.
  • 182. 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:
  • 183.
  • 184. • Indexación: • 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:
  • 185. • Si la secuencia no se encuentra dentro del texto, entonces INDEX nos devuelve el valor 0.
  • 186. • 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.
  • 187.
  • 188. • Longitud: • El número de caracteres que componen una cadena recibe el nombre de longitud de la cadena y se simboliza así: