Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для Cheshire94
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 110

Править код./Помочь дописать

20.05.2013, 14:05. Показов 922. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет,помогите подправить код и немного дописать.
В коде в коментах всплывает условие.

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Text;
 
namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Матричный метод решения систем";
            double[,] a = new double[3, 3] { { 1, 4, 7 }, { 9, 8, 12 }, { 6, 1, 0 } };
            double[,] S = new double[3, 3];
            Console.WriteLine("Имеем матрицу 3х3");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < i; j++)
                    Console.Write("    {0}", a[i, j]);
            }
            //определитель матрици
            double d = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", d);
            Console.Write("----------------\n");
            if (d == 0)
            {
                Console.WriteLine("Матрица является выражденной.");
            }
            //Транспонирование матрици
            double tmp;
            for (int i = 1; i < 3; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;
                }
            } 
            //Тут хотелось бы вывести транспонированную матрицу,да бы убедиться то , что приведена верно.
 
            //Формирование союзной матрицы(Формула взята с учебника)
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
 
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
 
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            /*Итак получаем: a[i,j] - матрица 3x3;
             * d - определитель матрицы;
             * tmp - транспонированная матрица;
             * S[i,j] - союзная матрица;*/
 
            //Формируем обратную матрицу.
 
            Console.ReadKey();
 
        }
    }
}
Добавлено через 13 минут
До определителя все впорядки:
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Text;
 
namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Матричный метод решения систем";
            double[,] a = new double[3, 3] { { 1, 4, 7 }, { 9, 8, 12 }, { 6, 1, 0 } };
            double[,] S = new double[3, 3];
            Console.WriteLine("Имеем матрицу 3х3");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                    Console.Write("    {0}", a[i, j]);
            }
            //определитель матрици
            double d = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", d);
            Console.Write("----------------\n");
            if (d == 0)
            {
                Console.WriteLine("Матрица является выражденной.");
            }
            //Транспонирование матрици
            double tmp;
            for (int i = 1; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;  
                }
            } 
            //Тут хотелось бы вывести транспонированную матрицу,да бы убедиться то , что приведена верно.
 
            //Формирование союзной матрицы(Формула взята с учебника)
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
 
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
 
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            /*Итак получаем: a[i,j] - матрица 3x3;
             * d - определитель матрицы;
             * tmp - транспонированная матрица;
             * S[i,j] - союзная матрица;*/
 
            //Формируем обратную матрицу.
 
            Console.ReadKey();
 
        }
    }
}
Добавлено через 1 минуту
1) Ошибка в 37 строке.
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Text;
 
namespace ConsoleApplication43
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Матричный метод решения систем";
            double[,] a = new double[3, 3] { { 1, 4, 7 }, { 9, 8, 12 }, { 6, 1, 0 } };
            double[,] S = new double[3, 3];
            Console.WriteLine("Имеем матрицу 3х3");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                    Console.Write("    {0}", a[i, j]);
            }
            //определитель матрици
            double d = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", d);
            Console.Write("----------------\n");
            if (d == 0)
            {
                Console.WriteLine("Матрица является выражденной.");
            }
            //Транспонирование матрици
            double tmp;
            for (int i = 1; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;  
                }
            }
            Console.WriteLine("{0}", tmp);
            //Тут хотелось бы вывести транспонированную матрицу,да бы убедиться то , что приведена верно.
 
            //Формирование союзной матрицы(Формула взята с учебника)
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
 
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
 
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            /*Итак получаем: a[i,j] - матрица 3x3;
             * d - определитель матрицы;
             * tmp - транспонированная матрица;
             * S[i,j] - союзная матрица;*/
 
            //Формируем обратную матрицу.
 
            Console.ReadKey();
 
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2013, 14:05
Ответы с готовыми решениями:

я здесь ошибаюсь, Можете ли вы помочь Код C#
я здесь ошибаюсь, Можете ли вы помочь using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Дописать LINQ код
Всем привет) есть вот такое Linq код , не могу дописать нужно что бы после сортировки над элементами которые вернули false выполнить...

Необходимо дописать код. Массивы
Дан массив A размера N. Сформировать два новых массива B и C: в массив B записать все положительные элементы массива A, в массив C - все...

6
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
20.05.2013, 14:19
Правильное транспонирование:
C#
1
2
3
4
5
6
7
8
9
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = i; j < a.GetLength(1); j++)
                {
                    var tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;  
                }
            }
Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
 
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
 
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
почитайте учебники...
0
 Аватар для Cheshire94
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 110
20.05.2013, 14:21  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
Правильное транспонирование:
C#
1
2
3
4
5
6
7
8
9
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = i; j < a.GetLength(1); j++)
                {
                    var tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;  
                }
            }
Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
 
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
 
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
почитайте учебники...
Формирование союзной матрицы и было взято из учебника
Как отобразить транспонированную матрицу после её транспонирования ?
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
20.05.2013, 14:24
Подправил, вручную формулы не проверял
Кликните здесь для просмотра всего текста
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
 
namespace CSharpConsoleTest
{
    class MainClass
    {
        static void PrintMatrix (double[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); i++) {
                for (int j = 0; j < matrix.GetLength(1); j++)
                    Console.Write ("{0}\t", matrix [i, j]);
                Console.WriteLine ();
            }
        }
 
        public static void Main (string[] args) {
            Console.Title = "Матричный метод решения систем";
            double[,] a = new double[3, 3] { { 1, 4, 7 }, { 9, 8, 12 }, { 6, 1, 0 } };
            double[,] S = new double[3, 3];
            Console.WriteLine("Имеем матрицу 3х3");
            PrintMatrix(a);
 
            //определитель матрици
            double d = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", d);
            Console.Write("----------------\n");
            if (d == 0)
            {
                Console.WriteLine("Матрица является вырожденной.");
                // Необходимо выйти из метода
                return;
            }
            //Транспонирование матрици
            double tmp;
            for (int i = 1; i < 3; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;
                }
            } 
            //Тут хотелось бы вывести транспонированную матрицу,да бы убедиться то , что приведена верно.
            Console.WriteLine("Транспонированная матрица:");
            PrintMatrix(a);
            
            //Формирование союзной матрицы(Формула взята с учебника)
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
                    
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
                    
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            /*Итак получаем: a[i,j] - матрица 3x3;
             * d - определитель матрицы;
             * tmp - транспонированная матрица;
             * S[i,j] - союзная матрица;*/
            
            //Формируем обратную матрицу.
            // Результат будем хранить в a[i,j]
            // Можете создать отдельную матрицу
            // double[i, j] matrixDiv = new double[3, 3];
            double detDiv = 1d / d;
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    a[i, j] = detDiv * S[i, j];
                }
            }
 
            Console.WriteLine("Обратная матрица:");
            PrintMatrix(a);
 
            Console.ReadKey(true);
        }
    }
}

Цитата Сообщение от Psilon Посмотреть сообщение
Правильное транспонирование:
Работает и ладно, от препода бы отвязаться
0
 Аватар для Cheshire94
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 110
20.05.2013, 14:29  [ТС]
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Подправил, вручную формулы не проверял
Кликните здесь для просмотра всего текста
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
using System;
 
namespace CSharpConsoleTest
{
    class MainClass
    {
        static void PrintMatrix (double[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); i++) {
                for (int j = 0; j < matrix.GetLength(1); j++)
                    Console.Write ("{0}\t", matrix [i, j]);
                Console.WriteLine ();
            }
        }
 
        public static void Main (string[] args) {
            Console.Title = "Матричный метод решения систем";
            double[,] a = new double[3, 3] { { 1, 4, 7 }, { 9, 8, 12 }, { 6, 1, 0 } };
            double[,] S = new double[3, 3];
            Console.WriteLine("Имеем матрицу 3х3");
            PrintMatrix(a);
 
            //определитель матрици
            double d = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", d);
            Console.Write("----------------\n");
            if (d == 0)
            {
                Console.WriteLine("Матрица является вырожденной.");
                // Необходимо выйти из метода
                return;
            }
            //Транспонирование матрици
            double tmp;
            for (int i = 1; i < 3; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;
                }
            } 
            //Тут хотелось бы вывести транспонированную матрицу,да бы убедиться то , что приведена верно.
            Console.WriteLine("Транспонированная матрица:");
            PrintMatrix(a);
            
            //Формирование союзной матрицы(Формула взята с учебника)
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    S[0, 0] = a[1, 1] * a[2, 2] - a[1, 2] * a[2, 1]; S[0, 1] = a[2, 0] * a[2, 1] - a[0, 1] * a[2, 2];
                    S[0, 2] = a[1, 0] * a[2, 1] - a[1, 1] * a[2, 0];
                    
                    S[1, 0] = a[2, 1] * a[0, 2] - a[0, 1] * a[2, 2]; S[1, 1] = a[0, 0] * a[2, 2] - a[0, 2] * a[2, 0];
                    S[1, 2] = a[0, 1] * a[2, 0] - a[0, 0] * a[2, 1];
                    
                    S[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2]; S[2, 1] = a[1, 0] * a[0, 2] - a[0, 0] * a[1, 2];
                    S[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            /*Итак получаем: a[i,j] - матрица 3x3;
             * d - определитель матрицы;
             * tmp - транспонированная матрица;
             * S[i,j] - союзная матрица;*/
            
            //Формируем обратную матрицу.
            // Результат будем хранить в a[i,j]
            // Можете создать отдельную матрицу
            // double[i, j] matrixDiv = new double[3, 3];
            double detDiv = 1d / d;
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    a[i, j] = detDiv * S[i, j];
                }
            }
 
            Console.WriteLine("Обратная матрица:");
            PrintMatrix(a);
 
            Console.ReadKey(true);
        }
    }
}


Работает и ладно, от препода бы отвязаться
C#
1
2
3
4
5
6
7
8
9
10
11
   for (int i = 0; i < 3; i++)
            {
                for (int j = i; j < i; j++)
                {
                    var tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;
                }
            }
            Console.WriteLine("Транспонированная матрица:");
            PrintMatrix(a);
В этом фрагменте.Вывходи обычную матрицу.
0
 Аватар для Cheshire94
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 110
20.05.2013, 14:34  [ТС]
Мой результат: (не верный (: )


Правильный результат:
0
 Аватар для Cheshire94
3 / 3 / 2
Регистрация: 05.11.2012
Сообщений: 110
20.05.2013, 17:22  [ТС]
Правильной выходит лишь диагональ.

Как у транспонированной матрицы.Так и у рбратной.

Матрицу успешно транспонировал!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
double[,] mT = new double[3, 3];
            // Транспонируем матрицу
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    mT[i, j] = a[j, i];
                }
            }
 
            // Вывод результата
            Console.Clear();
            Console.WriteLine("Транспонированая матрица:\n");
 
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" {0}", mT[i, j]);
                }
                Console.WriteLine();
            }
Добавлено через 1 час 28 минут
Дописал:
Формула союзной матрицы с книги , но вывводит не верно 1,1 и 1,3
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System;
 
namespace ConsoleApplication46
{
    class Program
    {
        static void Main(string[] args)
        {
            double[,] a = new double[3, 3] { { 2, 1, 1 }, { 1, -1, 0 }, { 3, -1, 2 } };
            Console.WriteLine("Имеем матрицу 3х3");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                    Console.Write("    {0}", a[i, j]);
            }
            //определитель матрици
            double dat = a[0, 0] * a[1, 1] * a[2, 2] - a[0, 0] * a[1, 2] * a[2, 1] - a[0, 1] * a[1, 0] * a[2, 2] + a[0, 1] * a[1, 2] * a[2, 0] + a[0, 2] * a[1, 0] * a[2, 1] - a[0, 2] * a[1, 1] * a[2, 0];
            Console.WriteLine("\nОпределитель матрицы={0}", dat);
            Console.Write("----------------\n");
            if (dat == 0)
            {
                Console.WriteLine("Матрица является выражденной.");
                return;
            }
            double[,] mT = new double[3, 3];
            // Транспонируем матрицу
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    mT[i, j] = a[j, i];
                }
            }
 
            // Вывод результата
            Console.WriteLine("Транспонированая матрица:\n");
 
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" {0}", mT[i, j]);
                }
                Console.WriteLine();
            }
            double[,] Y = new double[3, 3];
            //Найдем союзную матрицу.
            //Формирование союзной матрицы
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
 
                    Y[0, 0] = a[1, 0] * a[2, 2] - a[1, 2] * a[2, 1];
 
                    Y[0, 1] = a[1, 2] * a[2, 0] - a[1, 0] * a[2, 2];
 
                    Y[0, 2] = a[1, 1] * a[2, 1] - a[2, 0] * a[1, 1];
 
                    Y[1, 0] = a[0, 2] * a[2, 1] - a[0, 1] * a[2, 2];
 
                    Y[1, 1] = a[0, 0] * a[2, 2] - a[2, 0] * a[0, 2];
 
                    Y[1, 2] = a[2, 0] * a[0, 1] - a[0, 0] * a[2, 1];
 
                    Y[2, 0] = a[0, 1] * a[1, 2] - a[1, 1] * a[0, 2];
 
                    Y[2, 1] = a[0, 2] * a[1, 0] - a[0, 0] * a[1, 2];
 
                    Y[2, 2] = a[0, 0] * a[1, 1] - a[0, 1] * a[1, 0];
                }
            }
            Console.WriteLine("Союзная матрица");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" {0}", Y[i, j]);
                }
            }
            //обратная матрица
            double[,] obr = new double[3, 3];
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Y[i, j] = Y[i, j] / dat;
                }
            }
            Console.WriteLine("\nОбратная матрица");
            for (int i = 0; i < 3; i++)
            {
                Console.WriteLine();
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(" {0:f1}", Y[i, j]);
                }
            }
 
            Console.ReadKey();
 
        }
    }
}
Добавлено через 36 минут
Все сделал.Нашел ошибок.Все гуд работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2013, 17:22
Помогаю со студенческими работами здесь

Можно ли дописать код в Assembly?
здравствуйте, уважаемые форумчане. в .net имеются достаточно мощные средства для генерации кода, например CodeDom или...

Запись в файл (дописать код)
Ребят, помогите пожалуйста, есть код программы, нужно дописать case 4, чтобы можно было изменять введенную информацию (city, marka). ...

Дописать код, вычисляющий стоимость проданных товаров
Помогите дописать код, пожалуйста. Вот сама задача: &quot;Фирме принадлежат два магазина. Известна стоимость товаров, проданных в каждом...

Дописать код: сложение, вычитание, добавление к матрице числа
Создать класс матриц, размерность , является ли матрица диагональной,сложение,вычитание,добавление к матрице числа. Помогите дописать код. ...

Массив, вывод сообщения если в нет нуля. Надо дописать код
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru