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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчитать сколько раз элементы массива меняют знак http://www.cyberforum.ru/cpp-beginners/thread569093.html
Дан массив ненулевых целых чисел. Определить сколько раз элементы массива, при просмотре от его начала, меняют знак. #include <iostream> #include <ctime> using namespace std; int main () {...
C++ подскажите, как можно сохранить переменную, вводимую во время работы программы после ее закрытия допустим есть переменная a ... int a; cin>>a; ... при повторном открытии программы переменная нигде не сохранится. как ее сохранить? заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread569080.html
Составные типы данных в процедурах и функциях C++
Кто может помогите решить задачу: Описать процедуру RemoveRows(A, M, N, K1, K2), удаляющую из вещественной матрицы A размера M × N строки с номерами от K1 до K2 включительно (предполагается, что 1...
домино C++
нужен исходик игры домино на с++ builder в нете нашол ток на делфи . помогите программа оч надо
C++ Найти самое длинное слово http://www.cyberforum.ru/cpp-beginners/thread569017.html
входной файл содержит некоторый текст,состоящий из слов, разделенных одним пробелом. составить программный код, в котором анализируются содержащиеся там слова, и выдаётся самое длинное слово. ...
C++ Ошибка при сравнении символов 1) НЕ могу понять в чем ошибка при сравнении символов вот пример одной: Энтропия.cpp(18): error C2446: ==: нет преобразования "const char *" в "int" Не существует контекста, в котором... подробнее

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

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

09.05.2012, 02:57. Просмотров 2682. Ответов 3
Метки (Все метки)

Осталось как обычно пару дней до сдачи курсовой, а она еще не готова! Помогите пожалуйста.
Вот код, который чуть-чуть работает
Главная проблема в том, чтобы привести систему к диагональному виду без дробных коэффициентов, там возможно 0/0.... линейную комбинацию осуществить нужно верно. Однако нужно произвести сортировку так, чтобы на диагонали при каждом шаге не было "0". И сложно с обратным ходом.
Помогите, умоляю!!!!!

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
// курсовая.cpp : Defines the entry point for the console application.
 // курсовая.cpp: определяет точку входа для консольного приложения.
 //
 
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
#include <cstdlib>
#include <cstdlib>
using namespace std;
 
bool CProg()
 {
cout << "\n" << "Продолжим? (1-да) "<<"\t";
char c;
 cin >> c;
return c=='1';
}
 
 int main ()
 {
setlocale (0,"");
do
 {
int i(0), j(0);
 cout << "Введите число неизвестных" << endl;
cin >> n;
int MassivA[20][20], MassivC[20], MassivItog[20][20];
double x[20];
cout << "Введите коэффициенты" << endl;
for ( i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
 cin >> MassivA [i][j];
 cout << endl;
 }
cout << "Введите солбец свободных членов" << endl;
for ( i = 0; i < n; ++i)
 {
cin >> MassivC [i];
 cout << endl;
 } 
//заполняем окончательный массив 
for ( i = 0; i < n; ++i)
 {
for ( j = 0; j < n; ++j)
 MassivItog[i][j] = MassivA [i][j];
for ( j = n; j < n+1; ++j)
 MassivItog[i][j] = MassivC [i];
 }
cout <<"Полная система" << endl;
for ( i = 0; i < n; ++i)
{
for (j = 0; j < n +1; ++j)
{
 cout.setf(ios::left);
 cout.width (7);
 cout << MassivItog [i][j] << '\t';
 }
 cout << endl;
 }
cout << "------------------------------------------------" << endl;
// сортировка на диагональных местах не должно быть "0", нужно соединить с прямым ходом
for (i = 0; i < n - 1 ; ++i)
for (j = 0; j < n+1 ; ++j)
if (MassivItog[i][j] == 0)
if (MassivItog[i+1][j] != 0)
 {
int t = MassivItog[i][j];
 MassivItog[i][j] = MassivItog[i+1][j];
 MassivItog[i+1][j] = t;
 }
//прямой ход
for (i = 0; i < n ; ++i) 
{
int a = MassivItog[i][i];
for (j = i + 1; j < n; ++j)
 {
int b = MassivItog[j][i];
for ( int k = 0; k < n+1; ++k)
MassivItog[j][k] = a * MassivItog[j][k] - b * MassivItog[i][k];
 }
 }
cout << "-------------------------------" << endl;
for ( j = 0; j < n; ++j)
{
for (int k = 0; k < n + 1 ; ++k)
{
 cout.setf(ios::left);
 cout.width (7);
 cout << MassivItog [j][k] << '\t';
 }
 cout << endl;
 }
 
 //вывод матрицы треугольного вида
 cout <<"Матрица приведенная к треугольному виду:"<< endl;
for (j = 0; j < Sys.n; j++)
 {
for (i = 0; i < Sys.n + 1; i++)
{
 cout.setf(ios::left);
 cout.width (7);
 cout << MassivItog[j][i] << '\t';
 }
 cout << endl;
 }
 
//обратный ход еще не осуществлен
 
 
 }
while (CProg());
}
0
Вложения
Тип файла: doc курсовая.doc (38.0 Кб, 43 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru