sábado, 2 de julio de 2016

Capítulo 45. C: Arreglos, vectores, arrays...


Diario de un programador.- Dia 90


Arreglos, vectores, arrays...

Para mostrar la sintaxis de los arreglos en C, me basaré en los ejemplos propuestos en su oportunidad para el lenguaje Small Basic (Capitulo 12) y puede que agregue algunos extras que se me ocurran en el camino.

La sintaxis para crear un arreglo dice así:

TipoDeDato nombreDelArreglo[dimension]

TipoDeDato = Se refiere a que si será un arreglo de tipo int, float, etc.

nombreDelArreglo[dimension] = Al igual que las variables, los arreglos necesitan un nombre. Dimension se refiere a la cantidad de elementos que puede tener el arreglo

Por ejemplo, para crear un arreglo de 4 elementos, se puede hacer así:

int edades[3];

El arreglo “edades” tiene 4 elementos.

A diferencia de Small Basic, el primer elemento del arreglo es cero. O sea que en este caso, el arreglo es...

edades[0]
edades[1]
edades[2]
edades[3]

El ejemplo mostrado a continuación, será un promedio de 3 números, los cuales serán solicitados al usuario.

#include<stdio.h>
int main(void){

  int suma = 0, promedio, i;
  int numero[2];

  printf("Ingresa 3 numeros: \n");
  for(i = 0; i <= 2; i++){
    printf("Elemento nro %d: ", i+1);
    scanf("%d", &numero[i]);
    suma = suma + numero[i];
  }
   promedio = suma / 3;
   printf("\nEl promedio es: %d\n", promedio);

return 0;
}


Arreglos 1.1

En caso de que el programador quiera asignar  valores al arreglo, esto se puede realizar de la siguiente manera.

Sintaxis
tipoDeDato nombreArreglo[] = {dato1, dato2, dato3... datoN};

En el ejemplo del código anterior, esto quedaría así:

int numero[] = {8, 12, 7};
Ejemplo:

#include<stdio.h>
int main(void){

  int suma = 0, promedio, i;
  int numero[] = {8, 12, 7};

  for(i = 0; i < 3; i++){
     suma = suma + numero[i];
  }
   promedio = suma / 3;
   printf("\nEl promedio es: %d\n", promedio);

return 0;

}


Contenido actualizado Junio 2016
Nota: Si se omite el tamaño del arreglo como sucedió en el ejemplo anterior, entonces el número de elementos del arreglo, corresponderá al largo de este. Por ejemplo:
Los siguientes dos arreglos son equivalentes en su largo.

int numero[] = {8, 12, 7};
int numero[3] = {8, 12, 7};


En el siguiente ejemplo se solicita al usuario que ingrese un índice. Dependiendo de qué número se ingrese, se verá el nombre asociado a ese índice. El primer nombre del arreglo es “Gustavo”, el cual se encuentra en el índice cero. El siguiente nombre “Ximena”, ubicado en el el índice 1 y por último, “Javiera”, en el índice 2. Sobre el asterisco que lleva la variable “nombre”, se trata de un puntero. Los punteros se explicarán en capítulos posteriores, simplemente ahora se debe colocar un asterisco cada vez que se tenga que asignar cadenas a un arreglo de tipo char.
  
#include<stdio.h>
int main(void){

  char *nombres[] = {"Gustavo", "Ximena", "Javiera"};
  int indice;

  printf("Que indice consultaras?:\n");
  printf("Indices disponibles: 0, 1, 2: ");
  scanf("%d", &indice);

  switch(indice){
    case 0:
      printf(nombres[0]);
      break;
    case 1:
      printf(nombres[1]);
      break;
    case 2:
      printf(nombres[2]);
      break;
    default:
      printf("Opcion no es valida");
      break;
    }//fin switch
return 0;
}


Modificando los arreglos

Para modificar un dato de  un arreglo, simplemente hay que indicar el índice a modificar. Ejemplo

arreglo[] = {1, 2, 3, 4, 5};
arreglo[2] = 10;
arreglo[] = {1, 2, 10, 4, 5};

Ejemplo en un programa.

#include<stdio.h>
int main(void){

  int numeros[] = {1, 2, 3};

  printf("Indice 1: %d\n", numeros[1]);
  numeros[1] = 5;
  printf("Indice 1 modificado: %d\n", numeros[1]);

return 0;
}


Arreglos multidimensionales

Los arreglos también permiten añadirles más de un índice. Cuando un arreglo tiene más de un índice, se le conoce como arreglo multidimensional, siendo el arreglo de dos índices el de uso más común, el cual es conocido como matriz.
La sintaxis para un arreglo de dos dimensiones o matriz es la siguiente:

tipoDatos nombreArreglo[dimension][dimension]

Ejemplo:

int numero[3][3];

Como se puede ver, la cantidad de dimensiones del arreglo se puede apreciar por los corchetes que lleva.

Una matriz se caracteriza por estar formada por filas y columnas. Aquí un ejemplo:


#include<stdio.h>
int main(void){

  int fila, columna;
  int matriz[3][3];
  int contador = 0;

  for(fila = 0; fila < 3; fila++){
    for(columna = 0; columna < 3; columna++){
        contador++;
        matriz[fila][columna] = contador;
        printf("%d  ", matriz[fila][columna]);
    }
    printf("\n");
  }

return 0;
}


Eso es todo por ahora, si las matrices no quedaron muy claras, siempre se puede revisar el capitulo 12 donde quedó mejor explicado de que se trata. Como he dicho, en estos capítulos trataré de no extenderme mucho ya que es una materia ya vista. Solamente trataré de explicar la sintaxis en cada lenguaje.

Gustavo J. Cerda Nilo
Febrero 2016, última actualización Julio 2016




No hay comentarios:

Publicar un comentario

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...