نشر توسط:admin Views 38 تاریخ : 1 خرداد 1395 نظرات ()
سوال : برنامه ای بنویسید که حاصل ضرب دو ماتریس [3*4],[4*3] را محاسبه کند.
سوال :
برنامه ای بنویسید که حاصل ضرب دو ماتریس سه در چهار را محاسبه کند. توضیحات :
برای محاسبه حاصل ضرب دو ماتریس مهم ترین شرط برابر بودن تعداد سطر ماتریس اول با تعداد ستون ماتریس دوم میباشد. حال پس از بررسی شرط بالا طبق فرمول زیر میتوان حاصل ضرب دو ماتریس را محاسبه کرد:
دوستان دقت کنید فرمول بالا برای استفاده در ریاضیات میباشد و برای استفاده در برنامه نویسی باید به الگوریتم آن پی برد که در ذیل به شرح مختصر الگوریتم ضرب دو ماتریس میپردازیم : در قسمت اول و دوم برنامه مقادیر دو ماتریس را از کاربر دریافت میشود. در قسمت سوم :
به این مسئله هم توجه کنید که حاصل یک ماتریس [x*y] در یک ماتریس [n*m] برابر با یک ماتریس [x*m] میباشد. در قسمت چهارم نیز مقادیر محاسبه شده که در آرایه Z قرار دارد را در خروجی نمایش میدهد.
کد:
#include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int a[3][4],b[4][3],z[3][3],i,j,k; system("cls"); cout<<" www.Cpp-Prog.Tk"; //********************************************************** cout<<" MAGHADIRE MATRISE [3,4] RA VARED KONID : "; for(i=0;i<3;i++){ for(j=0;j<4;j++){ cout<<" [ "< cin>>a[i][j]; } cout< } //****************************************************** cout<<" MAGHADIRE MATRISE [4,3] RA VARED KONID : "; for(i=0;i<4;i++){ for(j=0;j<3;j++){ cout<<" [ "< cin>>b[i][j]; } cout< } //******************************************************* int t=0; cout< for(i=0;i<3;i++) for(j=0;j<3;j++){ t=0; for(k=0;k<4;k++){ t+=a[i][k]*b[k][j]; z[i][j]=t; } } //******************************************************* cout<<" HASELE ZARB DO MATRISE VARED SHODE : "< for(i=0;i<3;i++){ for(j=0;j<3;j++) cout<<" "< cout< } _getch(); return 0; }
منبع : لینک منبع
به گروه ما هم سر بزنید