(Arrays)
- Las estructuras de datos estáticas
- Las estructuras de datos dinámicas
- Ejercicio, utilizando tipos simples de datos
Una estructura de Datos es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella.
Los tipos de datos mas frecuentes utilizados en los diferentes lenguajes de programación son:
Para ver el gráfico seleccione la opción "Descargar" del menú superior
Los tipos de datos simples pueden ser organizados en diferentes estructuras de datos: estáticas y dinámicas.
Las estructuras de datos estáticas:
Son aquellas en las que el tamaño ocupado en memoria se define antes de que el programa se ejecute y no puede modificarse dicho tamaño durante la ejecución del programa.
Estas estructuras están implementadas en casi todos los lenguajes.
Su principal característica es que ocupan solo una casilla de memoria, por lo tanto una variable simple hace referencia a un único valor a la vez, dentro de este grupo de datos se encuentra: enteros, reales, caracteres, boléanos, enumerados y subrangos (los últimos no existen en algunos lenguajes de programación)
Las estructuras de datos dinámicas:
No tienen las limitaciones o restricciones en el tamaño de memoria ocupada que son propias de las estructuras estáticas.
Mediante el uso de un tipo de datos especifico, denominado puntero, es posible construir estructuras de datos dinámicas que no son soportadas por la mayoría de los lenguajes, pero que en aquellos que si tienen estas características ofrecen soluciones eficaces y efectivas en la solución de problemas complejos.
Se caracteriza por el hecho de que con un nombre se hace referencia a un grupo de casillas de memoria. Es decir un dato estructurado tiene varios componentes.
Ejercicio, utilizando tipos simples de datos
Se tienen las calificaciones de un grupo de 50 alumnos.
Se necesita saber cuántos alumnos tienen una calificación superior al promedio del grupo.
Algoritmo 1
DOBLE LECTURA
{Este algoritmo resuelve el problema planteado en el ejemplo 1, por medio de una doble lectura}
{I y CONT son variables de tipo entero. AC, PROM y C son variables de tipo real}
- hacer AC = 0 e I = 1
Leer calificación I (C)
Hacer AC = AC + C e I = I+1
- Repetir mientras (I<= 50)
- {Fin del ciclo del paso 2}
{Como se necesita decir cuántos alumnos obtuvieron una calificación superior al promedio, se deberá volver a leer las 50 calificaciones para poder comparar cada una de ellas con el promedio}
Hacer CONT = 0 e I = 1
- Hacer PROM = AC / 50
Leer calificación I (C)
- Si C> PROM entonces
Hacer I = I + 1
- Repetir mientras (I<=50)
- {Fin del ciclo del paso 5}
- Escribir CONT
Algoritmo 2.
MUCHAS VARIABLES
{Este algoritmo resuelve el problema planteado en el ejemplo 1, utilizando múltiples variables}
{I y CONT son variables de tipo entero. AC, PROM y C son variables de tipo real}
{Las calificaciones correspondientes a los 50 alumnos}
Hacer AC = C1 + C2 + C3 + …..+C50
PROM = AC / 50 y CONT = 0
- Leer C1, C2, C3,….C50
Hacer CONT = CONT + 1
- Si C1 > PROM entonces
- {Fin del condicional del paso 2}
- Si C2> PROM entonces
- {Fin del condicional del paso 4}
…
Hacer CONT = CONT + 1
- Si C50 > PROM entonces
- {Fin del condicional del paso 100}
- Escribir CONT
En la solución planteada en el algoritmo 1, el usuario del algoritmo debe ingresar dos veces el conjunto de datos.
Esto resulta totalmente molesto y además ineficiente.
En la solución planteada en el algoritmo 2, se manejan 50 variables en memoria.
Esta solución presenta el inconveniente de que el manejo de las variables puede tornarse incontrolable, si el número de las mismas crece considerablemente.
Además algunos pasos especificados se repiten ya que no pueden generalizarse.
Héctor Estigarribia