Sintaxis para el Paso de Parámetros de Tipo Matriz

Declaración de la Función:

void nombreDeFuncion(tipo nombreMatriz[][numeroDeColumnas], int numeroDeFilas, int numeroDeColumnas);

Llamada a la Función:

nombreDeFuncion(nombreMatriz, numeroDeFilas, numeroDeColumnas);

Nota: El número de columnas debe ser especificado en la declaración de la función.

Ejemplo Práctico

El siguiente ejemplo muestra cómo pasar una matriz a una función para elevar al cuadrado cada uno de sus elementos y luego mostrar la matriz resultante.

Código:

// Paso de parámetros tipo matriz
// Elevar al cuadrado todos los elementos de una matriz

#include <iostream>
#include <stdlib.h>

using namespace std;

// Prototipos de funciones
void mostrarMatriz(int m[][3], int nFilas, int nColumnas);
void calcularCuadrado(int m[][3], int nFilas, int nColumnas);

int main() {
    const int nFilas = 2; // Número de filas de la matriz
    const int nColumnas = 3; // Número de columnas de la matriz

    // Inicialización de la matriz
    int matriz[nFilas][nColumnas] = {{1, 2, 3}, {4, 5, 6}};

    // Mostrar la matriz original
    cout << "\nMostrando matriz original: \n";
    mostrarMatriz(matriz, nFilas, nColumnas);

    // Elevar al cuadrado cada elemento de la matriz
    cout << "\nMostrando matriz elevada al cuadrado: \n";
    calcularCuadrado(matriz, nFilas, nColumnas);

    // Mostrar la matriz después de elevar al cuadrado
    mostrarMatriz(matriz, nFilas, nColumnas);

    cout << "\n";
    system("pause"); // Pausar para que el usuario pueda ver la salida
    return 0;
}

// Función para mostrar la matriz
void mostrarMatriz(int m[][3], int nFilas, int nColumnas) {
    for(int i = 0; i < nFilas; i++) {
        for(int j = 0; j < nColumnas; j++) {
            cout << m[i][j] << " "; // Imprimir cada elemento
        }
        cout << "\n"; // Imprimir una nueva línea al final de cada fila
    }
}

// Función para elevar al cuadrado cada elemento de la matriz
void calcularCuadrado(int m[][3], int nFilas, int nColumnas) {
    for(int i = 0; i < nFilas; i++) {
        for(int j = 0; j < nColumnas; j++) {
            m[i][j] *= m[i][j]; // Elevar al cuadrado el valor en la posición (i, j)
        }
    }
}

Explicación del Código

  1. Declaración de Funciones:

    • void mostrarMatriz(int m[][3], int nFilas, int nColumnas);: Muestra los elementos de la matriz en la consola. Se debe especificar el número de columnas (3 en este caso).
    • void calcularCuadrado(int m[][3], int nFilas, int nColumnas);: Eleva al cuadrado cada elemento de la matriz.
  2. Función main:

    • Se declaran y inicializan una matriz matriz de tamaño nFilas x nColumnas (2x3) con valores {1, 2, 3} y {4, 5, 6}.
    • Se llama a mostrarMatriz para imprimir la matriz original.
    • Luego, se llama a calcularCuadrado para modificar la matriz elevando cada elemento al cuadrado.
    • Finalmente, se llama a mostrarMatriz nuevamente para imprimir la matriz después de la modificación.
  3. Función mostrarMatriz:

    • Utiliza un bucle for anidado para recorrer e imprimir cada elemento de la matriz. Imprime una nueva línea al final de cada fila.
  4. Función calcularCuadrado:

    • Utiliza un bucle for anidado para recorrer y elevar al cuadrado cada elemento de la matriz. El valor en la posición (i, j) se modifica directamente.

Resultados Esperados

Al ejecutar el programa, la matriz original {1, 2, 3} y {4, 5, 6} se transforma en {1, 4, 9} y {16, 25, 36} después de la llamada a calcularCuadrado, y se imprime en la consola.

Salida esperada:

Mostrando matriz original:
1 2 3 
4 5 6 

Mostrando matriz elevada al cuadrado:
1 4 9 
16 25 36

Consideraciones

  • Número de Columnas: Al pasar una matriz a una función, el número de columnas debe ser especificado en la declaración de la función. Esto es necesario para que la función pueda calcular correctamente las posiciones de los elementos de la matriz.
  • Modificación Directa: Los cambios hechos en la función calcularCuadrado afectan directamente a la matriz original en main.