facebook cdr twitter cdr   instagram cdr
Miércoles, 08 November 2017 16:58

11. Uso y manejo de arrays

Escrito por
Valora este artículo
(0 votos)

Un arreglo es una colección de datos finito del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Para referirse a un determinado elemento de un arreglo se deberá utilizar el nombre del arreglo acompañado de un índice el cual especifica la posición relativa en que se encuentra el elemento.

Los arreglos pueden ser:

  • Unidimensionales (vectores).
  • Bidimensionales (matrices, tablas).
  • Multidimensionales (tres dimensiones o más).

Los arrays son usados extensamente por los programadores para contener listas de datos en la memoria, por ejemplo, los datos almacenados en un disco suelen leerse y ponerse dentro de un array con el objetivo de facilitar la manipulación de dichos datos, ya que los datos en memoria pueden ser modificados, clasificados, marcados para su eliminación, etc. para luego ser reescritos al disco.

Otro ejemplo podría ser el de un menú de opciones que se desplegarán dentro de una ventana para que el usuario pueda elegir una de éstas, en tales casos y cuando las opciones son numerosas, solamente se ponen unas cuantas de ellas dentro de la ventana pero se le da al usuario la oportunidad de poder subir y bajar a su antojo para ver el resto de opciones que, aunque no se vean en la ventana, forman parte del menú o array de opciones.

arrays

11.1 Vectores

Los vectores son arrays unidimensionales para almacenar datos que permiten contener una serie de valores del mismo tipo de dato, cada uno de los valores contenidos tiene una posición asociada que se usará para accederlos. Está posición o índice será siempre un número entero positivo. En C la cantidad de elementos que podrá contener un vector es fijo, y en principio se define cuando se declara el vector. Los vectores se pueden declarar de la siguiente forma:

tipo_de_dato nombre_vector[n];

Esto declara la variable nombre_vector como un vector de tipo_de_dato que podrá contener n cantidad de elementos, y cada uno de estos elemento podrá contener un valor de tipo tipo_de_dato. Por ejemplo:

int edades[15];

En este ejemplo declaramos un vector de 15 elementos del tipo int, los índices de los elementos irían entre 0 (para el primer elemento) y 14 para el último. De la misma forma que con las otras declaraciones de variables que hemos visto se le puede asignar un valor iniciar a los elementos. O también se pueden declarar:

tipo_de_dato nombre_vector[n] = { valor_0, valor_1, valor_2 };

En caso estamos asignadole valores a los primeros 3 elementos del vector nombre_vector. Notar que n debe ser mayor o igual a la cantidad de valores que le estamos asignando al vector, en el caso de ser la misma cantidad no aporta información, por lo que el lenguaje nos permite escribir:

tipo_de_dato nombre_vector[] = { valor_0, valor_1, valor_2 };

Que declarará nombre_vector como con n = 3. Para acceder a un elemento accederemos a través de su posición. Es decir:

tipo_de_dato elemento;
...
elemento = nombre_vector[2];

Asumiendo que tenemos el vector anterior definido estaríamos guardando valor_2 en elemento. Veamos unos ejemplo:

 cap33

En el ejemplo anterior usamos los vectores de C para representar vectores matemáticos y calcular el producto escalar entre ellos. Una peculiaridad que se puede notar es que al recibir un arreglo en una función no se especifica el largo, volveremos a esto en un capítulo posterior.

Otra función clásica es la búsqueda de un máximo o mínimo, que podemos escribirla de la siguiente manera:

 cap42

Otro ejemplo sencillo, calcular el promedio de los valores

cap43

Cuando una función recibe un vector por parámetro y cambia su contenido y el cambio es permanente (se ve aún fuera de la función). Esto puede parecer extraño después del énfasis que pusimos en resaltar que todos los parámetros de una función se reciben por valor, pero se aclarará en el siguiente capitulo.

Mientras tanto usemos esto para definir una función que le aplique otra función que recibe por parámetro a cada elemento del vector, guardando el resultado en el mismo vector y una llamada de ejemplo a esta.

cap44

11.2 Matrices

De la misma forma que venimos usando vectores de tipos básicos, podemos tener vectores de vectores, estos se declaran de la siguiente forma:

cap45

En este ejemplo tabla es un vector de longitud 3, cuyos elementos son vectores de longitud 4 de elementos de tipo int.

En resumen, suponiendo que v[n] es un vector de cualquier tipo de dato con n cantidad de posiciones, al vector v se le aplican las siguientes reglas:

  1. La primera posición siempre será v[0]
  2. La última posición es v[n-1]
  3. En versiones previas a C99 n es una constante definida antes de la declaración de v[n]

 

Visto 373 veces Modificado por última vez en Miércoles, 04 April 2018 14:40
Alejandro Carreño

Desarrollador, Programador, Web Master y Community Manager de CDR Consultores

Deja un comentario

Asegúrese de introducir toda la información requerida, indicada por un asterisco (*). No se permite código HTML.

Tweets

RT @cdrconsultores: Descubre aquí los consejos para evitar errores de gestión empresarial -> https://t.co/sXjnWiVsYR https://t.co/RfDxmfZhbx
Descubre aquí los consejos para evitar errores de gestión empresarial -> https://t.co/sXjnWiVsYR https://t.co/RfDxmfZhbx

Productos

Servicios

servicios off
website off
desarrollo off
formacion off
negocios off

Publicaciones

« Abril 2018 »
Lun Mar Mier Jue Vie Sáb Dom
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

Facebook

end-logo

 

Nestor M. Carreño T. - Todos los Derechos Reservados
Rescindir de Dios y de los valores morales, lleva no sólo al empobrecimiento espiritual, sino también al empobrecimiento material
Gracias a Usted, Muchas Gracias por Consultarnos, Dios le Bendiga!

Diseño y Desarrollo Nestor M. Carreño T. - CDR Consultores, C.A.