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

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

Войти
Регистрация
Восстановить пароль
 
Nas'tya
Сообщений: n/a
#1

Вычислить определитель по первой строке - C++

01.06.2010, 18:16. Просмотров 850. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста, в момент компиляции программа выдает 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
#include <iostream.h> 
#include <conio.h> 
#include <math.h> 
int** csmatr(int**,int); 
double determinant(int**,int); 
void main(void) 
{ 
int **a,i,N,**matr; 
clrscr(); 
cout<<"Введите порядок матрицы: "; cin>>N; 
cout<<'\n'; 
a=csmatr(matr,N);  
cout<<"Определитель матрицы = "<<determinant(a,N); 
for (i=0;i<=N-1;i++) delete a[i]; 
delete a; 
 
getch(); 
} 
 
int** csmatr(int **matr,int N) 
{ 
int i,j; 
matr=new int*[N]; 
for (i=0;i<=N-1;i++) {matr[i]=new int[N];} 
 
return matr; 
 
} 
 
double determinant(int **a, int N) 
{ 
int i,j; 
int **matr1; 
 int sign=1; 
double determ=0; 
 
if (N==2) 
{ 
determ=a[0][0]*a[1][1]-a[0][1]*a[1][0]; 
} 
else 
{ 
matr1=new int*[N-1]; 
 
for(i=0;i<N;i++) 
{ 
for(j=0;j<N-1;j++) 
{ 
if(j<i) {matr1[j]=a[j];} 
else {matr1[j]=a[j+1];} 
} 
determ+=pow(-1,(i+j))*determinant(matr1,N-1)*a[i][N-1]; 
} 
delete matr1; 
} 
 
return determ; 
cout<<'\n'; 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2010, 18:16     Вычислить определитель по первой строке
Посмотрите здесь:

Вычислить определитель вещественной мартицы C++
C++ Вычислить определитель квадратной матрицы
C++ Вычислить определитель матрицы третьего порядка
Вычислить определитель матрицы 3х3 C++
C++ Строки: уничтожить в строке запятые перед первой точкой, заменить знаком + все цифры 3я после первой точки
Вычислить определитель треугольной матрицы C++
Определитель матрицы, разложением по произвольной строке C++
C++ В прямоугольной матрице найти сумму элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу.
Найти определитель матрицы, с помощью разложения её по строке C++
C++ Поменять местами наибольший элемент в первой строке матрицы с наименьшим элементом в третьей строке
Вычислить определитель матрицы C++
C++ Если минимальный элемент матрицы стоит в первой строке, то элементы, стоящие в строке за ним, заменить нулями

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir616
111 / 111 / 3
Регистрация: 05.07.2009
Сообщений: 224
01.06.2010, 19:31     Вычислить определитель по первой строке #2
Некоторые моменты для меня остались непонятны ( например таинственная функция clrscr(), заменённая мною на system("cls") ) + придал коду более-менее читаемый вид.

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
#include <iostream> 
#include <conio.h> 
#include <math.h> 
using namespace std;
int** csmatr(int**,int); 
double determinant(int**,int); 
void main(void) 
{
    setlocale(LC_ALL, "rus");
    int **a,i,N,**matr=0; 
    system("cls");
    cout<<"Введите порядок матрицы: ";
    cin>>N; 
    cout<<'\n'; 
    a = csmatr(matr,N);  
    cout<<"Определитель матрицы = "<<determinant(a,N); 
    for(i=0;i<=N-1;i++)
        delete a[i]; 
    delete a;
    getch(); 
} 
 
int** csmatr(int **matr,int N) 
{ 
    int i; 
    matr=new int*[N]; 
    for(i=0;i<=N-1;i++)
        matr[i]=new int[N]; 
    return matr; 
} 
 
double determinant(int **a, int N) 
{ 
    int i,j; 
    int **matr1; 
    int sign=1; 
    double determ=0; 
    if (N==2) 
        determ=a[0][0]*a[1][1]-a[0][1]*a[1][0]; 
    else 
    {
        matr1=new int*[N-1]; 
        for(i=0;i<N;i++) 
        { 
            for(j=0;j<N-1;j++) 
            { 
                if(j<i)
                    matr1[j]=a[j];
                else 
                    matr1[j]=a[j+1];
            } 
            determ+=pow(-1.0,(i+j))*determinant(matr1,N-1)*a[i][N-1]; 
        } 
        delete matr1; 
    } 
    return determ;
}
Yandex
Объявления
01.06.2010, 19:31     Вычислить определитель по первой строке
Ответ Создать тему
Опции темы

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