Pasando una matriz a una función C ++

Passing An Array Function C



Una matriz es un grupo de elementos del mismo tipo de datos. Muchas funciones se realizan en matrices, ya sea en el programa principal o fuera de él, en las funciones. En C ++, en el caso de funciones, necesitamos pasarlas. Esto se hace a través de parámetros como argumentos. Estos argumentos pueden ser de diferentes formas, ya sea en matrices importantes o mediante la matriz de punteros. En este tutorial, cubriremos algunos aspectos importantes de la transferencia de matrices utilizando diferentes parámetros de las funciones.

Sintaxis

[Regresoescribe] [nombre defunción] (datosescribenombre de matriz[formaciónTalla])

{

funcióncuerpo

}

Ejemplo 1

Considere un ejemplo en el que tenemos que imprimir las calificaciones de los estudiantes en el programa C ++. Esta impresión se tomará en una función separada en lugar de en el programa principal. Por el contrario, tomaremos entradas en el programa principal y transferiremos estos valores a la función como parámetro. Considere la función. En su parámetro, hay una variable de tipo de datos de matriz que aceptará los valores de una matriz. La matriz completa se declara aquí. Las marcas se mostrarán con la ayuda del bucle for. Al igual que en las matrices, necesitamos bucles para obtener impresiones de ellas.









Moviéndonos hacia la función principal, declaramos una matriz con su tamaño y valores en ella. Como tenemos que llamar a la función. Entonces, el método es que escribimos el nombre de la función con el nombre de la matriz en el parámetro como argumento. No hemos definido el tamaño de la matriz.



Monitor(marcas);

El argumento en el parámetro implica la dirección de memoria de la matriz. En el parámetro del encabezado de la función, int m [7] se convierte en int * m. Esto incluye la misma dirección que la matriz original. Cuando usamos m [5] en el cuerpo de la función, vamos a manipular la matriz original.





Pantalla vacía(int m[7] )

En el sistema operativo Linux, obtener resultados a través de una terminal requiere la instalación de algunos requisitos previos. Necesita un compilador para compilar y luego ejecutar el código en la terminal del símbolo del sistema. G ++ se utiliza en C ++ para la compilación.



$g ++ -ocode3 code3.c

$ ./código3

Donde –o se usa para almacenar la salida del archivo de origen en el archivo de salida.

En la salida, puede observar que todos los números iniciados en la matriz en la función principal se pasan y se muestran a través de la función de visualización.

Ejemplo 2

Otro ejemplo relacionado con el paso de una matriz a través de un parámetro es pasar una matriz multidimensional a la función. Aquí se utiliza una matriz bidimensional (2d). En la función principal, necesitamos inicializar una matriz.

Int matriz[hilera][columna]

La inicialización de matriz 2d incluye fila y columna. Y su orden se mantendrá durante todo el programa. La matriz 2d se inicializa con dos números entre paréntesis. Como hemos descrito 2 columnas en la inicialización.

Monitor(en uno);

Solo usaremos el nombre de la matriz en el parámetro como argumento.

Ahora veremos el funcionamiento de la función de visualización. Cuando se inicia la función, se necesita una variable de matriz para aceptar una matriz pasada por la llamada a la función a través del programa principal.

Pantalla vacía(int n[][2] )

Es obligatorio mencionar el número de columnas. En comparación, no es esencial en el caso de filas. Es por eso que hemos dejado los corchetes de fila vacíos aquí, ya que usamos for loop para mostrar los resultados. Pero en el caso de una matriz bidimensional, usamos un bucle for anidado. Contiene dos declaraciones for con 2 variables en ellas.

Podemos ver la salida utilizando el mismo compilador. Puede ver los resultados de que cada valor se muestra por separado con la fila y el número de columna.

Ejemplo 3

Este ejemplo es un poco diferente de los anteriores. En este ejemplo, mencionamos el tamaño de la matriz en el parámetro de la llamada a la función. Y en la declaración de la función, también se introduce una variable para aceptar el tamaño de una matriz.

A partir del programa principal, se inicializa una matriz con los valores.

avg = getAverage(balance,5);

El resultado se almacenará en la variable avg. En lugar de pasar solo el nombre de la matriz, el tamaño de la matriz también se agrega al parámetro.

El parámetro también contiene la variable de tipo de matriz y un tipo de datos entero para recibir el tamaño de la matriz. El tipo del programa principal es int porque recibirá un valor entero de la función. De lo contrario, es nulo en otros casos.

Ahora veremos la salida. Este valor es visible a través de la imagen que se obtiene de la función.

Ejemplo 4

Este ejemplo se relaciona con la determinación del número máximo en la matriz, de hecho, a partir de dos matrices. Aquí inicializamos dos matrices en el programa principal. Ambas matrices se pasan por separado a la función en llamadas de función separadas

printMax(arr1);

printMax(arr2);

donde printMax es el nombre de la función y arr es la matriz. El resultado no regresará de la función y se muestra allí. For loop calculará el número máximo en ambas matrices. La sentencia if se usa dentro del ciclo for. El encabezado de la función es:

void printMax(int arr[5])

Como ambas matrices contienen valores diferentes, ambos resultados serán diferentes.

Ejemplo 5

Este ejemplo es el resumen de todos los tipos de matrices que pasan por los parámetros. Estos pueden ser arreglos de puntero, sin tamaño o de tamaño. Los consideraremos uno por uno.

En el programa principal, cada función se declara primero. Puede señalar la diferencia en su declaración.

Int sum1(int tmp[5]);

Int sum2(int tmp[]);

Int sum3(En t*tmp);

Estas tres matrices muestran que las matrices se pueden pasar con estos parámetros en la función.

Después de la inicialización de la función, tenemos el programa principal en el que se declara la matriz. A diferencia del ejemplo anterior, se inicializa una matriz en lugar de dos, pero se pasa de tres formas diferentes. Ahora veremos las llamadas a funciones realizadas aquí.

Total = sum1(Ventas);

Total = suma2(Ventas);

Total = sume3(Ventas);

La salida se muestra en la función principal, por lo que se declara una variable para aceptar el valor devuelto por la función. De las tres llamadas a funciones, puede ver que aquí los parámetros son los mismos. Cada matriz contiene solo el nombre de una matriz. Pero los parámetros de la función que acepta la matriz son diferentes.

El cuerpo interno de las tres funciones es el mismo, ya que la suma de todos los números se calcula a partir del uso del bucle For. La metodología y los valores de la matriz son los mismos; solo hay discriminación entre los parámetros de las funciones. Por lo tanto, está demostrado que podemos usar diferentes métodos para aceptar una matriz o realizar la misma funcionalidad, y la respuesta es la misma. Podemos confirmarlo comprobando la salida. Usando el mismo procedimiento de compilación, obtendremos el resultado que se muestra en la imagen adjunta a continuación.

Puede ver que la respuesta es la misma para las tres funciones utilizadas.

Conclusión

En este artículo, el usuario conocerá el método de paso de una matriz en parámetros. Las matrices se pueden manejar en muchos casos cuando se trata de devolver el valor o pasarlo en argumentos.