-
Notifications
You must be signed in to change notification settings - Fork 1
Arreglos cpp
#include <iostream>
using namespace std;
const int SIZE = 10;
int main(void) {
int A[SIZE];
float average=0;
for (int i = 0; i < 10; i++)
A[i]=i*2; // Inicializacion del arreglo
average+= A[i];
average/=10;
cout<< "The average is " << average << endl;
return 0;
}
Son variables de un mismo tipo que nos permiten almacenar mas de un valor, es decir esa misma variable puede tener o valer n valores distintos.
tipo nombre[tamaño];
Para declarar un arreglo hay que indicar el tipo de dato que es, su nombre y tamaño, el tamaño debe ir entre corchetes, de esta manera el compilador sabe cuanta memoria debe reservar para el arreglo.
float resultados[5];
Por ejemplo aquí creamos un arreglo de tipo float que puede almacenar cinco valores.
Podemos declarar un array del tamaño que sea, siempre y cuando nuestra memoria a disposición lo permita.
Para almacenar valores dentro de un arreglo, tenemos tres maneras, usando un ciclo o directamente como con cualquier otra variable, para ambas maneras hay que conocer las posiciones del arreglo, esto lo hacemos mediante índices.
float resultados[5];
resultados[0] = 3.5;
resultados[1] = 2.5;
resultados[2] = 6.35;
resultados[3] = 37.78;
resultados[4] = -0.123;
En resultados[0] = 3.5
, estamos asignando dentro de la posición 0 del arreglo, el valor de 3.5, a este 0 es lo que llamamos índice.
El índice de un arreglo siempre inicia en 0 por lo que si queremos recorrer un arreglo a tráves de un ciclo debemos tener en cuenta que el índice va desde 0 hasta n-1, donde n es el tamaño del arreglo.
float resultados[5];
for (int i = 0; i < 5; i++){
resultados[i] = 3.753 * (i * 3.23);
cout << resultados[i];
}
La última manera es no declarar el tamaño y asignar los valores dentro de corchetes, de esta manera el compilador también sabe cuanta manera reservar, en el tema de apuntadores se verá más el tema de memoria.
float resultados[] = {1.2,3.4,2.6,3.7,5.6};
for (float i: resultados)
cout << i ;
Aquí se asignan los valores y según el número de valores o elementos, será el tamaño del arreglo.
Y hacemos uso de un for each
para recorrer cada elemento del arreglo.
Es una implementación especial de for
que nos permite iterar sobre los elementos de un arreglo o vector (lo veremos en el tema de plantillas) en vez de sus índices.
for (tipo nombre : array/vector)
Lo podemos ver así
for (iterador : array/vector a iterar)
El iterador debe ser del mismo tipo que el arreglo, de lo contrario nos arrojará un error, una manera de evitar esto, es hacer uso de auto
.
float resultados[] = {1.2,3.4,2.6,3.7,5.6};
for (auto i: resultados)
cout << i ;
Es una palabra que sirve para decirle al compilador que determine el tipo de una variable o función. De esta manera podemos dejar de lado la preocupación de determinar el tipo de dato que estamos trabajando.
Es una manera de definir que una variable es constante, es decir que su valor nunca va a cambiar.
#include <iostream>
using namespace std;
const int SIZE = 10;
int main(void) {
....
}
Podemos ver que la variable constante SIZE
se encuentra fuera de la función principal, esto es porque se encuentra en el entorno global y es accesible para cualquier función, clase, estructura, etc. de nuestro programa, nos hará más sentido en funciones
Es un ámbito específico para el cuál una variable, o función se encuentra declarada, por ejemplo si la constante SIZE
estuviera dentro de la función principal solo sería accesible para todo lo que estuviera dentro la función principal, por lo que si quisieramos usar directamente su valor en otra función no podríamos,ya que esta función no sabe que es SIZE
.
También es posible declarar arreglos de dos dimensiones, es decir matrices.
La manera de recorrerlas e inicializarlas es igual a las arreglos salvo que vamos a tener dos índices.
tipo nombre[filas][columnas];
int coordenadas[2][2] = {{1,2},{3,4}};
Estamos declarando una matriz de 2*2, recordar que los índices empiezan en 0, en la fila 0 columna 0 tenemos el valor de 1, en la fila fila 0 columna 1 tenemos el valor de 2, en la fila 1 columna 0 tenemos el valor de 3 y en la fila 1 columna tenemos el valor de 4.
Si lo vemos tal cuál una matriz, se vería así.
$\begin{equation} \begin{bmatrix} 1 & 2 \ 3& 4\ \nonumber \end{bmatrix} \end{equation}$`
int coordenadas[2][2] = {{fila 0},{fila 1}};
int coordenadas[2][2] = {{columna 0,columna 1},{columna 0,columna 1}};
int coordenadas[2][2] = {{1,2},{3,4}};
for (int fila = 0; fila < 2; fila++){
for(int columna = 0; columna < 2; columna++){
cout << coordenadas[fila][columna] << '\t';
}
cout << '\n';
}
cout << endl;
Aquí no podemos hacerlo con un for each
, ya que las matrices se manejan como arreglos de punteros, lo explicaremos cuando lleguemos a ese tema.
Al igual que con los arreglos el tamaño de la matriz, dependerá de la memoria disponible.
Introducción | Funciones |
---|