Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Возвращение неправильных значений / 17 сообщений из 17, страница 1 из 1
12.11.2015, 17:31
    #39102127
Aleksandr1980
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Добрый день Написал программу для умножения двух матриц. Но к сожалению метод возвращает мне нули. А на самом деле не должна.

Помогите пожалуйста новичку

вот сама программа

class Program
{
static void Main(string[] args)
{
Math mathe = new Math();
int first, second;

Console.Write("Pervoye cislo ravno: ");
first = int.Parse(Console.ReadLine());

Console.Write("Vtoroye cislo ravno: ");
second = int.Parse(Console.ReadLine());

Matrix m1 = new Matrix();
Matrix m2 = new Matrix();

for (int i = 0; i < 2; i++)

for (int j = 0; j < 2; j++)
{
Console.Write("m1.Mass[{0},{1}]=", i, j);
m1.mas[i, j] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
{
Console.Write("m2.Mass[{0},{1}]=", i, j);
m2.mas[i, j] = int.Parse(Console.ReadLine());
}


Console.ReadLine();
Console.WriteLine("Summa dvux cisel sostavlyayet {0} ", mathe.Sum(first,second));

Console.WriteLine("\n Proizvedeniye dvux matric sostavlyayet ");

Matrix result_2 = mathe.Sum(m1, m2);

for (int i=0; i<2; i++)
for (int j = 0; j < 2; j++)
{
Console.WriteLine("result[{0}, {1}]={2}", i, j, result_2.mas[i, j]);
}

Console.ReadLine();
}


}


class Matrix
{
public int[,] mas = new int[2, 2];
}

class Math
{
public int s=0;
public int Sum(int first, int second)
{
return first + second;

}

public Matrix Sum(Matrix first, Matrix second)
{


Matrix resul_1 = new Matrix();

for (int i = 0; i < 2; i++)
{

for (int j = 0; j < 2; j++)
{
for (int l = 0; l < 2; l++)
{
s = s + resul_1.mas[i, l] * resul_1.mas[l, j];
}

resul_1.mas[i, j] = s;

}

}

return resul_1;
}
}
}
...
Рейтинг: 0 / 0
12.11.2015, 17:33
    #39102130
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Aleksandr1980Помогите пожалуйста новичку Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
12.11.2015, 17:40
    #39102142
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Aleksandr1980метод возвращает мне нулиНеудивительно. Если умножать ноль на ноль, то получится ноль, как ни крути
Код: c#
1.
              s = s + resul_1.mas[i, l] * resul_1.mas[l, j];
...
Рейтинг: 0 / 0
12.11.2015, 17:42
    #39102148
Aleksandr1980
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Но веть я задаю значения матрице как там могут быть нули
...
Рейтинг: 0 / 0
12.11.2015, 17:46
    #39102153
Aleksandr1980
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
веть параметрам задаются значения элементов матриц
...
Рейтинг: 0 / 0
12.11.2015, 18:02
    #39102194
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Aleksandr1980я задаю значения матриценет, попробуй найти то место, где ты задаешь значения матрице resul_1
...
Рейтинг: 0 / 0
12.11.2015, 18:07
    #39102206
Aleksandr1980
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Да я исправил но сейчас получил не верные результаты
...
Рейтинг: 0 / 0
12.11.2015, 18:15
    #39102221
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Aleksandr1980не верные результатыэто удручает, надо продолжить работу над ошибками
...
Рейтинг: 0 / 0
12.11.2015, 19:20
    #39102283
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Я хотел было подсказать, где ошибка, но увидел неоформленный текст программы, и расстроился
...
Рейтинг: 0 / 0
12.11.2015, 19:38
    #39102306
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Тем более, это не окончательный текст, фиг его знает, что и на что он там исправил
Aleksandr1980Да я исправилк тому же, я лично не помню правила умножения матриц (там как-то столбцами и строками перемножается...), лезть и изучать вопрос нет никакого желания, в общем ждем инициативы автора
...
Рейтинг: 0 / 0
12.11.2015, 21:46
    #39102396
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
нафига всё это г. если в Framework'е уже есть методы для работы с матрицами?
...
Рейтинг: 0 / 0
13.11.2015, 03:13
    #39102520
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Roman Mejtesнафига всё это г. если в Framework'е уже есть методы для работы с матрицами?
Студентов заставляют делать именно так. Чтобы знали.
...
Рейтинг: 0 / 0
13.11.2015, 08:04
    #39102556
Aleksandr1980
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Добрый день.

вот отправляю исправленную программу


class Program
{
static void Main(string[] args)
{
Math mathe = new Math();
int first, second;

Console.Write("Pervoye cislo ravno: ");
first = int.Parse(Console.ReadLine());

Console.Write("Vtoroye cislo ravno: ");
second = int.Parse(Console.ReadLine());

Matrix m1 = new Matrix();
Matrix m2 = new Matrix();

for (int i = 0; i < 2; i++)

for (int j = 0; j < 2; j++)
{
Console.Write("m1.Mass[{0},{1}]=", i, j);
m1.mas[i, j] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
{
Console.Write("m2.Mass[{0},{1}]=", i, j);
m2.mas[i, j] = int.Parse(Console.ReadLine());
}


Console.ReadLine();
Console.WriteLine("Summa dvux cisel sostavlyayet {0} ", mathe.Sum(first,second));

Console.WriteLine("\n Proizvedeniye dvux matric sostavlyayet ");

Matrix result_2 = mathe.Sum(m1, m2);

for (int i=0; i<2; i++)
for (int j = 0; j < 2; j++)
{
Console.WriteLine("result[{0}, {1}]={2}", i, j, result_2.mas[i, j]);
}

Console.ReadLine();
}


}


class Matrix
{
public int[,] mas = new int[2, 2];
}

class Math
{
public int s;
public int Sum(int first, int second)
{
return first + second;

}

public Matrix Sum(Matrix first, Matrix second)
{


Matrix resul_1 = new Matrix();

for (int i = 0; i < 2; i++)
{

for (int j = 0; j < 2; j++)
{
s = 0;
for (int l = 0; l < 2; l++)
{
s = s + first.mas[i, l] * second.mas[l, j];
}

resul_1.mas[i, j] = s;

}

}

return resul_1;
}
}
}

s надо было обнулить перед циклом l и выражение исправил надо было писать так first.mas[i, l] * second.mas[l, j];
...
Рейтинг: 0 / 0
13.11.2015, 09:24
    #39102611
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Shocker.Proк тому же, я лично не помню правила умножения матриц (там как-то столбцами и строками перемножается...),
таблицу умножения - тоже забыл?
...
Рейтинг: 0 / 0
13.11.2015, 10:40
    #39102691
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Изопропилтаблицу умножения - тоже забыл?Таблица умножения нужна повседневно - не забыл. Умножение матриц как-то редко применяется в жизни, настолько редко, что последний раз применял, когда, собственно, контрольную писал на эту тему ))

Aleksandr1980, 18407807
...
Рейтинг: 0 / 0
13.11.2015, 12:05
    #39102788
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
ИзопропилShocker.Proк тому же, я лично не помню правила умножения матриц (там как-то столбцами и строками перемножается...),
таблицу умножения - тоже забыл?
А про свёртку тензоров и говорить не стоит...
Кошмар!
...
Рейтинг: 0 / 0
13.11.2015, 12:58
    #39102843
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возвращение неправильных значений
Shocker.ProИзопропилтаблицу умножения - тоже забыл?Таблица умножения нужна повседневно - не забыл. Умножение матриц как-то редко применяется в жизни, настолько редко, что последний раз применял, когда, собственно, контрольную писал на эту тему ))

Aleksandr1980, 18407807
матричные вычисления нужны в 3D графике, трансформации, преобразование есть к примеру в WPF, ты же используешь WPF? значит должен понимать механику их работы и знать, как перемножать матрицы, тем более, что это не так уж и сложно :)
когда я учился, на занятиях по комп. графике нас заставляли делать это в уме и на бумажке :)
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Возвращение неправильных значений / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]