Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 3
Регистрация: 22.09.2011
Сообщений: 86
1

Функция возвращает только первый эллемент матрицы

01.06.2012, 12:59. Просмотров 531. Ответов 5
Метки нет (Все метки)


функция должна возвращать обратную матрицу, но возвращает только первый элемент этой матрицы?! почему только первый? где все остальные остаются? и как это исправить?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
private double inversion(double[,] A, int N)
        {
            double temp;
            double [,]E = new double[N,N];
            for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++)
                {
                    E[i,j] = 0.0;
 
                    if (i == j)
                        E[i,j] = 1.0;
                }
            for (int k = 0; k < N; k++)
            {
                temp = A[k,k];
                for (int j = 0; j < N; j++)
                {
                    A[k,j] /= temp;
                    E[k,j] /= temp;
                }
                for (int i = k + 1; i < N; i++)
                {
                    temp = A[i,k];
 
                    for (int j = 0; j < N; j++)
                    {
                        A[i,j] -= A[k,j] * temp;
                        E[i,j] -= E[k,j] * temp;
                    }
                }
            }
 
            for (int k = N - 1; k > 0; k--)
            {
                for (int i = k - 1; i >= 0; i--)
                {
                    temp = A[i,k];
 
                    for (int j = 0; j < N; j++)
                    {
                        A[i,j] -= A[k,j] * temp;
                        E[i,j] -= E[k,j] * temp;
                    }
                }
            }
 
            for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++)
                    return A[i,j] = E[i,j];
           return N;
            
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2012, 12:59
Ответы с готовыми решениями:

Функция возвращает только true
Пытаюсь написать функцию для проверки числа на простоту, но она возвращает значение true при любом...

Поменять местами первый и последний столбцы матрицы, содержащие только положительные элементы
Здравствуйте! Пишу код using System; using System.Collections.Generic; using System.Linq; using...

Post возвращает только первый символ из поля
post возвращает только первый символ из поля формы может кто встречался с этим ранее?

Игра в города. Возвращает только первый встречный город
Написал примитивную игру в города на пшп. Есть массив с городами и две функции,одна определяет...

5
Эксперт .NET
14840 / 11227 / 2947
Регистрация: 17.09.2011
Сообщений: 18,808
01.06.2012, 13:14 2
измените тип возвращаемого значения на double[,] и возвращайте переменную E.
1
1 / 1 / 3
Регистрация: 22.09.2011
Сообщений: 86
01.06.2012, 13:42  [ТС] 3
спасибо. но вопрос. странно, я ведь присваиваю массиву А массив Е, т.е. по идее в А то что в Е. почему тогда при возврате так происходит?
0
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
01.06.2012, 13:52 4
Так вы и смотрите тот массив, который передаете в этот метод. Он изменился.
А вы написали: возвращать double и возвращаете N. Почему тогда оно должно вернуть массив?
0
1 / 1 / 3
Регистрация: 22.09.2011
Сообщений: 86
01.06.2012, 14:07  [ТС] 5
Цитата Сообщение от turbanoff Посмотреть сообщение
А вы написали: возвращать double и возвращаете N. Почему тогда оно должно вернуть массив?
возвращаю N потому что это размер массива и он зависит то счетчика.
Цитата Сообщение от turbanoff Посмотреть сообщение
Так вы и смотрите тот массив, который передаете в этот метод. Он изменился.
когда было
C#
1
2
3
4
 for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++)
                    return A[i,j] = E[i,j];
           return N;
первый элемент того массива котрый я передаю был правильным остальные 0
когда пофиксил на
C#
1
2
3
4
for (int i = 0; i < N; i++)
                for (int j = 0; j < N; j++)
                    return E[i, j];
           return N;
все заработало
0
Эксперт Java
4072 / 3806 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
01.06.2012, 15:05 6
Я вас ничего не понял. Примерно так.
Могу лишь только оставить пару коментариев по коду:
1. Массив знает свою размерность. Для этого у него есть метод GetLength. Поэтому размер массива не нужно передавать дополнительно.
2. Писать в цикле return - не имеет никакого смысла. Так как при первой же итерации завершится метод, и вместе с ним цикл.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2012, 15:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Функция, которая только возвращает значение
Как реализовать функцию, которая только возвращает значение. Вот, например: #include &quot;stdafx.h&quot;...

Функция Все-равны, которая возвращает T, если первый элемент списка равен второму
как создать функцию Все-равны, которая возвращает T, если первый элемент списка равен второму,...

Функция возвращает только код выхода, а не результат
Подскажите, написал такой скрипт для периодической отправки результата выполнения нескольких команд...

Функция getYear возвращает только последние две цифры
Столкнулся с проблемой работы скрипта JavaScript функция getYear для годов с 1900 по 1999...

Функция выполняется при клике только на первый элемент
Нужно, чтобы при клике на элемент с id set_api выполнялась функция. ...

Функция которая возвращает первый, второй, предпоследний и последний элемент списка, в виде четырехэлементного списка
Был бы признателен за помощь. И если не затруднит, то с комментариями. Задание: Дан список...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.