ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Arreglos (Arrays)

ejcsolicionesApuntes15 de Agosto de 2021

14.916 Palabras (60 Páginas)160 Visitas

Página 1 de 60

1.1.        Unidimensionales (vectores)

Una estructura de datos es una colección de datos organizados de una cierta manera, y que se caracterizan por las operaciones que se definen sobre ellas.

Las estructuras de datos son muy importantes en los sistemas de computadora.

Las estructuras de datos se clasifican en estáticas y dinámicas. Esta clasificación se basa en la forma de gestionar la memoria de sistema para almacenar un conjunto de elementos del mismo tipo.

Las estructuras estáticas, la memoria se gestiona en tiempo de compilación, mientras que para las estructuras dinámicas la memoria se gestiona en tiempo de ejecución. La forma de generar los almacenamientos implican ventajas y desventajas, ambos tipos de estructuras existen en los lenguajes reales, el uso más conveniente de una forma u otra dependerá de los requerimientos del problema a resolver.

Dentro de las estructuras estáticas, se encuentran los arreglos (cualquiera sea el número de dimensiones que tenga) y los registros (estas son colecciones de elementos que pueden ser de distinto tipo, los cuales se verán más adelante).

Dentro de las estructuras dinámicas se encuentran: pila, cola, lista simplemente enlazada, lista doblemente enlazada, listas circulares, árboles, grafos. En todas ellas, se almacena el dato genuino 8 por ejemplo alturas de personas) más otro tipo de información que ayuda a formar la estructura de datos de una forma particular.

En programación, un arreglo, es un conjunto finito de elementos del mismo tipo (homogéneos) que ocupa un espacio o zona de almacenamiento en memoria dinámica físicamente contiguo.

Los arreglos pueden ser unidimensionales también llamados vectores (o arreglos lineales), o bidireccionales (matrices) o multidimensionales.

Todo arreglo unidimensional o vector tiene asociado un único nombre o identificador. Cada elemento es referenciado por la posición que ocupa dentro del vector. Dichas posiciones son llamadas índice y siempre son correlativos.

Los vectores se pueden representar gráficamente como muestra la figura1, es decir como un rectángulo dividido en tantas partes iguales como elementos tiene el vector o arreglo unidimensional. La figura 1 representa un arreglo unidimensional llamado Dato de 4 elementos.

El nombre o identificador sirve para todos los elementos del conjunto, el valor del subíndice asociado identifica en forma precisa a alguno de esos elementos.

[pic 1]

El número de elementos de un vector se llama rango del vector. En el caso de la figura 1, el rango del vector llamado Dato, es 4.

Los arreglos en general pueden contener datos numéricos y no numéricos, por ejemplo se puede pensar en un arreglo de carácter. La figura 2, muestra un arreglo de tipo carácter de 5 elementos, llamado Info.

[pic 2]Otro ejemplo de un arreglo unidimensional no numérico, puede ser un vector que contiene los nombres de los 8 alumnos de un curso, entonces el vector se llama Alumno y su rango es de 8. En la figura 3 se muestra el vector Alumno.

[pic 3]

Cada elemento de un vector se puede procesar como si fuese una variable simple al ocupar una posición de memoria. Por ejemplo:

Dato [4] 🡨 3

Almacena el valor entero o real 3 en el vector Dato en la posición número 4 (dato debe ser de tipo entero o real).

La instrucción: escribir (Dato [4])

muestra por pantalla el contenido de la posición 4 del  vector llamado Dato.

Los arreglos cualquiera sea su dimensión necesitan ser dimensionados previamente a su uso dentro de un programa.

En pseudocódigo un arreglo unidimensional se declara de la siguiente forma:

Algoritmo  declaración_arreglo

tipo

        array [1..10] de entero : dato

var

        dato : info

        entero: índice

inicio

        Acciones

Se debe nota que en este trozo de código se agrega una sección llamada tipo, en esta parte se declaran los arreglos y otros tipos de datos definidos por el usuario como se verá más adelante. Se usa la palabra reservada array, seguido entre corchetes el rango como un intervalo cerrado  entre 1 y el límite superior o cantidad máxima de elementos. En el ejemplo el arreglo tiene 10 elementos. A continuación se indica el tipo de dato que contiene el arreglo y finalmente el identificador. En la sección correspondiente a las variables (var) se indica el nombre de la variable con la que se va a manipular el conjunto  de elementos. En el ejemplo el arreglo es de enteros y la variable por media de la cual se va a acceder a los elementos del vector, es info.

Si se desea guardar el valor entero 5, en la segunda posición del vector, la instrucción es:

info [2]🡨 5

En el siguiente trozo de código, se crean dos vectores distintos:

Algoritmo  declaración_arreglo2

tipo

        array [1..10] de entero : dato

var

dato : origen, destino

entero: índice

inicio

        Acciones        

En este trozo de código, se crean dos arreglos distintos, uno de ellos se trabaja mediante la variable origen (arreglo unidimensional de 10 elementos de tipo entero) y otro se trabaja mediante la variable destino (arreglo de 10 elementos de tipo entero).

En este ejemplo, dato es un tipo de dato definido por el usuario, así como entero, real, lógico son tipos de datos primitivos o simples, dato es un tipo de dato compuesto, que reciben el nombre de: tipo de dato definido por el usuario.

En un mismo algoritmo pueden declararse varios tipos de arreglos, según las necesidades que surjan de los requerimientos del problema a resolver, en el siguiente código se declaran tres arreglos distintos.

Algoritmo  declaración_arreglo3

tipo

array [1..10] de entero : dato

array [1..20] de real: vector1

array [1..3] de cadena: vector2

var

dato : origen

vector1: vec1

vector2: vec2

entero: índice

inicio

        Acciones

4.2 Utilización de arreglos unidimensionales en algoritmos

Los arreglos se utilizan cuando es necesario almacenar varios valores. También se podrían guardar valores en un conjunto de variables simples, pero esto es más engorroso, y más complejo de manejar. En lugar de tener 10 variables de tipo real para guardar las alturas de personas, es más sencillo crear un arreglo de 10 elementos de tipo real, ya que toda la información la manejo con el mismo nombre de variable; y los elementos se diferencian entre sí según el valor que asuma un subíndice asociado al vector.

En la práctica suele ser necesario procesar conjuntos de datos, como por ejemplo listas de alumnos, docentes, cuentas bancarias, etc. Por ejemplo si necesitase procesar datos de 5000 alumnos respecto al promedio de inasistencia de ellos, deberíamos tener 5000 variables simple, cada una de ellas contendría un entero que represente este dato (inasistencias). Si por ejemplo se quisiese ordenar los alumnos por número creciente de inasistencias, para por ejemplo otorgarles un premio, sería imperioso tener todos los datos activos en memoria, y necesitaría otra variable para indicar el orden de los datos (5000 variables enteras más). Mientras que con un arreglo unidimensional de 5000 elementos de tipo entero sería suficiente para contener los datos y una variable más de tipo entero para indicar el orden dentro del arreglo (subíndice). Ordenado los datos de menor a mayor, en la primer posición del arreglo (índice = 1) tendría la menor inasistencia y en la última posición tendría el número más grande correspondiente al mayor número de falta (índice = 5000).

Como queda explicado con esta breve reflexión, es necesario que los lenguajes de programación brinden soporte para mantener juntos (referenciados mediante un mismo identificador) colecciones de de datos del mismo tipo.

Manejo de índices.

Un vector como ya se mencionó es una secuencia ordenada de elementos como

x[1], x[2],…,x[n]

El límite inferior no tiene que empezar en 1, puede ser cualquier valor para el subíndice, aunque es más fácil si el subíndice también sirve para indicar posición, como en el ejemplo anterior. Un subíndice igual a 1, también indica posición 1, y así.

Entonces también sería válido

P[0], P[1], P[2], P[3], P[4], P[5]

En este caso el rango del arreglo P es 6, y la posición 1 le corresponde el subíndice 0.

Lo mismo sucede con el siguiente caso:

P[-10], P[-11], P[-12], P[-13], P[-14], P[-15]

En este caso el rango del arreglo P es 6, y la posición 1 le corresponde el subíndice -10 y así sucesivamente.

Las operaciones que pueden realizarse con vectores son:

  • Asignación
  • Lectura/escritura Recorrido
  • Ordenación búsqueda

En general, las operaciones con vectores implican el procesamiento o tratamiento de los elementos individuales del arreglo lineal.

...

Descargar como (para miembros actualizados) txt (57 Kb) pdf (251 Kb) docx (106 Kb)
Leer 59 páginas más »
Disponible sólo en Clubensayos.com