PDA

View Full Version : سوال: برنامه‌ای برای ضرب ماتریس‌ها



DumanNazeri
دوشنبه 23 اردیبهشت 1392, 21:41 عصر
سلام٬
وقت بخیر.
خسته نباشید.
ببخشید که مزاحم وقت‌تون می‌شم.
استادمون گفته برنامه‌ای برای جمع و ضرب ماتریس‌ها بنویسیم.
من اونی‌که برای جمع بود رو نوشتم. و فکر می‌کنم که درسته.
حالا می‌خواستم برای ضرب دو تا ماتریس ۵ در ۵ از شما راهنمایی بخوام..
ممنون می‌شم اگر راهنمایی‌م کنید.




#include <iostream>
using namespace std;

int main ()
{
int a[5][5], b[5][5], c[5][5];


//input Matrix a
cout <<"Please Enter Matrix a\n";
for ( int i = 0 ; i < 5 ; i++ )
{
for ( int j = 0 ; j < 5 ; j++ )
{
cout <<"Please Enter " << i <<"," << j <<"\n";
cin >> a[i][j];
}
cout <<"__________\n";
}

//input Matrix b
cout <<"Please Enter Matrix b\n";
for ( int i = 0 ; i < 5 ; i++ )
{
for ( int j = 0 ; j < 5 ; j++ )
{
cout <<"Please Enter " << i << "," << j <<"\n";
cin >> b[i][j];
}
cout <<"_________\n";
}

//calculate c ( c = a + b )
cout <<"Matrix c is :\n";
for ( int i = 0 ; i < 5 ; i++ )
{
for ( int j = 0 ; j < 5 ; j++ )
{
c[i][j] = a[i][j] + b[i][j];
cout << c[i][j] <<'\t';
}
cout << endl;
}

return 0;
}

hessam1993
دوشنبه 23 اردیبهشت 1392, 22:36 عصر
سلام
این ضرب ماتریس 5*5 است
امیدوارم مفید باشه.
int main()
{
int a[5][5], b[5][5], c[5][5]={0},i,j;
cout << "Enter First Matrix" << endl;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
cin >> a[i][j];
cout << "Enter Second Matrix" << endl;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
cin >> b[i][j];
for(i=0; i<5; i++)
for(j=0; j<5; j++)
c[i][j] = c[i][j] +(a[i][j] * b[i][j]);
cout << "Matrix Result" << endl;
for(i=0; i<5; i++)
for(j=0; j<5; j++)
cout << c[i][j] << " " ;
return 0;
}

DumanNazeri
دوشنبه 23 اردیبهشت 1392, 23:52 عصر
سلام. ممنونم از شما.
فقط خودتون از درست بودن این کد مطمئن هستید؟ می‌شه یه تستی بکنید؟!
کد مشکلی نداره از نظر برنامه نویسی و اجرا می‌شه. اما ضرب رو درست انجام نمی‌ده انگار..
بازم ممنونم از وقتی که در اختیار من گذاشتید..
مرسی.

omidshaman
سه شنبه 24 اردیبهشت 1392, 09:39 صبح
اون کد بالایی اشتباهه ضرب 2 تا ماتریس 3*3 برای مثال

for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
for(int k=0;k<3;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];

-ShaDi-
سه شنبه 12 آذر 1392, 22:31 عصر
برنامه ضرب ماتریس رو بذارین لطفا c++