1. Estructura de datos y algoritmos
Tipos de datos
1) Datos de tipo entero: (INTEGER) comprende un subconjunto de números enteros
cuyo tamaño puede variar entre los diversos sistemas de computación. Es un
miembro del siguiente conjunto de números: { . . . , -(n+1), -n, -(n-1),. . . . , -2, -1,
0, 1, 2, . . . ., (n-1), n, (n+1),. . . .}
2) Datos de tipo real: representa un subconjunto de los números reales,
denominado conjunto punto flotante. La aritmética de los números reales no
producen resultados exactos, debido a los problemas de redondeo ocasionados
por operaciones con números finitos de cifras. Para este tipo de datos son válidas
todas las operaciones aritméticas: suma, resta, multiplicación, división, potencia,
etc.
3) Datos de tipo lógico: (BOOLEAN) representa un datos que puede tener uno de
dos estados posibles: verdadero y falso, si y no, activado y desactivado, etc. Estos
valores se representan con las constantes: TRUE y FALSE. Las operaciones validas
sobre los datos lógicos o booleano se denominan comparaciones lógicas, las
cuales son: conjunción (AND), disyunción (ORA) y la negación (NO) lógica.
4) Datos de tipo carácter: (CHAR) comprende un conjunto de caracteres
imprimibles: las letras mayúsculas y minúsculas, los dígitos, el espacio en blanco,
los caracteres de puntuación (+ - * / ! @ # $ % ^& _ = ...) y un conjunto de
caracteres gráficos.
1
2. 5) Datos de tipo enumerado: Es un conjunto de valores referenciados por identificadores, que
se declaran de la siguiente forma. TYPE nombre = (constante1, constante2, ….., constante).
El dato de tipo enumerado es un ordinal cuyo orden viene dado según la disposición de
valores en su definición. Ejemplo: TYPE COLOR=(ROJO, AZUL, VERDE, BLANCO); Elemento
nº: 0 1 2 3
6) Un tipo subrango se deriva de un tipo ordinal, especificando dos constantes de este tipo,
que actúan como límite inferior y superior del conjunto de datos de ese tipo. Ejemplo: 1..5
consta de los elementos 1,2,3,4,5 ‘F’..’I’ consta de los elementos ‘F’,’G’,’H’,’I’ Las
declaraciones de los datos tipo subrango se sitúan entre las declaraciones de CONSTANTES
y VARIABLES de la siguiente forma: TYPE nombre = límite inferior .. límite superior.
TIPO COMENTARIO
BYTE admite valores entre 0 y 255
INTEGER admite valores entre -32768 y 32767
STRING cadenas de caracteres
DATE fechas, permite operar con ellas
2
3. Estructura de datos
Arrays: Los arreglos o ARRAY es la estructura de datos más conocida, la cual maneja información en
memoria principal. Se hará referencia a la estructura de datos estática debido a que el tamaño se
especifica al comienzo del programa y una vez establecido éste no se puede modificar durante la
ejecución del programa, por lo que se utiliza cuando se conoce de antemano la cantidad de datos que
se desean almacenar en la estructura.
Cadenas de caracteres: Una cadena de caracteres permite almacenar un conjunto de caracteres. Su
funcionamiento es similar a una tupla. Para inicializar un string utilizamos el operador de
asignación..Podemos utilizar las comillas simples o dobles para su inicialización
Registros: (o estructuras) son datos estructurados formados por elementos heterogéneos y
lógicamente relacionados. Estructura jerárquica con información de distinto tipo referente a un
Estructura jerárquica con información de distinto tipo referente a un mismo objeto. 9 A cada
componente de un registro se le denomina campo.
NOTAS (1) NOTAS (2) Notas (3) Notas (4)
3
4. Listas: Una lista es una estructura de datos lineal que se puede representar simbólicamente como un conjunto de
nodos enlazados entre sí. Las listas permiten modelar diversas entidades del mundo real como por ejemplo, los datos de
los alumnos de un grupo académico, los datos del personal de una empresa, los programas informáticos almacenados
en un disco magnético, etc. Es una secuencia de elementos del mismo tipo, de cada uno de los cuales se puede decir
cuál es su siguiente.
LISTAS ORDINALES: En las listas ordinales el orden dentro de la estructura lo establece la llegada a la misma. A diferencia
de las listas calificadas, en este tipo de listas no existe ningún elemento que identifique el nodo, y por lo tanto, los
valores se pueden repetir. El criterio de inserción resulta específico en cada caso (se podría insertar por el principio, o
bien por el final). Veremos a continuación dos ejemplos de listas ordinales que ya hemos tratado como TADs: las pilas y
las colas.
Pilas: Como se ha visto en el tema 2, una pila es una agrupación de elementos de determinada naturaleza o tipo (datos
de personas, números, procesos informáticos, automóviles, etc.) entre los que existe definida una relación de orden
(estructura de datos). En función del tiempo, algunos elementos de dicha naturaleza pueden llegar a la pila o salir de ella
(operaciones / acciones). En consecuencia el estado de la pila varía.
Colas: Como se ha visto en el tema 2, una cola es una agrupación de elementos de determinada naturaleza o tipo (datos
de personas, números, procesos informáticos, automóviles, etc.) entre los que existe definida una relación de orden. En
función del tiempo, pueden llegar a la cola o salir de ella algunos elementos de dicha naturaleza (operaciones/acciones).
En consecuencia el estado de la cola varía.
4
5. Árbol: El árbol es una estructura de datos fundamental en la informática, muy utilizada en todos sus
campos, por que se adapta a la representación natural de informaciones homogéneas organizadas y
de una gran comodidad y rapidez de manipulación. Las estructuras tipo árbol se usan principalmente
para representar datos con una relación jerárquica entre sus elementos, como son árboles
genealógicos, tablas, etc. .La definición de un árbol implica una estructura recursiva. Esto es, la
definición del árbol se refiere a otros árboles. Un árbol con ningún nodo es un árbol nulo; no tiene
raíz.
Algoritmos
Concepto de algoritmo
Un algoritmo: es una descripción ambigua y abstracta de cómo un tipo específico de problema queda resuelto hasta su
terminación, es una receta para resolver un problema de un tipo en particular, que proporciona una solución cualquiera
a situaciones problemáticas. Un algoritmo (la palabra tiene su origen en el matemático persa de nombre Al Khwarizmi)
en matemáticas e informática, significa un método o procedimiento de cálculo, que consta de los pasos básicos
necesarios para resolver un problema. El algoritmo es el concepto fundamental de la informática. Todo se basa en
algoritmos y estructuras de datos (tales como listas o gráficos).
5
6. Por lo general, los algoritmos se implementan en la práctica a través de una programación adecuada de un ordenador, o
más. Por diversas razones todavía no se admiten los algoritmos teóricamente. Existen varios ejemplos de algoritmos en
nuestra vida cotidiana: recetas, instrucciones de instalación y manuales de usuario se consideran algoritmos.
Representación de algoritmos
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de
flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.
El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son
formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de
programación específico.
Los algoritmos pueden ser creados de dos formas:
1)Seudocódigo.- Es un conjunto pequeño y claro de instrucciones; en secuencia, que permite llevar a cabo una tarea.
2)Diagrama de flujo.- Es la representación de la secuencia, a través de símbolos, de la tarea que se va a realizar.
ALGORITMO EXPRESADO EN PSEUDOCODIGO
Mucho se habla del pseudocódigo en las carreras de Analista de Sistemas y Programación. Pero no existe mucha
bibliografía al respecto.
Comencemos aclarando que no es una forma de programación. Se trata de una herramienta que los analistas de
sistemas utilizan para comunicar a los programadores la estructura del programa que van a realizar, de forma de tener
una idea bien clara de lo que se necesita programar.
Digamos que el pseudo código es una forma de diagramar un algoritmo para resolver un determinado problema, sin
atenerse a ningún lenguaje de programación en especial.
6
7. DIAGRAMA DE FLUJO
Es un esquema para representar gráficamente un algoritmo. Se basan en la utilización de diversos símbolos para representar
operaciones específicas, es decir, es la representación grafica de las distintas operaciones que se tienen que realizar para
resolver un problema, con indicación expresa el orden lógico en que deben realizarse.
Se les llama diagramas de flujo porque los símbolos utilizados se conectan por medio de flechas para indicar la secuencia de
operación. Representa la forma más tradicional y duradera para especificar los detalles algorítmicos de un proceso. Se utiliza
principalmente en programación, economía y procesos industriales.
Pseudocodigo El pseudocódigo es una mezcla entre un lenguaje de programación y el español, al utilizar pseudocódigo
podemos diseñar un programa que podrá ser traspasado a código fuente con gran facilidad.
El pseudocódigo es una representación narrativa de los pasos que debe seguir un algoritmo para llegar a la solución del
problema, su similitud con el código fuente de un lenguaje de alto nivel hace que esta técnica para la formulación de
algoritmos sea una de las más utilizadas. Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo:
• Ocupa menos espacio en una hoja de papel
• Permite representar en forma fácil operaciones repetitivas complejas
• Es muy fácil traspasar de pseudocódigo a un programa en algún lenguaje de programación.
• Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.
• Se adquiere un nivel de lógica similar al necesario para programar en los lenguajes de Alto Nivel.
7
8. LOS ORGANIGRAMAS.
Son representaciones gráficas que muestran la estructura formal de una empresa así como las interrelaciones y
niveles jerárquicos de los recursos humanos que la conforman.
Tipos de organigrama:
Vertical: Muestra las jerarquías según una pirámide, de arriba abajo.
Horizontal: Muestra las jerarquías de izquierda a derecha.
Mixto: Es una combinación entre el horizontal y el vertical.
Circular: La autoridad máxima está en el centro, y alrededor de ella se forman círculos concéntricos donde figuran
las autoridades en niveles decrecientes.
Escalar: Se usan sangrías para señalar la autoridad, cuanto mayor es la sangría, menor es la autoridad de ese cargo.
Tabular: Es prácticamente escalar, solo que el tabular no lleva líneas que unen los mandos de autoridad.
8
9. Diagramas Nassi-Schneiderman
Son similares a un diagrama de flujo pero omite las flechas que representan el flujo de control. En
lugar de las flechas se ocupan rectángulos colocados en forma sucesiva, dentro de cada rectángulo
se pone la instrucción en forma de pseudocódigo u otro conjunto de rectángulos o símbolos para
representar una condición o ciclo. Los símbolos que se utilizan en este tipo de diagramas son:
9
10. Referencias Bibliográficas
1)Apuntes de Informática IV de la FCA de la UNAf
2)Leandro Siso estudiante universitario de Informática.
Fecha de realización: 24 de Abril 2006.
3) Preiss, Bruno R. (1999), Data Structures and Algorithms with
Object-Oriented Design Patterns in Java
10