lunes, 8 de junio de 2026

Crear un programa que lea e imprima los elementos de una matriz cuadrada. Almacene los elementos de sus diagonales en dos vectores, los sume y genere un vector resultante en C++

Código del ejercicio:

#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");
    int n;
    cout << "Ingrese la dimensión de la matriz: "; cin >> n;
    float M[n][n], D1[n], D2[n], SUMA[n];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << "Ingrese valor [" << i << "][" << j << "]: "; cin >> M[i][j];
        }
    }
    cout << endl << "Matriz:" << endl;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i == j)
                D1[i] = M[i][j];
            if (j == n - i - 1)
                D2[i] = M[i][j];
            cout << M[i][j] << "\t";
        }
        cout << endl;
    }
    cout << endl
         << "Diagonal principal:" << endl;
    for (int i = 0; i < n; i++)
        cout << D1[i] << " ";
    cout << endl
         << "Diagonal secundaria:" << endl;
    for (int i = 0; i < n; i++)
        cout << D2[i] << " ";
    cout << endl
         << "La suma de las diagonales es:" << endl;
    for (int i = 0; i < n; i++)
    {
        SUMA[i] = D1[i] + D2[i];
        cout << SUMA[i] << " ";
    }
    return 0;
}

Definición de los códigos del ejercicio:

#include <iostream> --> significa flujo de entrada-salida estándar. Este archivo de encabezado contiene definiciones de objetos como cin, cout, cerr, etc.
#include <clocale> --> especificador de configuración regional.
using namespace std; --> un espacio de nombres es una colección de nombres o identificadores relacionados (funciones, clases, variables) que ayudan a separar estos identificadores de identificadores similares en otros espacios de nombres o en el espacio de nombres global. Los identificadores de la biblioteca estándar de C++ se definen en un espacio de nombres llamado std.
int --> dato entero de 32 bits.
main() --> la función main() es el punto de entrada de cualquier programa C++. Es el punto en el que se inicia la ejecución del programa. Cuando se ejecuta un programa C++, el control de ejecución va directamente a la función main(). Cada programa C++ tiene una función main().
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
cout<<""; --> se utiliza para mostrar la salida al dispositivo de salida estándar, es decir, monitor.
cin>> --> se utiliza para aceptar la entrada del dispositivo de entrada estándar, es decir, el teclado.
float --> convierte un número entero en un número de punto flotante, tiene un tamaño de 32 bits, es usado comúnmente en números con 6 o menos cifras decimales.
for --> el ciclo for recorre un bloque de código varias veces.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
endl --> la función endl acaba la línea y pasa a la siguiente.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
\t --> significa que hay un espacio (equivale a presionar "tab" en el teclado).

Explicación del Código:

Este programa permite leer una matriz cuadrada, mostrarla en pantalla, guardar los elementos de la diagonal principal y secundaria en dos vectores, sumar esos valores y generar un vector resultado.

¿Qué hace el programa?

  1. El usuario ingresa el tamaño de la matriz.
  2. Se ingresan todos los valores de la matriz.
  3. El programa imprime la matriz.
  4. Obtiene la diagonal principal.
  5. Obtiene la diagonal secundaria.
  6. Suma ambas diagonales.
  7. Muestra el vector resultante.

Explicación simple del código

Código Función
#include <iostream> Permite utilizar cin y cout para entrada y salida de datos.
#include <clocale> Permite usar caracteres especiales en español.
using namespace std; Evita escribir std:: antes de cada instrucción.
int n; Guarda el tamaño de la matriz cuadrada.
float M[n][n] Declara la matriz cuadrada.
float D1[n] Vector que almacena la diagonal principal.
float D2[n] Vector que almacena la diagonal secundaria.
float SUMA[n] Vector que guarda la suma de ambas diagonales.
for Se utiliza para repetir instrucciones.
if(i == j) Detecta los elementos de la diagonal principal.
if(j == n - i - 1) Detecta los elementos de la diagonal secundaria.
SUMA[i] = D1[i] + D2[i] Suma los elementos de ambas diagonales.
return 0; Finaliza correctamente el programa.

Ejemplo de funcionamiento

Matriz:

1 2 3
4 5 6
7 8 9

Diagonal principal: 1 5 9

Diagonal secundaria: 3 5 7

Suma de diagonales: 4 10 16

Código del programa

#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");

    int n;

    cout << "Ingrese la dimensión de la matriz: ";
    cin >> n;

    float M[n][n], D1[n], D2[n], SUMA[n];

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << "Ingrese valor [" << i << "][" << j << "]: ";  
            cin >> M[i][j];
        }
    }

    cout << endl << "Matriz:" << endl;

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i == j)
                D1[i] = M[i][j];

            if (j == n - i - 1)
                D2[i] = M[i][j];

            cout << M[i][j] << "\t";
        }

        cout << endl;
    }

    cout << endl << "Diagonal principal:" << endl;

    for (int i = 0; i < n; i++)
        cout << D1[i] << " ";

    cout << endl << "Diagonal secundaria:" << endl;

    for (int i = 0; i < n; i++)
        cout << D2[i] << " ";

    cout << endl << "La suma de las diagonales es:" << endl;

    for (int i = 0; i < n; i++)
    {
        SUMA[i] = D1[i] + D2[i];
        cout << SUMA[i] << " ";
    }

    return 0;
}

No hay comentarios.:

Publicar un comentario

Mostrar los n primeros números de la siguiente serie: 1,4,9,16,25,36,... en C++

Código del ejercicio: Con ciclo while #include <iostream> using namespace std ; int main () {     int num = 1 , c = ...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️