PDA

View Full Version : مبتدی: مشکل برنامه ی جمع 2 ماتریس اسپارس



parva-88
پنج شنبه 25 فروردین 1390, 15:40 عصر
من برنامه ی جمع 2 ماتریس اسپارس رو نوشتم و برای row va column های یکسان جواب میده ولی با اینکه برای اونا هم حالت زدم ولی تو اون حالتا run time err میده کسی میتونه مشکلشو رفع کنه؟

public void AddSparse(Sparce b)
{
int i, j, k;
i = j = k = 0;
if (Row != b.Row || Col != b.Col)
{
Console.WriteLine( "\n*** ERROR !!! Nemitavan In 2 Matris Ra Ba Ham Jame Kard ***");

}
Row = b.Row;
Col = b.Col;
while (i < Term && j < b.Term)
{
if (tarray[i].I < b.tarray[j].I || (tarray[i].I== b.tarray[j].I && tarray[i].J < b.tarray[j].J))
{
tarray[k].I= tarray[i].I;
tarray[k].J = tarray[i].J;
tarray[k++].Valu = tarray[i++].Valu;
}
else if (tarray[i].I > b.tarray[j].I || (tarray[i].I == b.tarray[j].I && tarray[i].J > b.tarray[j].J))
{
tarray[k].I = b.tarray[j].I;
tarray[k].J = b.tarray[j].J;
tarray[k++].Valu = b.tarray[j++].Valu;
}
else if ((tarray[i].I==tarray[j].I) && (tarray[i].J==tarray[j].J))
{
tarray[k].I = tarray[i].I;
tarray[k].J = tarray[i].J;
tarray[k++].Valu = tarray[i++].Valu + b.tarray[j++].Valu;
}
else
{
i++;
j++;
}
}
while (i < Term)///// moshkelesh chie?
{
tarray[k].I = tarray[i].I;
tarray[k].J = tarray[i].J;
tarray[k++].Valu = tarray[i++].Valu;
}
while (j < b.Term)//moshkelesh chie?
{
tarray[k].I = b.tarray[j].I;
tarray[k].J= b.tarray[j].J;
tarray[k++].Valu = b.tarray[j++].Valu;
}
Term= k;
}

exlord
پنج شنبه 25 فروردین 1390, 23:50 عصر
من از کد هایی که از c یا C++ تبدیل به C# شدن چندان سر در نمیارم که چیکار میکنن ... :گیج:
نمومه C# این ماتریس همراه با جمع (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=1247146&viewfull=1#post1247146)

parva-88
شنبه 27 فروردین 1390, 20:00 عصر
ممنون از کمکتون ولی اگه لطف کنید مشکل کد خودمو بگین ممنون میشم

exlord
شنبه 27 فروردین 1390, 20:25 عصر
ممنون از کمکتون ولی اگه لطف کنید مشکل کد خودمو بگین ممنون میشم
شما اول بگین از چه روش و الگریتمی استفاده کردین برای جمع تا منم کدتونو بخونم و بفهمم چیکار کردین ...

parva-88
شنبه 27 فروردین 1390, 21:07 عصر
الگوریتمی که نوشتم مانند تقریبا جمع چند جمله ای عمل میکنه میاد سطر و ستون رو مقایسه میکنه و اگر برابر بودن جمع در غیر اینصورت روی سطر بزرگتر مقدار++ میشه و یک سطر و ستون و مقدار ست میشه مثل الگوی جمع چند جمله ای تو هورویتز حالا الگوریتم من برا حالت اول جواب میده برا اونیکی نه ارور میده