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

Подстроение алгоритма определителя - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа таймер http://www.cyberforum.ru/cpp-beginners/thread642406.html
Всем привет, подскажите плз как написать программу, которая с момента первого запуска включает таймер, а по истечении времени (5 мес), запускает бат файл, который сносит винду.
C++ не работает sqrt декомпозиция Добрый день, пытался разобраться с sqrt-декомпозицией. Суть понял, но вот код не хочет работать. точнее он не хочет работать правильно. вот код: #include<iostream> #include<cmath> #include<cstdlib> #include<cstdio> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread642394.html
C++ Задача "Водолей"
Вот условие: У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции: Наполнить сосуд A (обозначается >A). Наполнить сосуд B (обозначается >B). Вылить воду из сосуда A (обозначается A>). Вылить воду из сосуда B (обозначается B>). Перелить воду из сосуда A в сосуд B (обозначается как...
Двоичные файлы C++
У меня есть код программы работающий с текстовыми файлами, #include <iostream> #include <conio.h> #include <cstdlib> #include <locale.h> #include <string.h> #include <fstream> using namespace std;
C++ Реализация собственного умного укзателя http://www.cyberforum.ru/cpp-beginners/thread642344.html
Доброго времени суток! При самостоятельной реализации умного указателя столкнулся с проблемой при удалении самого указателя. Код программы имеет вид: #pragma once template <class Object> class Smart_ptr {
C++ Описать класс "Конус" Язык С 1. Опишите класс "Конус" Данные класса: координаты центра основания, радиус основания, высота. Конструкторы класса: конструктор по умолчанию, конструктор конуса с центром в начале координат, конструктор произвольного конуса. 2. Определите методы: ввод конуса, вывод на экран, определение площади поверхности, определение объёма конуса. 3.Объявите конус с центром в начале координат и... подробнее

Показать сообщение отдельно
Nuclear_Razor
49 / 2 / 0
Регистрация: 22.07.2012
Сообщений: 103
Записей в блоге: 1
25.08.2012, 15:12     Подстроение алгоритма определителя
Доброго времени суток уважаемые форумчане! Мне уже надоело искать нормальный и рабочий алгоритм для вычисления определителя. Есть два кода: первый - мой, для решения СЛАУ методом Гаусса, а второй - это рабочий для вычисления определителя (считает все верно), проблема в том, что не могу второй алгоритм подстроить под мою программу, матрицы размером 3x3 уже считает неверно....прошу вашей помощи.

Основная часть кода моей программы:

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
    
int  a[10][10];
int  I=0, J=0;
 
        cout <<"\nВведите кол-во строк в матрице :\n";scanf("%d",&I);
    cout <<"\nВведите кол-во столбцов в матрице :\n";scanf("%d",&J);
    
    cout << "Введите элементы матрицы:\n";
 
        for(int i=0;i<I;i++)
            for(int j=0;j<J;j++)
                scanf("%d",&a[i][j]);
 
    cout << "Введенная матрица имеет вид:\n";
    
 
        for (int i=0;i<I;i++)
        {
            for(int j=0;j<J;j++)
    
            printf("\t%6.1d",a[i][j]);
            printf("\n");
        }
 
//Определитель
int j,x,y;
double k;
for (x=0;x<(I-1);x++)
{
 
for (y=(x+1);y<I;y++)
{
k=-a[y][x]/a[x][x];
for (j = 0;j< I;j++)
{
        a[y][j]+=k*a[x][j];
        if (abs(a[y][j]) < EPS) a[y][j]=0;
}
}
}
int det=1;
for(int i=0;i<I;i++)
det*=a[i][i];
 
 cout <<"\nОпределитель:" << det << "\n";
Полный код для вычисления определителя:

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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#define ESP 0.000000001
 
using namespace std;
 
int n;
double d;
 
void imas(double** X,int n);
void omas(double** X,int n);
void det(double** a,int n);
//void max(double** a,int x);
 
void main()
{
cout << "\nrazmernoct kvadratnoi matrix A(nxn)";
 
cin >> n;
double **A;
A=(double**)calloc(n,sizeof(double)); //Amn
for(int i=0;i<n;i++)
A[i]=(double*)calloc(n,sizeof(double));
 
imas(A,n);
omas(A,n);
det(A,n);
delete A;
getch();
}
//-----------------------------------
void imas(double** X,int n)
{
cout << "\nVvod matrix "<<n <<" x "<<n <<"\n";
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin >> X[i][j];
}
 
void omas(double** X,int n)
{
int i,j;
for(i=0;i<n;i++)
{
cout <<"\n";
for( j=0;j<n;j++)
cout<< X[i][j]<<"\t";
}
cout << "\n";
}
 
void det(double** a,int n)
{
int j,x,y;
double k;
for (x=0;x<(n-1);x++)
{
 
for (y=(x+1);y<n;y++)
{
k=-a[y][x]/a[x][x];
for (j = 0;j< n;j++)
{
a[y][j]+=k*a[x][j];
if (fabs(a[y][j]) < ESP) a[y][j]=0;
}
}
}
double det=1;
for(int i=0;i<n;i++)
det*=a[i][i];
cout <<"\ndet= "<< det;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru