Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Boris Morales en 21 Octubre 2020, 17:59 PM

Título: Amigos como podría pasar el siguiente código a funciones? ya me confundí un poco
Publicado por: Boris Morales en 21 Octubre 2020, 17:59 PM

#include <stdio.h>

#include <stdlib.h>

int main()

{

     int mat[50][50];

     int n, i, j, esIdentidad = 1;

     printf("Tamanio: ");

     scanf("%d", &n);

     for(i = 0; i < n; i++)

          for(j = 0; j < n; j++)

          {

               printf( "Matriz[%d][%d]: ", i, j );

               scanf( "%d", &mat[i][j] );

               if( (mat[i][j] != 0 && i != j) ||

               (mat[i][j] != 1 && i == j))

                    esIdentidad = 0;

          }

     for(i = 0; i < n; i++)

     {

          for(j = 0; j < n; j++)

               printf("%d ", mat[i][j]);

          printf("\n");

     }

     if(esIdentidad)

          printf( "Es matriz identidad.\n");

     else

          printf( "No es matriz identidad.\n");



     system("pause");

     return 0;

}
Título: Re: Amigos como podría pasar el siguiente código a funciones? ya me confundí un poco
Publicado por: K-YreX en 21 Octubre 2020, 18:33 PM
Al final las funciones las puedes hacer como tú quieras pero siempre hay mejores y peores diseños.
La gracia de una función es encapsular un fragmento de código autónomo que puede ser reutilizado.

Una forma de hacerlo es crear un main() que sea fácil de leer. Que con un simple vistazo sepas lo que hace pero sin entrar en detalles. En tu caso podría ser algo como lo siguiente (de forma esquemática):

declarar matriz
pedir tamaño
inicializar matriz
mostrar matriz
comprobar si es matriz identidad


Ahora hay que analizar cada paso:
Título: Re: Amigos como podría pasar el siguiente código a funciones? ya me confundí un poco
Publicado por: Boris Morales en 21 Octubre 2020, 19:05 PM
Ohhhhh  :o

creo que ya vi por donde entonces establecer esos parámetros  ;D

Muchas gracias por la explicación, y si o voy a trabajar así  ::)