Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/02/2010, 16:31
Avatar de fradve
fradve
 
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Ayuda con Matrices C++

El codigo que postea caf2021 parece estar bien los ingresos, pero le faltan los procesos, aquí les coloco solución para el problema de ambos. El programa está compilado en turbo c++ 3.0.

Código C++:
Ver original
  1. #include<iostream.h>
  2. #include<conio.h>
  3. #include<stdio.h>
  4.  
  5. int matrizA[4][4],matrizB[4][4],matrizR[4][4];
  6.  
  7. void presentar(int fila,int columna,int matriz[4][4])
  8. {
  9.   int i=0,j=0;
  10.  
  11.   for(i=0;i<4;i++)
  12.   {
  13.     for(j=0;j<4;j++)
  14.     {
  15.       gotoxy(columna+j*4,fila+i);
  16.       cout << matriz[i][j];
  17.     }
  18.   }
  19. }
  20.  
  21. void sumar()
  22. {
  23.   int i=0,j=0;
  24.  
  25.   for(i=0;i<4;i++)
  26.   {
  27.     for(j=0;j<4;j++)
  28.      matrizR[i][j]=matrizA[i][j]+matrizB[i][j];
  29.   }
  30.   gotoxy(5,1); cout << "MATRIZ A";
  31.   gotoxy(35,1); cout << "MATRIZ B";
  32.   presentar(3,5,matrizA);
  33.   presentar(3,32,matrizB);
  34.   cout << "\nLA SUMA DE A + B es:";
  35.   presentar(12,30,matrizR);
  36. }
  37.  
  38. void multiplicar()
  39. {
  40.   int i=0,k=0,l=0;
  41.   int acum=0;
  42.  
  43.   for(i=0;i<4;i++)
  44.   {
  45.     for(k=0;k<4;k++)
  46.     {
  47.       for(l=0;l<4;l++)
  48.       {
  49.     acum=acum+matrizA[i][l]*matrizB[l][k];
  50.       }
  51.       matrizR[i][k]=acum;
  52.       acum=0;
  53.     }
  54.   }
  55.   gotoxy(5,1); cout << "MATRIZ A";
  56.   gotoxy(35,1); cout << "MATRIZ B";
  57.   presentar(3,5,matrizA);
  58.   presentar(3,32,matrizB);
  59.   cout << "\nLA MULTIPLICACION DE A * B es:";
  60.   presentar(12,30,matrizR);
  61. }
  62.  
  63. void ingresar()
  64. {
  65.   int i=0,j=0;
  66.  
  67.   cout << "INGRESO DE MATRIZ A           INGRESO MATRIZ B";
  68.   for(i=0;i<4;i++)
  69.   {
  70.     for(j=0;j<4;j++)
  71.     {
  72.       gotoxy(5+j*4,3+i);
  73.       cin >> matrizA[i][j];
  74.     }
  75.   }
  76.  
  77.   for(i=0;i<4;i++)
  78.   {
  79.     for(j=0;j<4;j++)
  80.     {
  81.       gotoxy(32+j*4,3+i);
  82.       cin >> matrizB[i][j];
  83.     }
  84.   }
  85. }
  86.  
  87. void menu()
  88. {
  89.   char tecla;
  90.  
  91.   do
  92.   {
  93.     clrscr();
  94.     gotoxy(15,2); cout << "*** MENU PRINCIPAL ***";
  95.     gotoxy(10,6); cout << "[1] INGRESAR MATRICES";
  96.     gotoxy(10,8); cout << "[2] SUMA";
  97.     gotoxy(10,10); cout << "[3] MULTIPLICACION";
  98.     gotoxy(10,12); cout << "[4] SALIR";
  99.     gotoxy(10,16); cout << "OPCION: ";
  100.     tecla=getche();
  101.     clrscr();
  102.     switch(tecla)
  103.     {
  104.       case '1': ingresar();
  105.         break;
  106.       case '2': sumar();
  107.         break;
  108.       case '3': multiplicar();
  109.         break;
  110.     }
  111.     getch();
  112.   }while(tecla!='4');
  113. }
  114.  
  115. void main()
  116. {
  117.   menu();
  118. }
__________________
En programación hay mil y un formas de hacer lo mismo...