Aprendiendo listas y tablas (Arrays: programación en C)

in #steemstem6 years ago

Saludo e introducción


Sean Bienvenidos una vez más a esta sesión de programación en C aquí @greylml deseándoles un buen fin de semana y siempre lleno de las mejores vibras, a llegado sábado y que mejor momento para postear que un sábado en la mañana, el día de hoy vengo con un tema bastante interesante y se trata de las famosas listas o tablas, dichas de otra manera Arrays, hemos visto en anteriores post de programación en C algunos tipos de datos bastante útiles así que daremos continuidad a ese análisis en lo que son las listas o tablas, su función, su estructura, su declaración, usandolos en cadenas de texto y mucho más, sin más que añadir a esta introducción vamos a comenzar.


Conceptos clave


Estos serán algunos de los términos que manejaremos a lo largo del post y para su mayor comprensión vamos a inicializarlos desde ya para que ustedes tengan conocimiento del contenido que vamos abordar.

  • Array
  • Array de caracteres
  • Declaración
  • Inicialización de array
  • Parámetros de tipo array

Empecemos definiendo lo que es un array, podríamos definirlo como una secuencia de datos que sean del mismo tipo, los datos que contenga van a llevar una enumeración consecutiva, por ejemplo será (0,1,2,3... entre otros) para los tipos de elementos que el array nos permita almacenar pueden ser de cualquier tipo de dato que incluya nuestro lenguaje de programación C esto no deja por fuera estructuras definidas que realice el usuario. El array lo utilizamos para guardar tipos de datos como int, float o char, y que puede contener un array? pues podría contener la edad de alumnos de una clase, temperaturas, calificaciones, entre otros. Los items que contenga un array lo vamos a tratar como elemento.

Figura 1: Array de 6 elementos

Los elementos del array se van a enumerar, como les mencionaba la enumeración será consecutiva (0,1,2,3...) y estos números se denominan valores índice o subindice del array, y este término se utiliza ya que se especifica de la misma forma que lo hariamos en matemáticas, como una secuencia tal que: a0, a1, a2... Esto vendría siendo la posición del elemento dentro de un array, nos da algo asi como un acceso directo a el, entonces si el nombre del array es a quedaría de la siguiente manera: a [0] es el nombre del elemento que está en la posición 0 y a[1] es el nombre del elemento que está en la posición 1. Básicamente siempre empezaremos desde la posición de memoria 0, en la figura observamos un array de 6 elementos y este contiene en la posición a[0] el valor 3,8... a[1] contiene el valor 8,6, la posición a[2] contiene 9,1, a[3] 7,2 a[4] 1,2 y finalmente a[5] contiene 6,4...esto no es más que una representación de la región de memoria en la computadora ya que un array se va almacenar con todos sus elementos en una secuencia de posiciones de memoria contigua.

Vamos con la declaración de un array


Es el mismo caso que con otro tipo de variable, debemos declarar el array antes de utilizarlo, de modo similar a otros tipos de datos con la diferencia que se va a indicar al compilador el tamaño o longitud del mismo, y para ello se debe hacer seguir al nombre, el tamaño que irá encerrado entre corchetes. La sintaxis para la declaración del array de una sola dimensión quedaría de la siguiente manera:

  • tipo nombreArray[NumeroDeElementos];

Por ejemplo si vamos a crear un array de 20 variables enteras quedaría de la siguiente manera:

  • int numeros[20];

De esta manera el compilador va a reservar espacio suficiente para contener 20 valores enteros. Podríamos acceder a los elementos de un array utilizando un índice en el nombre del array por ejemplo:

  • printf ("%d \n", numeros[8]);

Cuando tengamos el caso que debemos crear un array de números reales y su tamaño es una constante representada por un parámetro quedaría de la siguiente manera:


Si queremos acceder al elemento 5 y leer un valor de entrada quedaría de esta forma:

  • scanf ("%f ", &vector[4]);

Inicialización de un array


Para este paso debemos asignar los valores a los elementos del array, siempre antes de utilizarlo, de la misma manera que lo haríamos asignando los valores a variables, para esto lo escribimos de la siguiente forma:

  • precios[0] = 10;
  • precios[1] = 20;
  • precios[2] = 30;
  • precios[3] = 40;
...
Esta seria una manera de hacerlo sin embargo a mi criterio no es la manera más apropiada o más optima de hacerlo ya que cuando se nos de el caso que el array tenga muchos elementos estariamos haciendo del código algo tedioso, podemos hacerlo de una manera más simplificada para arrays de mayor tamaño. Para esto debemos inicializarlo en una sola sentencia, el tamaño de un array se podría determinar de manera automática por las constantes de inicialización, estas se separan por comas y se encierran entre llaves para verlo, vamos a ver como quedaría esto:

  • int numeros[5] = {8, 12, 16, 18, 20} ;
  • int n[] = {1,2,3} ; /* Declara un array de 3 elementos */
  • char c[] = {g,r,e,y} ; /* Declara< un array de 4 elementos */

Ahora vamos con ejemplos prácticos


Pasemos a la mejor parte, usar el Dev y ver que podemos escribir para que el compilador nos interprete nuestro código, para esto haremos un ejercicio donde el programa rellene un array con los 100 primeros números enteros y los mostrará de manera ascendente.

Código



Resultado



Podemos asignarle a un array utilizando un bucle for o while y pues este suele ser el sistema más empleado normalmente como se muestra en el código, pasemos al segundo ejemplo:

Código



Resultado



En este ejemplo podemos inicializar todos los valores del array números al valor 0, usamos la sentencia: for (i = O; i < 5; i++) esto se debe a que el valor del subíndice i varía de 0 a 5 y cada elemento del array numeros se inicializa y establece a 0.

Fuente y despedida


Espero que les haya gustado esta sesión de programación en C no olviden practicar estos temas son libres de indagar más a fondo para descubrir nuevas funciones ya que el tema es bastante amplio, queda de tarea que ustedes practiquen, y si tienen dudas no olviden dejarla en los comentarios y si quieren dar su aporte también déjenlo en los comentarios eso me gustaría mucho, nos vemos en un próximo post.

  • Libro: Programación en C: Metodología, algoritmos y estructura de datos
  • Autor: Luis Joyanes Aguilar

Sort:  

Muy buen post. Este tema es muy interesante, soy estudiante de la licenciatura en computación y conozco sobre este tema, es una de las primeras cosas que enseñan. Saludos.

Gracias @merlinrosales96 me alegra que te guste el post.

Congratulations @greylml! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments

Click on any badge to view your own Board of Honor on SteemitBoard.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Buen post, es uno de los temas fundamentales de programación tanto así que todos los lenguajes de programación lo implementan de alguna manera debido a que permiten resolver muchos problemas relacionados al manejo de grandes cantidades de datos.

gracias @ydavgonzalez es un tema que vi en estructura de datos I en la universidad, python lo maneja de una manera simple pero a la vez eficiente quizá haga un post más adelante con ese lenguaje también. Saludos

Congratulations @greylml! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Congratulations @greylml! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout
Award for the total payout received

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Coin Marketplace

STEEM 0.29
TRX 0.11
JST 0.033
BTC 63945.57
ETH 3135.76
USDT 1.00
SBD 4.00