188
UNIVERSIDAD NACIONAL DE CÓRDOBA ESCUELA SUPERIOR DE COMERCIO MANUEL BELGRANO NIVEL TERCIARIO ANALISTA DE SISTEMAS

Tutorial de estructura de datos, gratis

Embed Size (px)

Citation preview

Page 1: Tutorial de estructura de datos, gratis

UNIVERSIDAD NACIONAL DE CÓRDOBA

ESCUELA SUPERIOR DE COMERCIO MANUEL BELGRANO

NIVEL TERCIARIOANALISTA DE SISTEMAS

Page 2: Tutorial de estructura de datos, gratis

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.

Page 3: Tutorial de estructura de datos, gratis

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.

Page 4: Tutorial de estructura de datos, gratis

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.

Page 5: Tutorial de estructura de datos, gratis

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.

Page 6: Tutorial de estructura de datos, gratis

UNIDAD III

Operaciones con Estructura de Datos

• Recorrido.

• Búsqueda.

• Inserción.

• Eliminación.

• Modificación.

• Ordenamiento.

• Mezcla.

Page 7: Tutorial de estructura de datos, gratis

UNIDAD IV:

Algoritmos.

• Complejidad y relación espacio-tiempo.

• Algoritmos de búsqueda.

• Algoritmos de ordenamiento.

• Diseño.

• Notación algorítmica.

• Componentes.

Page 8: Tutorial de estructura de datos, gratis

UNIDAD V

Cadenas.

• Procesamiento de cadenas.

• Terminología básica.

• Almacenamiento de cadenas.

• Operaciones con cadenas.

Page 9: Tutorial de estructura de datos, gratis

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 ZahoneroMartínez, Mc Graw-Hill, 2007.

• Notas de Cátedra con ejercitaciones prácticas, versión 2013, elaborada por María del Valle Aranda.

Page 10: Tutorial de estructura de datos, gratis

•UNIDAD I:

Page 11: Tutorial de estructura de datos, gratis

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.

Page 12: Tutorial de estructura de datos, gratis

• 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.

Page 13: Tutorial de estructura de datos, gratis

• Organización Elemental de los datos:

Page 14: Tutorial de estructura de datos, gratis

• Dato. Campo. Registro. Archivo.

Page 15: Tutorial de estructura de datos, gratis

• 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.

Page 16: Tutorial de estructura de datos, gratis

• 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.

Page 17: Tutorial de estructura de datos, gratis

• 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.

Page 18: Tutorial de estructura de datos, gratis
Page 19: Tutorial de estructura de datos, gratis

• Atributo. Entidad. Conjunto de Entidades

Page 20: Tutorial de estructura de datos, gratis

• 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.»

Page 21: Tutorial de estructura de datos, gratis

• "empleado de la empresa", con los correspondientes valores:

Page 22: Tutorial de estructura de datos, gratis

• Entidades con atributos iguales:

• Por ejemplo:

• Todos los empleados de la empresa Estos forman un conjunto de entidades.

Page 23: Tutorial de estructura de datos, gratis

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.

Page 24: Tutorial de estructura de datos, gratis

Elementos simples. • Grupo de elementos

Page 25: Tutorial de estructura de datos, gratis

• La palabra datos hace referencia a valores simples o conjuntos de valores.

Page 26: Tutorial de estructura de datos, gratis

• Denominamos elemento a una unidad básica de valores.

Page 27: Tutorial de estructura de datos, gratis

• A aquellos elementos que pueden dividirse en otros reciben el nombre de grupo de elementos.

Page 28: Tutorial de estructura de datos, gratis

• Los no subdivisibles reciben el nombre de elementos simples.

• Por ejemplo:

• El nombre de un empleado.

Page 29: Tutorial de estructura de datos, gratis

• 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.

Page 30: Tutorial de estructura de datos, gratis

•Tipos de Datos:

Page 31: Tutorial de estructura de datos, gratis

• 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.

Page 32: Tutorial de estructura de datos, gratis

Tipos de Registros:

Page 33: Tutorial de estructura de datos, gratis

• Un archivo puede tener registros de longitud fija o variable.

Page 34: Tutorial de estructura de datos, gratis

Los registros de longitud fija.

• Contienen los mismos elementos con la misma cantidad de espacio asignado a cada uno.

Page 35: Tutorial de estructura de datos, gratis

Los registros de longitud variable

• Los registros del archivo pueden tener distintas longitudes.

Page 36: Tutorial de estructura de datos, gratis

• 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.

Page 37: Tutorial de estructura de datos, gratis

•Clave primaria:

Page 38: Tutorial de estructura de datos, gratis

• 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.

Page 39: Tutorial de estructura de datos, gratis

• Por ejemplo:

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

Page 40: Tutorial de estructura de datos, gratis
Page 41: Tutorial de estructura de datos, gratis

• 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.

Page 42: Tutorial de estructura de datos, gratis

•CONTRAEJEMPLO:

Page 43: Tutorial de estructura de datos, gratis

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

Page 44: Tutorial de estructura de datos, gratis
Page 45: Tutorial de estructura de datos, gratis

• 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.

Page 46: Tutorial de estructura de datos, gratis

•UNIDAD II:

Page 47: Tutorial de estructura de datos, gratis

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.

Page 48: Tutorial de estructura de datos, gratis

•Estructura de Datos

Page 49: Tutorial de estructura de datos, gratis

• El modelo matemático o lógico de una organización particular de datos recibe el nombre de estructura de datos.

Page 50: Tutorial de estructura de datos, gratis

• La elección de un modelo de datos en particular DEPENDE DE:

Page 51: Tutorial de estructura de datos, gratis

1

Page 52: Tutorial de estructura de datos, gratis

• Debe ser lo suficientemente complejo para mostrarnos la relación entre los datos y lo que representan.

Page 53: Tutorial de estructura de datos, gratis

2

Page 54: Tutorial de estructura de datos, gratis

• La estructura debe ser lo suficientemente simple para que los datos puedan ser procesados de forma eficiente cuando sea preciso.

Page 55: Tutorial de estructura de datos, gratis

• Dentro de las estructuras de datos posibles encontramos.

Page 56: Tutorial de estructura de datos, gratis

•Arrays

Page 57: Tutorial de estructura de datos, gratis

• La estructura de datos más simple es el arraylineal.

Page 58: Tutorial de estructura de datos, gratis

• 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

Page 59: Tutorial de estructura de datos, gratis

• 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

Page 60: Tutorial de estructura de datos, gratis

• 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.

Page 61: Tutorial de estructura de datos, gratis

• Ejemplo:

• El array lineal ESTUDIANTES consta de los nombres de siete estudiantes:

Page 62: Tutorial de estructura de datos, gratis

• 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.

Page 63: Tutorial de estructura de datos, gratis

• 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.

Page 64: Tutorial de estructura de datos, gratis

•Array Bidimensional.

Page 65: Tutorial de estructura de datos, gratis

• Ejemplo: Una cadena de 7 Sucursales, compuestas por 3 Depósitos cada una, puede representar sus ventas mensuales, como se muestra a continuación.

Page 66: Tutorial de estructura de datos, gratis
Page 67: Tutorial de estructura de datos, gratis

• Estos datos pueden almacenarse en una computadora, utilizando un arraybidimensional en el que el primer índice representa una Sucursal y el segundo un Depósito.

Page 68: Tutorial de estructura de datos, gratis

• Decimos que el tamaño del array es de 7 x 3, puesto que contiene 7 filas

• (horizontales) y 3 columnas (verticales).

Page 69: Tutorial de estructura de datos, gratis

•Listas enlazadas:

Page 70: Tutorial de estructura de datos, gratis

• Supongamos que un concesionario de automóviles mantiene un archivo donde cada registro contiene el nombre de un Cliente y su correspondiente Vendedor,

Page 71: Tutorial de estructura de datos, gratis
Page 72: Tutorial de estructura de datos, gratis

• 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.

Page 73: Tutorial de estructura de datos, gratis

• Almacenar los datos mediante dos arraysseparados.

Page 74: Tutorial de estructura de datos, gratis

• 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.

Page 75: Tutorial de estructura de datos, gratis
Page 76: Tutorial de estructura de datos, gratis

• 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.

Page 77: Tutorial de estructura de datos, gratis

• Supongamos que la Gerencia de Comercialización necesita una lista de Clientes de un Vendedor determinado.

Page 78: Tutorial de estructura de datos, gratis

• 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.

Page 79: Tutorial de estructura de datos, gratis

• 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.

Page 80: Tutorial de estructura de datos, gratis
Page 81: Tutorial de estructura de datos, gratis

• Otra forma de almacenar los datos.

• En este caso cada Vendedor posee un puntero que apunta a su primer Cliente.

Page 82: Tutorial de estructura de datos, gratis

• 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

Page 83: Tutorial de estructura de datos, gratis

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.

Page 84: Tutorial de estructura de datos, gratis

•Árbol

Page 85: Tutorial de estructura de datos, gratis

• Indicaremos a continuación algunas de sus propiedades básicas mediante dos ejemplos.

Page 86: Tutorial de estructura de datos, gratis

• Ejemplo de Estructura de Registro

Page 87: Tutorial de estructura de datos, gratis

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

Page 88: Tutorial de estructura de datos, gratis

• 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, Zonadonde a su vez ésta última puede estar compuesta por los subítems Barrio, Localidad

Page 89: Tutorial de estructura de datos, gratis
Page 90: Tutorial de estructura de datos, gratis

• Otra forma de representar la estructura de árbol es mediante niveles.

Page 91: Tutorial de estructura de datos, gratis
Page 92: Tutorial de estructura de datos, gratis

• Ejemplo de Expresiones Algebraicas

Page 93: Tutorial de estructura de datos, gratis

• 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:

Page 94: Tutorial de estructura de datos, gratis

• 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.

Page 95: Tutorial de estructura de datos, gratis

•Pila

Page 96: Tutorial de estructura de datos, gratis

• 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.

Page 97: Tutorial de estructura de datos, gratis
Page 98: Tutorial de estructura de datos, gratis

•Cola

Page 99: Tutorial de estructura de datos, gratis

• 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

Page 100: Tutorial de estructura de datos, gratis
Page 101: Tutorial de estructura de datos, gratis

•Grafos

Page 102: Tutorial de estructura de datos, gratis

• 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.

Page 103: Tutorial de estructura de datos, gratis
Page 104: Tutorial de estructura de datos, gratis

UNIDAD III

Page 105: Tutorial de estructura de datos, gratis

UNIDAD III

Operaciones con Estructura de Datos

• Recorrido.

• Búsqueda.

• Inserción.

• Eliminación.

• Modificación.

• Ordenamiento.

• Mezcla.

Page 106: Tutorial de estructura de datos, gratis

• Operaciones con Estructura de Datos.

Page 107: Tutorial de estructura de datos, gratis

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

Page 108: Tutorial de estructura de datos, gratis

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".

Page 109: Tutorial de estructura de datos, gratis

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.

Page 110: Tutorial de estructura de datos, gratis

Inserción:

• Implica añadir nuevos registros a la estructura de datos.

Page 111: Tutorial de estructura de datos, gratis

Eliminación:

• Esta operación implica borrar un registro de la estructura de datos.

Page 112: Tutorial de estructura de datos, gratis

Modificación:

• Esta operación implica un cambio o actualización de los datos contenidos en un registro.

Page 113: Tutorial de estructura de datos, gratis

Ordenamiento:

• Esta operación implica clasificar los registros conforme a un orden lógico determinado.

Page 114: Tutorial de estructura de datos, gratis

Mezcla:

• Esta operación implica combinar dos archivospreviamente ordenados en uno único que también lo está.

Page 115: Tutorial de estructura de datos, gratis

UNIDAD IV

Page 116: Tutorial de estructura de datos, gratis

UNIDAD IV:

Algoritmos.

• Complejidad y relación espacio-tiempo.

• Algoritmos de búsqueda.

• Algoritmos de ordenamiento.

• Diseño.

• Notación algorítmica.

• Componentes.

Page 117: Tutorial de estructura de datos, gratis

•Algoritmos

Page 118: Tutorial de estructura de datos, gratis

• Un algoritmo es una secuencia de operaciones o pasos perfectamente definidos que conducen a la resolución de un problema.

Page 119: Tutorial de estructura de datos, gratis

Algoritmos de búsqueda

Page 120: Tutorial de estructura de datos, gratis

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.

Page 121: Tutorial de estructura de datos, gratis

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.

Page 122: Tutorial de estructura de datos, gratis
Page 123: Tutorial de estructura de datos, gratis

• 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.

Page 124: Tutorial de estructura de datos, gratis

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.

Page 125: Tutorial de estructura de datos, gratis

Relación espacio-tiempo

Page 126: Tutorial de estructura de datos, gratis

• 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.

Page 127: Tutorial de estructura de datos, gratis

• 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.

Page 128: Tutorial de estructura de datos, gratis

• Esta solución duplica el espacio necesario para el almacenamiento de datos.

Page 129: Tutorial de estructura de datos, gratis

• 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.

Page 130: Tutorial de estructura de datos, gratis
Page 131: Tutorial de estructura de datos, gratis

•Diseño de algoritmos

Page 132: Tutorial de estructura de datos, gratis

• 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.

Page 133: Tutorial de estructura de datos, gratis
Page 134: Tutorial de estructura de datos, gratis

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.

Page 135: Tutorial de estructura de datos, gratis

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

Page 136: Tutorial de estructura de datos, gratis
Page 137: Tutorial de estructura de datos, gratis
Page 138: Tutorial de estructura de datos, gratis

Componentes de un algoritmo

•Pasos,control y salida

Page 139: Tutorial de estructura de datos, gratis

• 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.

Page 140: Tutorial de estructura de datos, gratis

• Si aparecen varias sentencias en el mismo paso, por ejemplo.

• Que se ejecutan siempre de izquierda a derecha.

Page 141: Tutorial de estructura de datos, gratis

• 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.

Page 142: Tutorial de estructura de datos, gratis

• Nombres de variables

• Los nombres de variables estarán compuestos siempre por letras mayúsculas como MAX o DATOS.

Page 143: Tutorial de estructura de datos, gratis

• 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:

Page 144: Tutorial de estructura de datos, gratis

• 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

Page 145: Tutorial de estructura de datos, gratis

• 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.

Page 146: Tutorial de estructura de datos, gratis

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.

Page 147: Tutorial de estructura de datos, gratis

• 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.

Page 148: Tutorial de estructura de datos, gratis

• Lógica selectiva o flujo condicional

• Implican la ejecución de alguna alternativa entre varias.

Page 149: Tutorial de estructura de datos, gratis

• Estas estructuras condicionales pueden ser de tres tipos:

Page 150: Tutorial de estructura de datos, gratis

• a) Alternativa simple. Tiene la forma:

• Si condición entonces:

• [Módulo A]

• [Final de la estructura condicional]

Page 151: Tutorial de estructura de datos, gratis

DIAGRAMA DE FLUJO

Page 152: Tutorial de estructura de datos, gratis

• 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.

Page 153: Tutorial de estructura de datos, gratis

• b) Alternativa doble. Tiene la forma:

• Si condición entonces:

• [Módulo A]

• Si No:

• [Módulo B]

• [Final de la estructura condicional]

Page 154: Tutorial de estructura de datos, gratis

DIAGRAMA DE FLUJO

Page 155: Tutorial de estructura de datos, gratis

• Si la condición se cumple, se ejecuta el Módulo A. En caso contrario, se ejecutará el B.

Page 156: Tutorial de estructura de datos, gratis

• 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]

Page 157: Tutorial de estructura de datos, gratis

• La lógica de esta estructura permite la ejecución de un solo módulo SINO el siguiente, etc. asi hasta el final

Page 158: Tutorial de estructura de datos, gratis

• 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.

Page 159: Tutorial de estructura de datos, gratis

• 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]

Page 160: Tutorial de estructura de datos, gratis

DIAGRAMA DE FLUJO

Page 161: Tutorial de estructura de datos, gratis

• R recibe el nombre de valor inicial

• S el de valor final o valor de prueba

• T el de incremento.

Page 162: Tutorial de estructura de datos, gratis

• b) Ciclo Repetir-Mientras

• Tiene la forma:

• Repetir Mientras condición:

• [Módulo ]

• [Fin del ciclo]

Page 163: Tutorial de estructura de datos, gratis

DIAGRAMA DE FLUJO

Page 164: Tutorial de estructura de datos, gratis

• El ciclo continúa hasta que la condición exigida sea falsa.

Page 165: Tutorial de estructura de datos, gratis

UNIDAD V

Page 166: Tutorial de estructura de datos, gratis

UNIDAD V

Cadenas.

• Procesamiento de cadenas.

• Terminología básica.

• Almacenamiento de cadenas.

• Operaciones con cadenas.

Page 167: Tutorial de estructura de datos, gratis

•Cadenas

Page 168: Tutorial de estructura de datos, gratis

• 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

Page 169: Tutorial de estructura de datos, gratis

Terminología básica

• Cada lenguaje de programación posee un conjunto de caracteres que utiliza para comunicarse con la computadora.

Page 170: Tutorial de estructura de datos, gratis

Este conjunto incluye generalmente a los siguientes:

Page 171: Tutorial de estructura de datos, gratis

• 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.

Page 172: Tutorial de estructura de datos, gratis

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

Page 173: Tutorial de estructura de datos, gratis

• Cuyas longitudes respectivas son:

8, 12, 0 y 2.

Page 174: Tutorial de estructura de datos, gratis

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.

Page 175: Tutorial de estructura de datos, gratis

• 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.

Page 176: Tutorial de estructura de datos, gratis

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.

Page 177: Tutorial de estructura de datos, gratis

Las desventajas

• Se emplea mucho tiempo al leer los registrossi 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

Page 178: Tutorial de estructura de datos, gratis

• Almacenamiento de longitud variable con máximo establecido:

• Algunas operaciones con cadenas dependen de la existencia de cadenas de longitud variable.

Page 179: Tutorial de estructura de datos, gratis

• 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

Page 180: Tutorial de estructura de datos, gratis

• Suelen ser poco eficientes cuando las cadenas y su longitud están sometidas a cambios frecuentes.

Page 181: Tutorial de estructura de datos, gratis

• 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.

Page 182: Tutorial de estructura de datos, gratis

Operaciones con Cadenas

• Subcadenas:

• Cuando queremos acceder a una subcadenacontenida 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:

Page 183: Tutorial de estructura de datos, gratis
Page 184: Tutorial de estructura de datos, gratis

• 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:

Page 185: Tutorial de estructura de datos, gratis

• Si la secuencia no se encuentra dentro del texto, entonces INDEX nos devuelve el

valor 0.

Page 186: Tutorial de estructura de datos, gratis

• 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.

Page 187: Tutorial de estructura de datos, gratis
Page 188: Tutorial de estructura de datos, gratis

• Longitud:

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