(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