domingo, 3 de julio de 2016

Capítulo 46. C++: Arreglos, vectores, arrays...


Diario de un programador.- Dia 91

Arreglos, vectores, arrays...

Esto es muy parecido a lo visto en el tutorial de C. Así que si se entendió bien ese tutorial, no debería haber problemas con este que es prácticamente lo mismo.

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<iostream>

int main(void){
  int suma = 0, promedio, i;
  int numero[2];

  std::cout << "Ingresa 3 numeros: \n";
  for(i = 0; i <= 2; i++){
    std::cout << "Elemento nro " << i+1 << ": ";
    std::cin >> numero[i];
    suma = suma + numero[i];
  }
   promedio = suma / 3;
   std::cout << "\nEl promedio es: " << promedio << std::endl;

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<iostream>

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;
   std::cout << "El promedio es: " << promedio << std::endl;

return 0;

}


En este  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 el “Ximena”, nombre ubicado en el el índice 1 y por último, “Javiera”, en el índice 2. En C++ se puede utilizar la clase estándar string para poder declarar arreglos, lo que facilita en cierta medida el manejo de cadenas.
  
#include<iostream>

int main(void){

  std::string nombres[] = {"Gustavo", "Ximena", "Javiera"};
  int indice;

  std::cout << "Que indice consultaras?:\n";
  std::cout << "Indices disponibles: 0, 1, 2: ";
  std::cin >> indice;

  switch(indice){
    case 0:
      std::cout << nombres[0];
      break;
    case 1:
      std::cout << nombres[1];
      break;
    case 2:
      std::cout << nombres[2];
      break;
    default:
      std::cout << "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<iostream>

int main(void){

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

  std::cout << "Indice 1: " << numeros[1] << std::endl;
  numeros[1] = 5;
  std::cout << "Indice 1 modificado: " << numeros[1] << std::endl;

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<iostream>
#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;
        std::cout << 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...