• Miércoles 6 de Noviembre de 2024, 02:24

Autor Tema:  Re: MATRIZ MÁGICA? CÓMO HACERLA!!  (Leído 11065 veces)

PIP

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: MATRIZ MÁGICA? CÓMO HACERLA!!
« en: Viernes 28 de Febrero de 2003, 23:35 »
0
Soy nuevo en esto de C++ y hasta el momento hemos estado trabajando con clases, arrays y matrices.

En fin, a lo que voy, cómo se hace para comprobar si una matriz es mágica (menos broma:P) Esto es, la suma de cada una de sus filas tiene que ser la misma; la suma de sus columnas tiene que dar el mismo resultado y la diagonal principal y la secundaria tienen que dar el mismo resultado. Espero haberme explicado bien. Si alguien es tan amable de intentar escribirme el código teniendo en cuenta que tengo una clase cmatriz me ayudaría muchísimo.

Un saludo a todos:))

Void

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: MATRIZ MÁGICA? CÓMO HACERLA!!
« Respuesta #1 en: Jueves 6 de Marzo de 2003, 20:17 »
0
A ver tronko, si no he entendido mal necesitas un programa ke kompruebe si una matriz es magika (sin kaxondeos...) o no.... No tienes ke krearla?? La dimensión de la matriz es fija o variable?? en kaso de ser fija..kual es??  Es ke no he entendido muy bien en ke konsiste el programita de marras...
Las filas deben sumar lo mismo entre ellas....las kolumnas tb...pero deben sumar lo mismo filas y kolumnas?? Y por último y ya no te pregunto mas....Puedes exponer la klase de la ke partimos??
                           SALUD!!
No somos Merkancía....

José D

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
MATRIZ MÁGICA? CÓMO HACERLA!!
« Respuesta #2 en: Sábado 8 de Marzo de 2003, 03:07 »
0
Nuevamente llegando tarde.... :question:  hhuuummmm.....  aunque tal vez no tanto, no sé.

Pero igual aquí te va un ejemplo:

El siguiente código detecta si una matriz, en este caso de 3x3 es un cuadraro mágico.  Se dice que es un cuadrado mágico cuando la sumatoria de cada una de las filas y la sumatoria de cada una de las colummnas dan el mismo valor.  Es decir, la diagonal principal y la diagonal secundaria de la matriz.

DP: Diagonal Principal
DS: Diagonal Secundaria
 
Código: Text
  1.  
  2. #include <stdio.h>
  3. #include <conio.h>
  4.  
  5. void main(void)
  6. {
  7.    int MAT[3][3];
  8.    int FILA[3];
  9.    int COL[3];
  10.    int DP, DS, i, j;
  11.    DP=DS=0;
  12.    for (i=1; i<=3; i++)
  13.        FILA[i]=COL[i]=0;
  14.    clrscr();
  15.    printf("Ingrese los elementos de la matriz: n");
  16.    for (i=1; i<=3; i++)
  17.        for (j=1; j<=3; j++)
  18.         {
  19.             printf("Elemento %d,%d=",i,j);
  20.             scanf("%d",&MAT[i][j]);
  21.             if (i==j)
  22.                DP=DP+MAT[i][j];
  23.                FILA[i]=FILA[i+MAT[i][j];
  24.                COL[j]=COL[j]+MAT[i][j];
  25.         }
  26.         DS=MAT[1][3]+MAT[2][2]+MAT[3][1];
  27.         if ((DP==DS)&&(PP==FILA[i]))&&(FILA[1]==FILA[2])&&(FILA[2]==FILA[3])
  28.             printf("La Matriz es un Cuadrado Mágico");
  29.             else
  30.                    printf("La Matriz no es un Cuadrado Mágico");
  31.          getch();
  32. }
  33.  
  34.  
Algún error que por ahí esté o algún detalle que falte, te toca a ti acomodarlo, pero ese es el código.  Por que para serte sincero, no me acuerdo casi nada de esto, hace ya un buen tiempo que no he vuelto a tocar el C, al C++ no hay casi nada de diferencia.
Saludos