واضح آرشیو وب فارسی:سایت ریسک: کمک در شرح کد برنامه معکوس ماتریکس sepideh s 27 دي 1386, 09:12salam man 1 barname makos matrix gereftam ke dar morede estedlal barname chan ta eshkal daram ostademon gofte estedlal barnamaro barash taip konim kasi mitone komakam kone :neutral:age kasi mitone komakam kone bege barnamamo barash send konam mamnon misham saalek110 27 دي 1386, 10:53نمیشه حالا برنامه ات را همین جا بذاری تا همه کمک کنند. اگر نمیشه برای من بفرست شاید بتونم کمکی بکنم. البته برای دیگران هم بفرست چون من زیاد وارد نیستم. sepideh s 27 دي 1386, 15:06salam mojadad khahesh mikonam age kasi itone behem dar ord neveshatan estedlal 1 barname komak kone man in hafte mohlat akharame :mad: sepideh s 27 دي 1386, 15:08salam khodeton nemitonid be man komak konid sepideh s 27 دي 1386, 15:14barname makos matrix nadarid? sepideh s 27 دي 1386, 15:16ya hadeaghal komakam konid barname ke daram dorost konam kasi mitone saalek110 27 دي 1386, 16:26من تابحال چنین برنامه ای ننوشتم. ولی در شرح کدها شاید بتوانم کمکی کنم. dahdash 08 بهمن 1386, 00:25CODE]#include <iostream> using namespace std; int getn(); double **buildMatrix(int n); void readMatrix(double **matrix,int n); void writeMatrix(double **matrix,int n); double determinant(double **m,int n); double kahad(double **m1,int n,int i,int j); double **varoon(double **matrix,int n); int main() { double **matrix; double **inv; int n; n=getn(); matrix=buildMatrix(n); inv=buildMatrix(n); readMatrix(matrix,n); cout<<determinant(matrix,n)<<endl; inv=varoon(matrix,n); writeMatrix(inv,n); return 0; } int getn() { int n; cin>>n; return n; } double **buildMatrix(int n) { double **matrix; int i; matrix=new double *[n]; for(i=0;i<n;i++) matrix[i]=new double[n]; return matrix; } void readMatrix(double **matrix,int n) { int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>matrix[i][j]; } void writeMatrix(double **matrix,int n) { int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) cout<<matrix[i][j]<<" "; cout<<endl; } } double determinant(double **m,int n) { double det=0; int i=0,j; if(n==1) return m[0][0]; for(j=0;j<n;j++) det+=m[i][j]*kahad(m,n,i,j); return det; } double kahad(double **m1,int n,int i,int j) { double **m2; int counter1,counter2; int sign=1; for(int power=1;power<=j+i+2;power++) sign*=-1; m2=buildMatrix(n-1); for(counter1=0;counter1<n;counter1++) for(counter2=0;counter2<n;counter2++) { if(counter1<i && counter2<j) m2[counter1][counter2]=m1[counter1][counter2]; else if(counter1>i && counter2<j) m2[counter1-1][counter2]=m1[counter1][counter2]; else if(counter1<i && counter2>j) m2[counter1][counter2-1]=m1[counter1][counter2]; else if(counter1>i && counter2>j) m2[counter1-1][counter2-1]=m1[counter1][counter2]; } return sign*determinant(m2,n-1); } double **varoon(double **matrix,int n) { double **result; double det; det=determinant(matrix,n); result=buildMatrix(n); for(int i=0;i<n;i++) for(int j=0;j<n;j++) result[j][i]= (kahad(matrix,n,i,j)/det); return result; }[/CODE اینارو قبلنا نوشتم شاید به درد بخورن :neutral:
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 302]