Professional Documents
Culture Documents
Sistemas Informáticos v
vi Sistemas Informáticos
Tabla de ilustraciones
Figura 1.- Representación de un array de 7 elementos ................................................. 7
Figura 2.- Representación de un array rectangular de 3x5 elementos........................... 7
Figura 3.- Representación de una lista........................................................................... 9
Figura 4.- Representación de un árbol ......................................................................... 10
Figura 5.- Pseudocódigo............................................................................................... 12
Figura 6.- Símbología de un organigrama .................................................................... 13
Figura 7.- Organigrama de un programa ...................................................................... 13
Figura 8.- Simbología de los diagramas de Nassi-Schneiderman................................ 14
Figura 9.- Diagrama de Nassi-Schneiderman de un programa .................................... 14
Figura 10.- Estructuras de diferentes ciclos ................................................................. 17
Figura 11.- Árbol de diseño descendente..................................................................... 21
-1-
Estructuras de datos y algoritmos
2. Tipos de datos
Se denomina dato a cualquier objeto manipulable por la computadora. Un dato puede
ser un carácter leído de un teclado, información almacenada en un disco, un número
que se encuentra en memoria principal, etc.
Sistemas Informáticos 2
Estructuras de datos y algoritmos
Cualquier operación con datos de tipo entero es exacta salvo que se produzcan
desbordamientos.
3 Sistemas Informáticos
Estructuras de datos y algoritmos
Sobre los valores lógicos pueden actuar los llamados operadores lógicos. Los
operadores lógicos son: Y, O y NO (en inglés AND, OR y NOT).
Sistemas Informáticos 4
Estructuras de datos y algoritmos
Los datos vistos en las secciones anteriores son usualmente tratados por la
computadora a nivel hardware. Mientras que el tipo de datos enumerado y el tipo de
datos subrango sólo son interpretados por el software.
5 Sistemas Informáticos
Estructuras de datos y algoritmos
3. Estructuras de datos
Los tipos de datos vistos en el apartado anterior se suelen denominar elementales, ya
que se pueden utilizar para construir tipos de datos más elaborados. Una estructura
de datos o tipo de dato estructurado es un tipo de dato construido a partir de otros
tipos de datos.
Un dato de tipo estructurado está compuesto por una serie de datos de tipos
elementales y alguna relación existente entre ellos.
Una estructura de datos se dice que es homogénea cuando todos los datos
elementales que la forman son del mismo tipo. En caso contrario se dice que la
estructura es heterogénea.
3.1. Arrays
El array es la estructura de datos más usual. Existe en todos los lenguajes de
programación.
Un array es una estructura de datos formada por una cantidad fija de datos de un
mismo tipo, cada uno de los cuales tiene asociado uno o más índices que determinan
de forma unívoca la posición del dato en el array. Para cada combinación posible de
valores de índices existe uno y sólo un dato del tipo constituyente, o elemento del
array.
Sistemas Informáticos 6
Estructuras de datos y algoritmos
7 Sistemas Informáticos
Estructuras de datos y algoritmos
Sobre datos de tipo cadena de caracteres se pueden realizar, entre otras, las
siguientes operaciones:
3.3. Registros
Un registro es una estructura de datos formada por unión de elementos que contienen
información relativa a un mismo ente. A los elementos que componen el registro se les
denomina campos. Cada campo puede ser de un tipo determinado,
independientemente de los demás campos. Los campos dentro del registro aparecen
en un orden determinado, y se identifican por un nombre. Para definir un registro es
necesario especificar el nombre y tipo de cada campo. Los campos pueden ser de un
tipo estructurado.
Ejemplo:
Class Curso
Integer horas;
String nombre;
String fecha;
String lugar;
Sistemas Informáticos 8
Estructuras de datos y algoritmos
3.4. Listas
Una lista está formada por un número variable de datos (elementos) de un mismo tipo,
ordenados según una secuencia lineal. Cada elemento, salvo el primero, tiene un
predecesor en la lista. Todos los elementos, salvo el último, tienen un sucesor. La lista
es una estructura dinámica.
Podemos definir una lista como una estructura de datos formada por registros de,
al menos, dos campos, en que uno de ellos contiene información que permite localizar
al siguiente registro en la lista según una secuencia dada.
Se denominan cola o listas FIFO a una lista en que las inserciones se realizan
sólo en el final y sólo se puede acceder o eliminar en un instante dado el primer
elemento de la lista.
3.5. Árboles
Un árbol es una estructura de datos formada por elementos del mismo tipo, llamados
nodos, relacionados de tal modo que el árbol puede descomponerse en un nodo,
9 Sistemas Informáticos
Estructuras de datos y algoritmos
llamado raíz, y un conjunto finito de objetos de tipo árbol, llamados subárboles del
nodo raíz.
Se denomina hijo de un nodo a cada uno de los nodos que dependen de él. Se
denomina grado de un nodo al número de subárboles que sustenta. El orden de un
árbol es el mayor de los grados de sus nodos.
Sistemas Informáticos 10
Estructuras de datos y algoritmos
4. Algoritmos
Para solucionar un problema real es necesario encontrar un método de resolución del
problema, y posteriormente descomponerlo en acciones sencillas, que la computadora
sea capaz de realizar. De ello se encargan los algoritmos.
Por tanto es necesario, una vez diseñado el primer algoritmo, realizar una
evaluación del mismo. Si se decide que éste no es eficiente, será necesario o bien
diseñar uno nuevo, o bien optimizar el original.
11 Sistemas Informáticos
Estructuras de datos y algoritmos
4.2.1 Pseudocódigo
Ejemplo:
Sistemas Informáticos 12
Estructuras de datos y algoritmos
4.2.2 Organigramas
13 Sistemas Informáticos
Estructuras de datos y algoritmos
Sistemas Informáticos 14
Estructuras de datos y algoritmos
4.3.1 Asignaciones
Ejemplo:
x Å 56;
y Å x;
4.3.2 Entradas/salidas
4.3.3 Decisiones
Las decisiones son acciones de control de flujo. Permiten modificar el orden en que
se realizan otras acciones. Una decisión posee siempre un argumento, que
normalmente debe ser una expresión lógica. Dependiendo del valor de la expresión
lógica se ejecutan las acciones que están en uno u otro camino, a partir de la decisión.
Una decisión permite, por tanto, bifurcar en dos caminos el flujo de acciones.
15 Sistemas Informáticos
Estructuras de datos y algoritmos
Si ( a > b ) {
devolver a ;
FIN ;
Si no {
devolver b ;
FIN ;
4.3.4 Ciclos
En un ciclo repetitivo se debe especificar siempre el valor inicial y final que toma el
contador del ciclo, y el incremento a aplicar en cada iteración, si éste es distinto a uno.
Sistemas Informáticos 16
Estructuras de datos y algoritmos
Ejemplo:
límite Å 45 ;
contador Å leer_de_teclado () ;
contador Å contador + 1 ;
imprimir_por_pantalla ( contador ) ;
FIN ;
4.3.5 Procedimientos
17 Sistemas Informáticos
Estructuras de datos y algoritmos
entero resultado Å a + b;
devolver resultado;
acumulado Å Sumar ( x , 4 )
devolver acumulado;
4.4. Recursividad
El concepto de recursividad, en cualquiera de los ámbitos a los que se aplica, hace
referencia a la definición de una entidad en función de sí misma. La recursividad
probablemente no está muy bien vista en algunos campos como la lingüística, pero es
una herramienta muy útil y potente en programación.
Sistemas Informáticos 18
Estructuras de datos y algoritmos
problema original y, de algún modo, más simples de resolver. Una vez que se realiza
la subdivisión original, se usa la misma técnica de descomposición para dividir cada
uno de esos subproblemas en otros todavía más simples. Finalmente, los
subproblemas se hacen tan simples que se pueden resolver sin más subdivisiones y la
solución final obtiene reensamblando los componentes resueltos.
Factorial (entero n)
Si (n es_igual_a 0)
devolver 1;
Si no
Fin
19 Sistemas Informáticos
Estructuras de datos y algoritmos
Esta es, junto con la fase anterior, la parte más delicada del desarrollo de un
programa. Ambas etapas están, además, íntimamente relacionadas.
Sistemas Informáticos 20
Estructuras de datos y algoritmos
21 Sistemas Informáticos
Estructuras de datos y algoritmos
Sistemas Informáticos 22
Estructuras de datos y algoritmos
5. Conclusiones
Las estructuras de datos y algoritmos constituyen elementos básicos en el
almacenamiento y tratamiento de la información.
Han de conocerse y manejarse con facilidad los tipos de datos y las técnicas de
creación, representación y refinamiento de algoritmos para la futura construcción de
programas de calidad.
23 Sistemas Informáticos
Estructuras de datos y algoritmos
6. Bibliografía
• [Prieto et al., 2001] Prieto A., Lloris A. y Torres J.C. - “Introducción a la
informática”. Editorial: Mc Graw Hill.
Sistemas Informáticos 24