Arreglos de dos dimensiones en C++ /COMP 242

Download Report

Transcript Arreglos de dos dimensiones en C++ /COMP 242

Arreglos en C++
(una y dos dimensiones)
COMP 242
Prof. Carlos Rodríguez
Sánchez
Inicialización de un Arreglo durante
la declaración
• Ejemplo:
double sales[5] = {12.25, 32.50, 16.90, 23, 45.68};
Causa que en memoria se defina un arreglo y su contenido
como sigue:
12.25
0
32.50
1
16.90
2
23.00
45.68
3
4
Inicialización de un Arreglo durante
la declaración
• Alternativa 2
double sales[ ] = {12.25, 32.50, 16.90, 23, 45.68};
No es necesario especificar el tamaño del arreglo
mientras se inicializa.
Inicialización Parcial de un Arreglo
durante la declaración
• Ejemplo 1:
int list[10] = {0};
Declara un arreglo llamado list de diez posiciones
e inicializa cada posición con 0
• Ejemplo 2:
int list[10] = {8, 5, 12};
Declara un arreglo llamado list de diez posiciones
e inicializa la posición 0 con el valor de 8, la
posición 1 con el valor 5, la posición 2 con el
valor de 12, y las restantes posiciones con 0.
Arreglos de dos dimensiones
• Colección de un número fijo de
componentes organizados en filas y
columnas
• Formato:
dataType arrayName[intExp1] [intExp2];
donde intExp1 y intExp2 son expresiones
constantes que especifican el número de
las filas y las columnas del arreglo.
Arreglos de dos dimensiones
• Ejemplo: Definir arreglo de nombre
inStock donde se almacenen el total de
automóbiles clasificados por colores
• double inStock[6][5];
– Declara un arreglo de 6 filas por 5 columnas
Arreglos de dos dimensiones
•
Ejemplo:
inStock
red
GM
Ford
Toyota
BMW
Nissan
Volvo
brown
black
white
gray
Arreglos de dos dimensiones /
Inicialización durante la declaración
• Ejemplo:
int inStock[6] [5] = {{10, 7, 12, 10, 4},
{18, 11, 15, 17, 10},
{12, 10, 9, 5, 12},
{16, 6, 13, 8, 3},
{10, 7, 12, 6, 4},
{9, 4, 7, 12, 11}};
Arreglos de dos dimensiones
• Captura de datos
for(int row = 0; row <6; row ++)
for (int col = 0; col < 5; col ++)
cin >> inStock[row][col];
Arreglos de dos dimensiones
• Suma por filas
– Loop for
for (int row = 0; row < 6; row ++)
{
sum = 0;
for (int col = 0; col < 5; col ++)
sum = sum + inStock[row][col];
cout << “Sum of row “ << row + 1 << “=“ << sum <<
endl;
}
Arreglos de dos dimensiones
• Suma por columnas
for (int col = 0; col < 5; col ++)
{
sum = 0;
for (int row = 0; row < 6; row ++)
sum = sum + inStock[row][col];
cout << “Sum of column “ << col +1 <<“=“ <<
sum << endl;
}
Arreglos de dos dimensiones
• Mostrar el contenido de un arreglo:
for (int row = 0; row < 6; row ++)
{
for (int col = 0; col < 5; col ++)
cout << inStock[row][col]; << “ “;
cout << endl;
}
#include<iostream>
using namespace std;
int main()
{
int sum;
int inStock[6][5];
// Entrada de datos a la matriz inStock
cout << "Entre los datos a la matriz inStock, separados por un espacio" << endl;
for(int row = 0; row <6; row ++)
for (int col = 0; col < 5; col ++)
cin >> inStock[row][col];
// Suma de las filas de la matriz inStock
for (int row = 0; row < 6; row ++)
{
sum = 0;
for (int col = 0; col < 5; col ++)
sum = sum + inStock[row][col];
cout << "Sum of row " << row + 1 << "=" << sum << endl;
}
//Suma de la columnas de la matriz inStock
for (int col = 0; col < 5; col ++)
{
sum = 0;
for (int row = 0; row < 6; row ++)
sum = sum + inStock[row][col];
cout << "Sum of column " << col +1 <<"=" << sum << endl;
}
// Mostrar el contenido de la matriz inStock
for (int row = 0; row < 6; row ++)
{
for (int col = 0; col < 5; col ++)
cout << inStock[row][col] << " ";
cout << endl;
}
system("pause");
return 0;
}
Resultados: