Arreglos en C++
Ramiro Estigarribia Canese
¿Qué es un Arreglo?
➔ Es un grupo de variables que contienen valores,
todos del mismo tipo.
➔ Los arreglos son entidades de longitud fija;
conservan la misma longitud una vez creados.
➔ Para hacer referencia a un elemento específico en
un arreglo, debemos especificar el nombre de la
referencia al arreglo y el número de la posición del
elemento en el arreglo.
➔ El número de la posición del elemento se conoce
formalmente como el índice o subíndice del
elemento.
Partes de un Arreglo.
Partes de un Arreglo.
➔ En el ejemplo: el nombre del arreglo es c.
➔ int c[ 12 ]; //c es un arreglo de 12 enteros
➔ La manera en que se hace referencia a los
elementos es: c[ 0 ] , c[ 1 ] , c[ 2 ] , ..., c[ 11 ] .
➔ El valor de c[ 0 ] es -45 , el valor de c[ 1 ] es 6, el de
c[ 2 ] es 0 y el de c[ 11 ] es 78.
➔ Para calcular la suma de los valores en los
primeros tres elementos y almacenar el resultado
en la variable suma , escribiríamos lo siguiente:
suma = c[ 0 ] + c[ 1 ] + c[ 2 ];
Creación de arreglos
➔ Al igual que los demás objetos, los arreglos se
deben ser declarados.
➔ Para crear un objeto arreglo, el programador
especifica el tipo y el número de elementos.
➔ La siguiente declaración crea un arreglo, que
contiene 7 elementos int , y almacena la referencia
del arreglo en la variable Arreglo:
int Arreglo [ 7 ]; // arreglo de 7 números enteros.
Ejemplo: Listar Elementos.
#include <iostream>
using namespace std;
int main() {
int n[ 10 ]; // arreglo de 10 numeros.
for ( int i = 0; i < 10; i++ )
n[ i ] = 0; // valor cero
cout << "Indice" << "t" << "Valor" << endl;
for ( int j = 0; j < 10; j++ ) //imprime los elementos
cout << j << "t" << n[ j ] << endl;
return 0;
}
Inicializador de Arreglo
➔ Permite crear e inicializar un arreglo. Es una lista
de expresiones separadas por comas encerrada
entre llaves { };
➔ La longitud del arreglo se determina en base al
número de elementos en la lista.
Por ejemplo, la declaración:
int n[] = { 10, 20, 30, 40, 50 };
Crea un arreglo de cinco elementos.
El elemento n[0] se inicializa con 10 , n[1] se inicializa
con 20 , y así en lo sucesivo.
Ejemplo:
Inicializar y Listar.
#include <iostream>
using namespace std;
int main()
{
// Inicializar el arreglo n
int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };
cout << "Indice" << "t" << "Valor" << endl;
// imprime el valor de cada elemento del arreglo
for ( int i = 0; i < 10; i++ )
cout << i << "t" << n[ i ] << endl;
return 0; // indica que terminó correctamente
}
Cálculo de los valores a
guardar en un arreglo.
➔ El siguiente ejemplo crea un arreglo de 10
elementos y asigna a cada elemento uno de los
enteros pares del 2 al 20 ( 2 , 4 , 6 , ..., 20 ).
➔ Después, la aplicación muestra el arreglo en
formato tabular.
Arreglo con números
enteros pares del 2 al 20.
#include <iostream>
using namespace std;
int main()
{
int s[ 10 ]; // 10 elementos
cout << "Indice" << "t" << "Valor" << endl;
for ( int i = 0; i < 10; i++ ) // establece los valores
{
s[ i ] = 2 + 2 * i;
cout << i << "t" << s[ i ] << endl;
}
return 0; // indica que terminó correctamente
} // fin de main
Gráfico de Barras.
➔ Muchas aplicaciones presentan datos en forma
gráfica.
➔ Por ejemplo, con frecuencia los valores numéricos
se muestran como barras.
➔ En dicho gráfico, las barras más largas representan
valores numéricos más grandes.
➔ A los profesores les gusta examinar la distribución
de las calificaciones en un examen.
➔ Un profesor podría visualizar la distribución de las
calificaciones.
#include <iostream>
using namespace std;
int main() {
int n[6] = { 0, 3, 4, 7, 3, 1 };
cout << "Distribucion de Calificaciones:" << endl;
for ( int i = 0; i < 6; i++ )
{
cout << "Calificacion:" << i << "t";
// imprime barra de asteriscos
for ( int estrellas = 0; estrellas < n[ i ]; estrellas++ )
{
cout << '*';
}
cout << "n";
}
return 0; }
Frecuencias de un Dado.
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int frecuencia[]={0,0,0,0,0,0,0};
for (int tiro=1; tiro<=6000; tiro++) // tira el dado 6000 veces
frecuencia[1 + rand()%6]++;
cout << "CaratFrecuencia" << endl;
// imprime el valor de cada elemento
for ( int cara = 0; cara < 7; cara++ )
cout << cara <<"t"<< frecuencia[cara] << endl;
}
Arreglos para Analizar
Resultados de Encuesta.
➔ Se pidió a veinte estudiantes que califiquen la
calidad de la comida en la cafetería estudiantil, en
una escala del 1 al 10 (en donde 1 significa pésimo
y 10 significa excelente).
➔ Coloque las 40 respuestas en un arreglo entero y
sintetice los resultados de la encuesta.
// Resultado de Encuesta
#include <iostream>
using namespace std;
int main()
{
int respuestas[] = {1,2,6,4,8,5,9,7,8,9,1,6,3,8,6,9,3,8,2,7};
int frecuencia[] = {0,0,0,0,0,0,0,0,0,0,0}; //contadores
for (int contador=0; contador<20; contador++ )
frecuencia[respuestas[contador]]++;
cout << "NotatFrecuencia" << endl;
// imprime el valor de cada elemento
for (int nota=1;nota<=10;nota++)
cout << nota << "t" << frecuencia[nota] << endl;
return 0;
}
Arreglo de Bidimensional
➔ Es un arreglo con 2 índices, en donde la
información está ordenada en filas y columnas.
➔ Para identificar un elemento, debemos especificar
dos índices.
Inicializador de Arreglo
Bidimensional.
➔ Al igual que los arreglos unidimensionales, los
arreglos bidimensionales pueden inicializarse.
➔ Un arreglo bidimensional arreglo con dos filas y dos
columnas podría declararse e inicializarse así:
int arreglo[ ] [ ] = { { 1, 2 }, {3, 4} };

7.arreglos y vectores en c++

  • 1.
    Arreglos en C++ RamiroEstigarribia Canese
  • 2.
    ¿Qué es unArreglo? ➔ Es un grupo de variables que contienen valores, todos del mismo tipo. ➔ Los arreglos son entidades de longitud fija; conservan la misma longitud una vez creados. ➔ Para hacer referencia a un elemento específico en un arreglo, debemos especificar el nombre de la referencia al arreglo y el número de la posición del elemento en el arreglo. ➔ El número de la posición del elemento se conoce formalmente como el índice o subíndice del elemento.
  • 3.
    Partes de unArreglo.
  • 4.
    Partes de unArreglo. ➔ En el ejemplo: el nombre del arreglo es c. ➔ int c[ 12 ]; //c es un arreglo de 12 enteros ➔ La manera en que se hace referencia a los elementos es: c[ 0 ] , c[ 1 ] , c[ 2 ] , ..., c[ 11 ] . ➔ El valor de c[ 0 ] es -45 , el valor de c[ 1 ] es 6, el de c[ 2 ] es 0 y el de c[ 11 ] es 78. ➔ Para calcular la suma de los valores en los primeros tres elementos y almacenar el resultado en la variable suma , escribiríamos lo siguiente: suma = c[ 0 ] + c[ 1 ] + c[ 2 ];
  • 5.
    Creación de arreglos ➔Al igual que los demás objetos, los arreglos se deben ser declarados. ➔ Para crear un objeto arreglo, el programador especifica el tipo y el número de elementos. ➔ La siguiente declaración crea un arreglo, que contiene 7 elementos int , y almacena la referencia del arreglo en la variable Arreglo: int Arreglo [ 7 ]; // arreglo de 7 números enteros.
  • 6.
    Ejemplo: Listar Elementos. #include<iostream> using namespace std; int main() { int n[ 10 ]; // arreglo de 10 numeros. for ( int i = 0; i < 10; i++ ) n[ i ] = 0; // valor cero cout << "Indice" << "t" << "Valor" << endl; for ( int j = 0; j < 10; j++ ) //imprime los elementos cout << j << "t" << n[ j ] << endl; return 0; }
  • 7.
    Inicializador de Arreglo ➔Permite crear e inicializar un arreglo. Es una lista de expresiones separadas por comas encerrada entre llaves { }; ➔ La longitud del arreglo se determina en base al número de elementos en la lista. Por ejemplo, la declaración: int n[] = { 10, 20, 30, 40, 50 }; Crea un arreglo de cinco elementos. El elemento n[0] se inicializa con 10 , n[1] se inicializa con 20 , y así en lo sucesivo.
  • 8.
    Ejemplo: Inicializar y Listar. #include<iostream> using namespace std; int main() { // Inicializar el arreglo n int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 }; cout << "Indice" << "t" << "Valor" << endl; // imprime el valor de cada elemento del arreglo for ( int i = 0; i < 10; i++ ) cout << i << "t" << n[ i ] << endl; return 0; // indica que terminó correctamente }
  • 9.
    Cálculo de losvalores a guardar en un arreglo. ➔ El siguiente ejemplo crea un arreglo de 10 elementos y asigna a cada elemento uno de los enteros pares del 2 al 20 ( 2 , 4 , 6 , ..., 20 ). ➔ Después, la aplicación muestra el arreglo en formato tabular.
  • 10.
    Arreglo con números enterospares del 2 al 20. #include <iostream> using namespace std; int main() { int s[ 10 ]; // 10 elementos cout << "Indice" << "t" << "Valor" << endl; for ( int i = 0; i < 10; i++ ) // establece los valores { s[ i ] = 2 + 2 * i; cout << i << "t" << s[ i ] << endl; } return 0; // indica que terminó correctamente } // fin de main
  • 11.
    Gráfico de Barras. ➔Muchas aplicaciones presentan datos en forma gráfica. ➔ Por ejemplo, con frecuencia los valores numéricos se muestran como barras. ➔ En dicho gráfico, las barras más largas representan valores numéricos más grandes. ➔ A los profesores les gusta examinar la distribución de las calificaciones en un examen. ➔ Un profesor podría visualizar la distribución de las calificaciones.
  • 12.
    #include <iostream> using namespacestd; int main() { int n[6] = { 0, 3, 4, 7, 3, 1 }; cout << "Distribucion de Calificaciones:" << endl; for ( int i = 0; i < 6; i++ ) { cout << "Calificacion:" << i << "t"; // imprime barra de asteriscos for ( int estrellas = 0; estrellas < n[ i ]; estrellas++ ) { cout << '*'; } cout << "n"; } return 0; }
  • 13.
    Frecuencias de unDado. #include <iostream> #include <cstdlib> using namespace std; int main() { int frecuencia[]={0,0,0,0,0,0,0}; for (int tiro=1; tiro<=6000; tiro++) // tira el dado 6000 veces frecuencia[1 + rand()%6]++; cout << "CaratFrecuencia" << endl; // imprime el valor de cada elemento for ( int cara = 0; cara < 7; cara++ ) cout << cara <<"t"<< frecuencia[cara] << endl; }
  • 14.
    Arreglos para Analizar Resultadosde Encuesta. ➔ Se pidió a veinte estudiantes que califiquen la calidad de la comida en la cafetería estudiantil, en una escala del 1 al 10 (en donde 1 significa pésimo y 10 significa excelente). ➔ Coloque las 40 respuestas en un arreglo entero y sintetice los resultados de la encuesta.
  • 15.
    // Resultado deEncuesta #include <iostream> using namespace std; int main() { int respuestas[] = {1,2,6,4,8,5,9,7,8,9,1,6,3,8,6,9,3,8,2,7}; int frecuencia[] = {0,0,0,0,0,0,0,0,0,0,0}; //contadores for (int contador=0; contador<20; contador++ ) frecuencia[respuestas[contador]]++; cout << "NotatFrecuencia" << endl; // imprime el valor de cada elemento for (int nota=1;nota<=10;nota++) cout << nota << "t" << frecuencia[nota] << endl; return 0; }
  • 16.
    Arreglo de Bidimensional ➔Es un arreglo con 2 índices, en donde la información está ordenada en filas y columnas. ➔ Para identificar un elemento, debemos especificar dos índices.
  • 17.
    Inicializador de Arreglo Bidimensional. ➔Al igual que los arreglos unidimensionales, los arreglos bidimensionales pueden inicializarse. ➔ Un arreglo bidimensional arreglo con dos filas y dos columnas podría declararse e inicializarse así: int arreglo[ ] [ ] = { { 1, 2 }, {3, 4} };