View Full Version : سوال: سوال در مورد ضرب ماتریس ها
aseman-sky
جمعه 15 اردیبهشت 1391, 20:11 عصر
آخرین سوال از قسمت ماتریس ها:لبخند:ارور هم که خودتون میدونید میده
int[,] ArrayA = new int[2, 3] { { 1, 3, 5 }, { 1, 8, 9 } };
int[,] ArrayB = new int[3, 2] { { 3, 5 }, { 8, 9 }, { 6, 4 } };
int[,] ArrayC = new int[2, 3];
for (int i = 0; i <= 2; i++)
for (int j = 0; j <= 3; i++)
ArrayC = 0;
for (int k = 0; k <= 3; k++)
ArrayC[i, j] = ArrayA[i, k] * ArrayB[k, j] + ArrayC[i, j];
listView1.Items.Add(ArrayC[i, j].ToString());
توی جزوه در 2 حلقه ی for بالا به جای اینکه بنویسه <2 و <3 به جای این 2 عدد n و m گذاشته که فکر کنم به این دلیل هست که کلا برنامه توی جزوه از اول نوشته نشده و از حلقه های for شروع کردن به نوشتن برای همین این جا این 2 تا رو اینطوری نوشتن
Mahmoud.Afrad
شنبه 16 اردیبهشت 1391, 00:31 صبح
اندیس از صفر تا 3 میشه 4 بار تکرار پس اون مساوی شرط حلقه رو بردار(این بار هزارم):چشمک:
دستوراتی که باید داخل for اجرا بشوند رو داخل { } قرار بدید.
mrbm_2007
شنبه 16 اردیبهشت 1391, 03:53 صبح
int[,] ArrayA = new int[2, 3] { { 1, 3, 5 }, { 1, 8, 9 } };
int[,] ArrayB = new int[3, 2] { { 3, 5 }, { 8, 9 }, { 6, 4 } };
int[,] ArrayC = new int[2, 3];
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; i++)
{
ArrayC[i, j] = 0;
for (int k = 0; k < 3; k++)
ArrayC[i, j] += ArrayA[i, k] * ArrayB[k, j];
listView1.Items.Add(ArrayC[i, j].ToString());
}
aseman-sky
شنبه 16 اردیبهشت 1391, 09:58 صبح
int[,] ArrayA = new int[2, 3] { { 1, 3, 5 }, { 1, 8, 9 } };
int[,] ArrayB = new int[3, 2] { { 3, 5 }, { 8, 9 }, { 6, 4 } };
int[,] ArrayC = new int[2, 3];
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; i++)
{
ArrayC[i, j] = 0;
for (int k = 0; k < 3; k++)
ArrayC[i, j] += ArrayA[i, k] * ArrayB[k, j];
listView1.Items.Add(ArrayC[i, j].ToString());
}
ارور در قسمت ArrayC[i, j] = 0;
Index was outside the bounds of the array.
mrbm_2007
شنبه 16 اردیبهشت 1391, 13:34 عصر
جواب یک ماتریس 2 در 2 است !
int[,] ArrayA = new int[2, 3] { { 1, 3, 5 }, { 1, 8, 9 } };
int[,] ArrayB = new int[3, 2] { { 3, 5 }, { 8, 9 }, { 6, 4 } };
int[,] ArrayC = new int[2, 2];
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; i++)
{
ArrayC[i, j] = 0;
for (int k = 0; k < 3; k++)
ArrayC[i, j] += ArrayA[i, k] * ArrayB[k, j];
listView1.Items.Add(ArrayC[i, j].ToString());
}
aseman-sky
شنبه 16 اردیبهشت 1391, 19:49 عصر
بازم همون ارور قبلی رو میده
Mahmoud.Afrad
شنبه 16 اردیبهشت 1391, 20:35 عصر
اشتباه در حلقه داخلی هست به جای اینکه که j++ باشه نوشتید i++
int[,] ArrayA = new int[2, 3] { { 1, 3, 5 }, { 1, 8, 9 } };
int[,] ArrayB = new int[3, 2] { { 3, 5 }, { 8, 9 }, { 6, 4 } };
int[,] ArrayC = new int[2, 2];
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
{
MessageBox.Show(i.ToString() + j.ToString());
ArrayC[i, j] = 0;
for (int k = 0; k < 3; k++)
ArrayC[i, j] += ArrayA[i, k] * ArrayB[k, j];
listView1.Items.Add(ArrayC[i, j].ToString());
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.