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

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

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

Написать программу для поиска определителя до 10 порядка включительно - C++

08.03.2014, 11:42. Просмотров 446. Ответов 4
Метки нет (Все метки)

Здравствуйте. Очень нужна помощь. Нужно написать программу для поиска определителя до 10 порядка включительно. На форуме есть множество программ, но я не до конца понимаю, как они работают. Очень благодарен буду за любую помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 11:42     Написать программу для поиска определителя до 10 порядка включительно
Посмотрите здесь:

Написать рекурсивную программу для алгоритма бинарного поиска - C++
Написать рекурсивную программу для алгоритма бинарного поиска.

Написать программу для поиска всех элементов в массиве за заданным ключом - C++
#include <iostream> #include <ctime> using namespace std; int i, N; //линейный поиск int LineSearch(int A, int key) { for...

Рекурсия. Написать программу поиска минимального пути для произвольной пары городов - C++
Привет. Помогите пожалуйста решить задачку: Расстояния между городами заданы матрицей (Если между городами i,j есть прямой путь с...

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

Написать функцию для вычисления определителя матрицы - C++
Нужна функция для вычисления ОПРЕДЕЛИТЕЛЯ матрицы, аргументами которой будет количество строк в матрице N и сама матрица. п.с. или ссылку...

Написать функцию для нахождения определителя квадратной матрицы - C++
Здравствуйте! Помогите, пожалуйста, написать функцию для нахождения определителя квадратной матрицы

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gunslinger
случайный прохожий
1132 / 750 / 191
Регистрация: 20.07.2013
Сообщений: 2,067
08.03.2014, 13:12     Написать программу для поиска определителя до 10 порядка включительно #2
http://ru.wikipedia.org/wiki/%D0%9E%...B5%D0%BB%D1%8C
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
08.03.2014, 20:58  [ТС]     Написать программу для поиска определителя до 10 порядка включительно #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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
 
int determ(int** Arr, int size);
 
int main()
{
        int size;
        cout<<"Vveite size";
            cin>>size;
        int **Arr;
        Arr=new int*[size];
        for(int i=0;i<size;++i)
                Arr[i]=new int[size];
        for(int i=0;i<size;++i)
                for(int j=0;j<size;++j)
                        cin>>Arr[i][j];
        for(int i=0;i<size;++i)
        {
                for(int j=0;j<size;++j)
                       cout<<Arr[i][j]<<' ';
              cout<<endl;
        }
         cout<< determ(Arr, size) <<'\n';
        for(int i=0;i<size;++i)
                delete[] Arr[i];
        delete[] Arr;
        system("pause");
        return 0;
}
 
int determ(int** Arr, int size)
{
        int i,j;
        double det=0;
        int **matr;
        if(size==1)
        {
                det=Arr[0][0];
        }
        else if(size==2)
        {
                det=Arr[0][0]*Arr[1][1]-Arr[0][1]*Arr[1][0];
        }
        else
        {
                matr=new int*[size-1];
                for(i=0;i<size;++i)
                {
                        for(j=0;j<size-1;++j)
                        {
                                if(j<i) 
                                        matr[j]=Arr[j];
                                else
                                        matr[j]=Arr[j+1];
                        }
                        det+=pow(-1, (i+j))*determ(matr,size-1)*Arr[i][size-1];
                }
                delete[] matr;
        }
        return det;
}
freemanc
12 / 12 / 1
Регистрация: 27.11.2012
Сообщений: 140
08.03.2014, 21:13     Написать программу для поиска определителя до 10 порядка включительно #4
avatar1870,
Используйте метод Гаусса. Разбор по косточкам: http://math.semestr.ru/gauss/opred.php
Реализация:
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
#include <iostream.h>
#include <conio.h>
 
struct Matrix
{
        int Size;
        float ** Matr;
};
 
void SetMemory(Matrix &matrix)
{
        cout<<"Enter the size of matrix: ";
        cin>>matrix.Size;
        matrix.Matr = new float*[matrix.Size];
        for(int i=0; i<matrix.Size; i++)
                matrix.Matr[i] = new float[matrix.Size];
 
}
 
void SetMatrix(Matrix &matrix)
{
        for(int i=0; i<matrix.Size; i++)
                for(int j=0; j<matrix.Size; j++)
                {
                        cout<<"A["<<i+1<<"]["<<j+1<<"] = ";
                        cin>>matrix.Matr[i][j];
                }
 
}
 
void ShowMatrix(Matrix matrix)
{
        for(int i=0; i<matrix.Size; i++)
        {
                for(int j=0; j<matrix.Size; j++)
                        cout<<matrix.Matr[i][j]<<'\t';
                cout<<endl;
        }
}
 
float detA(Matrix &matrix)
{
        int n = matrix.Size;
        float k = 0;
        bool check = true;
        int ind1=0, ind2=0;
        float result = 1;
 
       for(int t=0; t<n-1; t++)
       {
           for(int i=t+1; i<n; i++)
           {
 
                    for(int j=t; j<n; j++)
                    {
                            if(check == true)
                            {
                                    check = false;
                                    k = (-matrix.Matr[i][j]) / matrix.Matr[ind1][ind2];
                            }
                            matrix.Matr[i][j] += matrix.Matr[ind1][ind2] * k;
                            ind2++;
                    }
                    check = true;
                    ind2 = t;
           }
           ind1++;
           ind2++;
       }
       for(int i=0; i<n; i++)
            for(int j=0; j<n; j++)
                if(i == j)
                    result *= matrix.Matr[i][j];
       return result;
}
 
void main()
{
        srand(time(NULL));
        float result;
        Matrix matrix;
        SetMemory(matrix);
        SetMatrix(matrix);
        result = detA(matrix);
        ShowMatrix(matrix);
        cout<<"\ndetA = "<<result<<endl;
        _getch();
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2014, 23:09     Написать программу для поиска определителя до 10 порядка включительно
Еще ссылки по теме:

Код вычисления определителя матрицы до 10-го порядка - C++
Мне очень нужен код программы для вычисления определителя матрицы до 10-го порядка.

Нахождение определителя матрицы n-го порядка без рекурсии - C++
Здравствуйте, мне на дом дали задачу на С++ написать программу которая находит определитель матрицы n го порядка, я довольно быстро её...

Улучшение алгоритма вычисления определителя матрицы, порядка n>3 - C++
Всем доброго времени суток, я достаточно долго искал шаблон кода для вычисления определителя квадратной матрицы, нашел на просторах рунета...

Написать программу поиска файлов - C++
Здравствуйте. Как можно вывести код,что бы искалась информация во всех файлах,которые есть на пк,а потом вывадился нужный файл с этой...

Написать программу поиска знаков пунктуации в строках - C++
Задача: Написать программу поиска знаков пунктуации в строках. Программа должна позволить ввести символьную строку, содержащую знаки...

Написать программу поиска чисел, лежащих в интервале от -5 до 5 - C++
на си: Написать программу поиска чисел, лежащих в интервале от -5 до 5, в последовательности чисел, вводимых с клавиатуры, предшествующих...


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

Или воспользуйтесь поиском по форуму:
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
08.03.2014, 23:09  [ТС]     Написать программу для поиска определителя до 10 порядка включительно #5
К сожалению Гаус не подходит
Yandex
Объявления
08.03.2014, 23:09     Написать программу для поиска определителя до 10 порядка включительно
Ответ Создать тему
Опции темы

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