Форум программистов, компьютерный форум, киберфорум
Наши страницы

Симплекс метод - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Бинарное дерево http://www.cyberforum.ru/cpp-beginners/thread133918.html
Добрый день! Помоги плиз дорешать задачу! Задание: Определить в Сбалансированном Дереве целых чисел указатель на элемент, предшествующий максимальному элементу. Программа вроде работала, но когда...
C++ кто пишет в borland c 3.1 не можете скинуть файл? плиз киньте у кого Xp файл C:\WINDOWS\system32\ntvdm.exe мне на мыло vkres@rambler.ru http://www.cyberforum.ru/cpp-beginners/thread133903.html
C++ тема функции вижуал с++. Исправьте ошибки
Для заданного числа N>1 построить последовательность чисел фибоначчи А(0), А(1), .... А(n), которые изменяются по закону А(0)=А(i-1)+A(i-2). Определить значение третьего четного числа. int...
Перевод типов в библиотеке MPIR C++
Просмотрел всю документацию по библиотеке MPIR, но так и не нашел информации по способу перевода значений из типа mpz_class в int. Как можно это сделать? Из int в mpz_class переход происходит по...
C++ Заполнение матрицы смежности http://www.cyberforum.ru/cpp-beginners/thread133894.html
Задача в следующем: выдать в файл матрицу смежности, где на главной диагонали должны стоять нули, а остальные элементы которой заполняются случайными числами. Написал такой вот код и где-то допустил...
C++ WINAPI WinMain WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm4), &Form4); Application->Run(); } catch (Exception... подробнее

Показать сообщение отдельно
nasmon
0 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 18

Симплекс метод - C++

22.05.2010, 23:50. Просмотров 6050. Ответов 2
Метки (Все метки)

почему незапускается прога
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <string.h>
using namespace std;
 
fstream in( "lptask.txt", ios_base::in );
 
double tbl[4][8]={
{3, 11, 0, 0, 0, 0, 0, 0},
{-3, 8, 1, 0, 0, 30, 0, 2},
{2, 7, 0, 1, 0, 62, 0, 3},
{1, 6, 0, 0, 1, 98, 0, 4}
};
int m=8,n=4, col, row;
 
 
void input_tbl() { // Г§Г*ïîëГ*ГҐГ*ГЁГҐ ñèìïëåêñ-ГІГ*áëèöû Г·ГІГҐГ*ГЁГҐГ¬ ââîäГ*
int i=0, j=0;
while(true) {
string x;
in >> x;
if( x == "/" ) {
if( j==0 ) break;
if( i==0 ) m = j + 1;
else {
int j1; in >> j1;
tbl[i][m+1] = j1;
}
tbl[i][m] = 0;
j = 0;
++i;
continue;
}
tbl[i][j] = atof(x.c_str());
++j;
}
n = i;
tbl[0][m-1] = 0;
tbl[0][m+1] = 0;
}
 
void output_tbl() { // âûâîäèò ГІГ*áëèöó ñèìïëåêñ-ìåòîäГ* Гў óäîáГ*îì äëÿ Г·ГІГҐГ*ГЁГї âèäå
for( int i=0; i<n; ++i ) {
for( int j=0; j<=m+1; ++j ) {
cout << setw(9) << tbl[i][j];
}
cout << "\n";
}
}
 
void choose_col_row() { // îïðåäåëÿåò âåäóùèé ñòîëáåö è âåäóùóþ ñòðîêó
 
col = 0;
bool flag = (tbl[0][col] < 0);
for( int j=0; j<m; ++j ) {
double ci = tbl[0][j];
if( ci<0 && ci<tbl[0][col] ) {
flag = true;
col = j;
}
}
if( !flag ) {
col = -1;
row = -1;
return;
}
 
for( int i=1; i<n; ++i ) {
if( tbl[i][m] != 0 ) continue;
double den = tbl[i][col];
if( den == 0 )
tbl[i][m] = 1.e100;
else
tbl[i][m] = tbl[i][m-1]/den;
}
row = 1;
for( int i=1; i<n; ++i ) {
if( tbl[i][m] < tbl[row][m] ) row = i;
}
if( tbl[row][m] >= 1.e98 ) row = -1;
}
 
void transform() {
double den = tbl[row][col];
for( int j=0; j<m; ++j ) {
tbl[row][j] /= den;
}
for( int i=0; i<n; ++i ) {
if( i == row ) continue;
double k = tbl[i][col];
for( int j=0; j<m; ++j ) {
tbl[i][j] -= k*tbl[row][j];
}
}
tbl[row][m+1] = col;
 
for( int i=1; i<=n; ++i ) {
tbl[i][m] = 0;
}
tbl[row][m] = 1e100;
}
 
bool solve() { // ðåøГ*ГҐГІ Г§Г*Г¤Г*Г·Гі - âûïîëГ*ГїГҐГІ Г*ГіГ¦Г*Г® êîëè÷åñòâî ГЁГІГҐГ°Г*öèé
while(1) {
cout << "\n";
 
choose_col_row();
 
output_tbl();
cout << "col = " << col << "\n";
cout << "row = " << row << "\n";
 
if( col == -1 ) {
cout << "\nnajdeno optimalnoe reshenie\n";
return true;
}
if( row == -1 ) {
cout << "\nluchevoe reshenie\n";
return false;
}
 
transform();
}
}
 
int main(void) { // ГЈГ«Г*ГўГ*Г*Гї òî÷êГ* âõîäГ*
 
input_tbl();
 
bool flag = solve();
 
if( flag ) {
for( int i=1; i<n; ++i ) {
cout << tbl[i][m+1] << " = " << tbl[i][m-1] << "\n";
}
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru