Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sergey_Pritula
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 2
#1

Найти определитель матрицы, с помощью разложения её по строке - C++

07.08.2014, 04:32. Просмотров 817. Ответов 4
Метки нет (Все метки)

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

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
#include "iostream"
 
int det(int mas[10][10], int n,int t)
{
    int i, j, k, m, l, s = 0 , b = 0 , p=0, d[10][10];
    if (n < 3)
    {
        return ((mas[0][0] * mas[1][1]) - (mas[0][1] * mas[1][0]));
    }
    else
    {
        k = 0;
        l = 0;
        m = 0;
        for (i = 0; i < n; i++)
        {
            m = 0;
            for (j = 0; j < n; j++)
            {
                if (!((i == k) || (j == t)))
                {
                    d[l][m] = mas[i][j];
                    m++;
                }
            }
            if (i != k) l++;
        }
        for (i = 0; i < l; i++)
        {
            std::cout << std::endl;
            for (j = 0; j < l; j++)
            {
                std::cout << d[i][j] << " ";
            }
        }
        system("pause");
        for (s = 0; s < n - 1; s++)
        {
        b += mas[k][s] * pow(((k+1)+(s+1)),-1) *det(d, n - 1, s);
        }
    }
    return b;
}
 
int main()
{
    int i, j, k, n, m, l, t, r=0, mas[10][10];
    k = 0;
    while (k == 0)
    {
        system("cls");
        std::cout << "Enter a size of matrix : ";
        std::cin >> n;
        if ((n > 1) && (n < 10)) k = 1;
        else k = 0;
    }
    for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)
    std::cin >> mas[i][j];
    system("cls");
    for (i = 0; i < n; i++)
    {
        std::cout << std::endl;
        for (j = 0; j < n; j++)
        {
            std::cout << mas[i][j] << " ";
        }
    }
    std::cout << std::endl;
    for (j=0,i = 0; i < n; i++)
    {
    r +=  det(mas, n, i);
    std::cout << std::endl;
    system("pause");
    }
    std::cout << std::endl << r << std::endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2014, 04:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти определитель матрицы, с помощью разложения её по строке (C++):

Определитель матрицы, разложением по произвольной строке - C++
Здравствуйте. Помогите передать этот код. Здесь считается определитель матрицы, путем разложения, но первой строке, а мне нужно по...

Найти ошибку (Вычисление функции с помощью разложения в ряд) - C++
Итак,проблема с разницей в показаниях Задание #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;cmath&gt;...

Найти значение функции c заданной точностью с помощью разложения в ряд Тейлора - C++
Найти значение функции √(1+x) в точке х (-1≤x≤1) c заданной точностью с помощью разложения в ряд: √(1+x)=1+1/2 x-1/8 x^2+1/16 x^3-5/128...

Найти определитель матрицы - C++
Нужно найти определитель матрицы, НО числа чтобы были десятичные. Целые считает, а вот десятичные никак... #include &quot;stdafx.h&quot; #include...

Найти определитель матрицы - C++
Помогите пожалуйста. У меня дана матрица и нужно найти ее определитель, помогите...:cry: #include &lt;iostream&gt; #include &lt;conio.h&gt; ...

Найти определитель матрицы - C++
Написать прогу на с++ : нахождение определителя матрицы методом квадратного корня. Кто сможет помогите пожалуйста((

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Alexandr_1982
176 / 72 / 17
Регистрация: 04.11.2013
Сообщений: 382
Записей в блоге: 4
07.08.2014, 08:00 #2
C++
1
pow(((k+1)+(s+1)),-1)
Аргументы у вызова функции нужно поменять местами, так как в степень возводится -1.
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
07.08.2014, 08:03 #3
Alexandr_1982, тогда уж не pow использовать, а что-то типа:
C++
1
(0 == ((k+1)+(s+1)) % 2) ? 1 : -1
Sergey_Pritula
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 2
08.08.2014, 05:22  [ТС] #4
Alexandr_1982 , когда поменял местами, то правильный ответ начало находить только для единичной матрицы, а для остальных по - прежнему неправильно находит.

Добавлено через 11 часов 31 минуту
Всем спасибо , сам дописал , чтоб все было Ок
Roman_Baranov
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 7
21.09.2014, 16:25 #5
(((

Добавлено через 1 минуту
скажи пожалуйста как дописал что правильно все стало ?)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2014, 16:25
Привет! Вот еще темы с ответами:

Найти определитель матрицы - C++
Всем доброго приятного вечера!! Не могу написать программу на такую вот(см.на рис.) задачу, если мне не решить до завтра мне капец светит...

Найти определитель матрицы - C++
дана матрица второго порядка (a_b; c_d)найти определитель матрицы!

Найти определитель матрицы - C++
Для матрицы NxN определитель задаётся рекурсивно: кто нить может пояснить как записать проше на с++???

Найти определитель матрицы - C++
Доброго времени суток. Есть такая задача Вся проблема в том, что не понимаю значения слов: Матрица B получена из матрицы A по...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.09.2014, 16:25
Ответ Создать тему
Опции темы

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