PDA

View Full Version : سوال: کمک برای یک قسمت از برنامه دترمینان



panni-qalbeyakhi
چهارشنبه 02 بهمن 1387, 23:39 عصر
بچه سلام این برنامه دترمینان یک ماتریس حساب می کند ولی من یک قسمت از آن را متوجه
میشه کسی کمک کنه و بگه این قسمت برای چی این جوری نوشته شده است.
:متفکر::متفکر: :گریه::گریه::گریه:
این قسمت در داخل main نوشته می شود و تابع دترمینا را صدا می زند.

cout<<"please enter the size of your matrix\n";
cin>>n;
cin>>m;
if (n!=m)
cout<<"incorrect dimensions"<<endl;
else
{
cout<<"enter the mtrix"<<endl;
for(int z=1;z<=n;z++)
{
for(int t=1;t<=n;t++)
cin>> D[z][t];
cout<<endl;

}
cout<<"****** ";


cout<< det(1,1,n,n,n,D);:متفکر:
cout<<" ******"<<endl;
}



این قسمت که با شکلک مشخص کردم . متوجه نمی شوم چرا دو مقدار 1 و 3 مقدار n (سایز ماتریس ) به تابع ارسال شده است.
این هم خود تابع دترمینان است


double det(int a,int b,int c,int d,int n,double D[100][100])

{
if(n==2)
{
int l=a,m=c,p=d,q=b;
return D[a][b]*D[c][d]-D[l][p]*D[m][q];
}
else
{

for(int k=b;k<=d;k++)
{
if(k==b)
sum=sum+sign*D[a][k]*det(a+1,b+1,c,d,c-a,D);
else
if(k==d)
sum=sum+sign*D[a][k]*det(a+1,b,c,d-1,c-a,D);
else
sum=sum+sign*D[a][k]*det(a+1,b,c,d,c-a,D);
sign=-sign;
}
}
return sum;
}

ممنون میشم اگه کسی به تونه کمک کنه.

d@nyal
پنج شنبه 03 بهمن 1387, 12:15 عصر
دلیل خاصی نداره.
چون هیچ جایی مقادیر a و b رو تغییر نداده. می تونید حذفشون کنید.... در عوض توی تابع a و b رو تعریف کنید و مقدار 1 و 3 رو بهشون بدید.

ali682344
شنبه 01 خرداد 1389, 18:52 عصر
سلام یمن دنبال یه برنامه برای دترمینان بودم بلاخره پیداش کردم
حالا قضیه این 1 ها و این همه n می خواستم بدونم خواهش می کنم کمک کنید برای فردا نیاز دارم
cout<< det(1,1,n,n,n,D);