Ejemplos Prácticos de Arreglos y Matrices en C++
Clasificado en Matemáticas
Escrito el en español con un tamaño de 5,8 KB
A continuación, se presentan diversos ejemplos de código en C++ que ilustran el uso de arreglos (vectores) y matrices. Cada ejemplo incluye una breve descripción del problema resuelto y el código fuente correspondiente.
1. Arreglo de Enteros: Encontrar el Mayor y el Menor
Este programa declara un arreglo de 10 elementos llamado enteros
, inicializado con valores predefinidos. Luego, utiliza un ciclo for
para recorrer el arreglo y determinar el elemento mayor y menor. Finalmente, imprime los resultados.
#include <iostream>
#include <limits>
int main() {
int enteros[10] = {5, -4, 9, 8, 7, -6, 2, 1, -3, 0};
int may = enteros[0], men = enteros[0];
for (int i = 1; i < 10; i++) {
if (enteros[i] > may) may = enteros[i];
if (enteros[i] < men) men = enteros[i];
}
std::cout << "El número mayor del arreglo es: " << may << std::endl;
std::cout << "El número menor del arreglo es: " << men << std::endl;
return 0;
}
2. Arreglo de Cadenas: Captura y Despliegue de Nombres
Este programa declara un arreglo de 6 elementos llamado Nombres
. Utiliza un ciclo for
para capturar cadenas de caracteres ingresadas por el usuario mediante cin.getline()
y las asigna a cada elemento del arreglo. Finalmente, utiliza un ciclo while
para mostrar el contenido de cada elemento.
#include <iostream>
#include <string>
int main() {
std::string Nombres[6];
for(int i = 0; i < 6; i++) {
std::cout << "Introduce nombre y apellidos " << i << ": ";
std::getline(std::cin, Nombres[i]);
}
int i = 0;
while (i < 6 ){
std::cout << "Nombres[" << i << "]= " << Nombres[i] << std::endl;
i++;
}
return 0;
}
3. Arreglo de Enteros: Inicialización Aleatoria y Despliegue
Este ejemplo utiliza la cabecera cstdlib
para generar números aleatorios. El programa declara un arreglo de 10 elementos llamado Valores
. Utiliza la función rand()
dentro de un ciclo for
para cargar cada elemento del arreglo con un valor aleatorio. Finalmente, muestra el contenido del arreglo utilizando un ciclo do-while
.
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
std::srand(std::time(0)); // Inicializa la semilla del generador de números aleatorios
int Valores[10];
for(int i = 0; i < 10; i++)
Valores[i] = std::rand();
int i = 0;
do {
std::cout << "Valores[" << i << "]= " << Valores[i] << std::endl;
i++;
} while(i < 10);
return 0;
}
4. Matriz de Enteros: Suma de Filas
Este programa lee una matriz de enteros de 5 filas y 4 columnas (definidas por constantes) y posteriormente calcula la suma de los elementos de cada fila.
#include <iostream>
#define FILAS 5
#define COLUMNAS 4
int main() {
int matriz[FILAS][COLUMNAS];
int suma;
// Lectura de la matriz
for(int i = 0; i < FILAS; i++) {
for(int j = 0; j < COLUMNAS; j++) {
std::cout << "Dame el elemento de la fila " << i << " y columna " << j << ": ";
std::cin >> matriz[i][j];
}
}
// Cálculo y despliegue de la suma de cada fila
for(int i = 0; i < FILAS; i++) {
suma = 0;
for(int j = 0; j < COLUMNAS; j++) {
suma += matriz[i][j];
std::cout << matriz[i][j] << " ";
}
std::cout << "La suma es: " << suma << std::endl;
}
return 0;
}
5. Matriz de Enteros: Suma de la Diagonal Principal
El programa declara y carga en forma aleatoria una matriz de 5x5 (con valores de 10 a 99) y suma los elementos de la diagonal principal, imprimiendo el resultado.
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
int Matriz[5][5], suma = 0;
std::srand(std::time(0));
// Carga aleatoria de la matriz
for(int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
Matriz[i][j] = 10 + std::rand() % 90;
// Cálculo y despliegue de la suma de la diagonal principal
for(int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
std::cout << Matriz[i][j] << " ";
if (i == j) suma += Matriz[i][j];
}
std::cout << std::endl;
}
std::cout << "La suma de los elementos de la diagonal principal es: " << suma << std::endl;
return 0;
}
6. Matriz de Enteros: Producto de la Diagonal Invertida
El programa declara y carga en forma aleatoria una matriz de 6x6 y obtiene el producto de la diagonal invertida, imprimiendo el resultado.
#include <iostream>
#include <cstdlib>
#include <ctime>
int main() {
int Matriz[6][6];
long producto = 1;
std::srand(std::time(0));
// Carga aleatoria de la matriz
for(int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++)
Matriz[i][j] = 10 + std::rand() % 90;
// Cálculo y despliegue del producto de la diagonal invertida
for(int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
std::cout << Matriz[i][j] << " ";
if ((i + j) == 5) producto *= Matriz[i][j];
}
std::cout << std::endl;
}
std::cout << "El producto de los elementos de la diagonal invertida es: " << producto << std::endl;
return 0;
}