Dev - C++ - Ayuda con ejercicio C++ matriz

   
Vista:

Ayuda con ejercicio C++ matriz

Publicado por gustavo gustavo_jara.ferreira@hotmail.com (3 intervenciones) el 10/11/2015 01:35:23
Buenas tardes, necesito una mano con este ejercicio que me han dado en la univ. algoritmo que implemente una calculadora de operaciones de 2 matrices.
1. debe pedir la dimensión de la matriz 1 y 2
2. debe poblar las matrices 1 y 2
3. debe pedir la operación entre matrices (suma, resta, etc)
4. hacer la operación
5. mostrar el resultado
si me pueden ayudar porfavor se los agradecería un montón!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con ejercicio C++ matriz

Publicado por Hector (45 intervenciones) el 10/11/2015 02:25:44
Ayudar no es hacerte la tarea, la idea de esos ejercicios son para que tu mismo los hagas, y en caso de tener errores los puedes publicar aquí para que en verdad te ayuden, si la gente hace los trabajos por ti no aprendes nada y quedas frito cuando en el futuro te pongan algo mas complejo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con ejercicio C++ matriz

Publicado por gustavo (3 intervenciones) el 10/11/2015 03:08:11
#include <cstdlib>
#include <iostream>

using namespace std;

int row,fil,i,j;

int main()
{
cout <<"Ingrese el numero de filas "<<endl;
cin >>fil;
cout <<"Ingrese el numero de columnas "<<endl;
cin >>row;
int matriz1[fil][row];
for (i=0;i<=fil-1;i++)
{
for (j=0;j<=row-1;j++)
{
cout <<"Ingrese la posicion "<<"("<<i<<")"<<"("<<j<<")"<<" de la matriz 1"<<endl;
cin >>matriz1[i][j];
}
}
system("pause");
int matriz2[fil][row];
for (i=0;i<=fil-1;i++)
{
for (j=0;j<=row-1;j++)
{
cout <<"Ingrese la posicion "<<"("<<i<<")"<<"("<<j<<")"<<" de la matriz 2"<<endl;
cin >>matriz2[i][j];
}
}
system("pause");
cout << "La Suma de la Matriz a+b es"<<endl;
system("pause");
int matriz3[fil][row];
for (i=0;i<=fil-1;i++)
{
for (j=0;j<=row-1;j++)
{
matriz3[i][j]= matriz1[i][j]+matriz2[i][j];
cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<matriz3[i][j]<<endl;
}
}
system("pause");
cout<<"Le Resta de la Matriz a-b es"<<endl;
int matriz4[fil][row];
for (i=0;i<=fil-1;i++)
{
for(j=0;j<=row-1;j++)
{
matriz4[i][j]= matriz1[i][j]-matriz2[i][j];
cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<matriz4[i][j]<<endl;
}
}
system("pause");
cout<< "La Multiplicacion de la matriz a*b es"<<endl;
int matriz5[fil][row];
for (i=0;i<=fil-1;i++)
{
for(j=0;j<=row-1;j++)
{
matriz5[i][j]= matriz1[i][j]*matriz2[i][j];
cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<matriz5[i][j]<<endl;
}
}
system("pause");
cout<< "La Division de la matriz a/b es"<<endl;
int matriz6[fil][row];
for (i=0;i<=fil-1;i++)
{
for(j=0;j<=row-1;j++)
{
matriz6[i][j]= matriz1[i][j]/matriz2[i][j];
cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<matriz6[i][j]<<endl;
}
}
cout << "Gracias por usar este programa "<<endl;
system("pause");
return 0;
}
eso es lo que llevo logré hacerlo... pero la division todas me dan 0 como hago para que me de decimal? (use float pero nada)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con ejercicio C++ matriz

Publicado por agustin (304 intervenciones) el 10/11/2015 08:16:54
No te aconsejo para nada que hagas esto: int matriz6[fil][row];
Para crear un array de esa manera tienes que usar valores constantes ya que la memoria es reservada en tiempo de compilación y aun no metiste ni el número de filas ni el de columnas así que vete a saber que reserva. Eso lo permitieron creo que en una versión de C y en la siguiente lo quitaron para evitar problemas. Usa malloc y free que son la manera correcta de obtener memoria y liberarla de forma dinámica.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con ejercicio C++ matriz

Publicado por agustin (304 intervenciones) el 10/11/2015 09:32:12
Esto funciona perfectamente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int col,fil,i,j;
 
int main()
{
   cout <<"Ingrese el numero de filas: ";
   cin >>fil;
   cout <<"Ingrese el numero de columnas: ";
   cin >>col;
   //Comienza la asignacion de memoria dinamica
   int **matriz1=new int*[fil];
   for(int i=0;i<fil;i++)
      matriz1[i]=new int[col];
   //Finaliza la asignacion de memoria dinamica
   for (i=0;i<=fil-1;i++)
   {
      for (j=0;j<=col-1;j++)
      {
         cout <<"Ingrese la posicion "<<"("<<i<<")"<<"("<<j<<")"<<" de la matriz 1"<<endl;
         cin >>matriz1[i][j];
      }
   }
   //Comienza la asignacion de memoria dinamica
   int **matriz2=new int*[fil];
   for(int i=0;i<fil;i++)
      matriz2[i]=new int[col];
   //Finaliza la asignacion de memoria dinamica
   for (i=0;i<=fil-1;i++)
   {
      for (j=0;j<=col-1;j++)
      {
         cout <<"Ingrese la posicion "<<"("<<i<<")"<<"("<<j<<")"<<" de la matriz 2"<<endl;
         cin >>matriz2[i][j];
      }
   }
   cout << "=========================================================================" << endl;
   cout << "La Suma de la Matriz a+b es"<<endl;
   for (i=0;i<=fil-1;i++)
   {
      for (j=0;j<=col-1;j++)
      {
         cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<matriz1[i][j]+matriz2[i][j]<<endl;
      }
   }
   system("pause");
   cout << "=========================================================================" << endl;
   cout<<"Le Resta de la Matriz a-b es"<<endl;
   for (i=0;i<=fil-1;i++)
   {
      for(j=0;j<=col-1;j++)
      {
         cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<matriz1[i][j]-matriz2[i][j]<<endl;
      }
   }
   system("pause");
   cout << "=========================================================================" << endl;
   cout<< "La Multiplicacion de la matriz a*b es"<<endl;
   for (i=0;i<=fil-1;i++)
   {
      for(j=0;j<=col-1;j++)
      {
         cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<matriz1[i][j]*matriz2[i][j]<<endl;
      }
   }
   system("pause");
   cout << "=========================================================================" << endl;
   cout<< "La Division de la matriz a/b es"<<endl;
   for (i=0;i<=fil-1;i++)
   {
      for(j=0;j<=col-1;j++)
      {
         cout << "Valor posicion "<<"("<<i<<")"<<"("<<j<<"): "<<(float)matriz1[i][j]/matriz2[i][j]<<endl;
      }
   }
   cout << "=========================================================================" << endl;
   cout << "Gracias por usar este programa "<<endl;
 
   //Comienza la liberacion de la memoria de los arrays dinamicos
   for(int i=0;i<col;i++){
      delete[] matriz1[i];
      delete[] matriz2[i];
   }
   delete[] matriz1;
   delete[] matriz2;
   //finaliza la liberacion de la memoria de los arrays dinamicos
 
   system("pause");
   return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar