PDA

View Full Version : تخصیص حافظه پویا به ماتریس



MOHSEN8000
چهارشنبه 01 اسفند 1386, 11:37 صبح
چند وقتی هست می خوام یه برنامه کامل در مورد ماتریس ها بنویسم ولی به یه مشکلی برخوردم. وقتی من یه ماتریس رو با اندازه نا معلوم می سازم(با حافظه پویا) برای مثلا محاسبه ی دترمینان این ماتریس به مشکل برخوردم. کسی می تونه کمکم کنه؟
البته با توجه به این که استفاده از روش بازگشتی هم خیلی حافظه لازم داره از این روش هم نمی خوام استفاده کنم. راه دیگه ای داره؟

BAHAL_KEYHAN
جمعه 03 اسفند 1386, 11:29 صبح
بجای استفاده از ارایه پویا نمی تونید از اشاره گر استفاده کنید.فکر کنم حتی استفاده از اشاره گر در اشاره گر براتون راحت تر از ارایه پویا باشه.برای محاسبهی دترمینان هم می توانید از روش پایین مثلثی استفاده کنید.

MOHSEN8000
جمعه 03 اسفند 1386, 16:48 عصر
int matdet(int **mat , int row , int column){
int i,j,k=0,l=0,sign=1,sum=0,**matcop;
if(row!=column){
cout<<"error"<<endl;
}
else{
matcop=new int*[row];
for (i = 0; i < row; i++){
matcop[i] = new int[row];
}

if (row==1){
return mat[0][0];
}
for (i=0; i<row; i++){
for (j=1 ; j<row ;j++){
for(k=0,l=0;k<row ;k++){
if(k!=i){
matcop[j-1][l]= mat[j][k];
l=l+1;
}
}
}
sum=sum+sign*mat[0][i]*matdet(matcop,row-1,row-1);
sign=-sign;
}
return sum;
}
}

فکر کنم مقصود شما این بود. (اشاره گر به اشاره گر). با تشکر.