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

Решание СЛАУ методом Гаусса в С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсия от рекурсии http://www.cyberforum.ru/cpp-beginners/thread92718.html
Люди, помогите! Я в с++ относительно недавно, в паскале-делфи никаких проблем не было. Значит мне нужно: int pekypc() { ... int pekypc() ... } int main()
C++ Обработка Битовых последовательностей Здравствуйте, помогите пожалуйста решить задачку. Тема: Обработка битовых последовательностей. Нужно реализовать алгоритм инвертирования n разрядов целого числа без знака начинающихся с p-той... http://www.cyberforum.ru/cpp-beginners/thread92710.html
Написать программу для решения сложных выражений. C++
Написать программу для решения выражений. http://s004.***********/i205/1002/6e/2bd2fa636b69.jpg помогите, завтра сдавать, а у нас ни одной лекции небыло и не будет(
Преобразование арабских чисел в римские C++
2. Программа для преобразования числа, введённого арабскими цифрами в римское число, и наоборот.
C++ Как правильно округлить? http://www.cyberforum.ru/cpp-beginners/thread92682.html
Кратко условие: произвожу ввод времени времени в формате hours/min/sec( переменные t1 и t2), перевожу в секунды, складываю и делаю перевод обратно. Происходит неправильное округление секунд:...
C++ удаление записи с фаила подскажитэ пожайлуста каким образом можна удалить запись из файла, например есть текстовый фаил внем скажем скажем 5 записей(в даном случае обектов) записано. Каким образом можна из его удалить... подробнее

Показать сообщение отдельно
jung
2 / 2 / 1
Регистрация: 25.11.2009
Сообщений: 40
05.02.2010, 18:50
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#include <conio.h>
 
#include <stdio.h>
 
#include <iostream.h>
 
#include <math.h>
 
const int N = 40
 
//Решение системы линейных уравнений
 
int main() {
 
int n;
 
bool ocenka=true, bl;
 
const eps=1.0e-30; //Точность решения
 
int nmk,j,ip,np1mj,np1,ipivot,ic,i,k,ir;
 
double pivot,b; //pivot - опорное значение
 
/*Расширенная матрица неизвестных и свободных членов */
 
double a[N+1][N+2]; 
 
printf("Решение системы линейных уравнений \n");
 
printf("Введите размерность системы уравнений: \n");
 
cin>>n;
 
for (i=1;i<=n;i++) {
 
printf("\nВводите через пробел элементы");
 
printf(" и свободный член уравнения %d\n",i);
 
for (j=1;j<=n+1;j++)
 
cin>>a[i][j];
 
}
 
 
np1=n+1; // Имя столбца свободных членов
 
ic=1;
 
ir=1;
 
do {
 
pivot=a[ir][ic]; // Выбор опорного значения
 
ipivot=ir; // Опорная строка
 
for (i=ir;i<=n;i++)
 
if (fabs(a[i][ic])>fabs(pivot)) //Опорное значение = макс. в столбце
 
{
 
pivot=a[i][ic];
 
ipivot=i; //Опорная строка
 
}
 
if (fabs(pivot)<=eps ) //Если все коэффициенты столбца ≈ 0
 
{
 
printf("Определитель равен нулю. Решения нет");
 
ocenka=false;
 
getch();
 
return !ocenka; // Останов программы
 
}
 
if (ipivot!=ir) // Перемещение опорной строки
 
for (k=ic;k<=np1;k++)
 
{
 
b=a[ipivot][k];
 
a[ipivot][k]=a[ir][k];
 
a[ir][k]=b;
 
}
 
 
for (k=ic;k<=np1;k++) // Приведение строки к общему знаменателю
 
a[ir][k]=a[ir][k]/pivot;
 
bl=(ir!=n);
 
if (bl)
 
{
 
for (ip=ir+1;ip<=n;ip++)
 
{
 
b=a[ip][ic];
 
if (fabs(b)>eps)
 
for (k=ic;k<=np1;k++)
 
a[ip][k]=a[ip][k]-a[ir][k]*b; // Сокращение элемента
 
}
 
ir++; //Переход к сокращению элемента
 
ic++; //в следующей строке
 
}
 
} while (bl);
 
for (k=1;k<=n-1;k++) // Цикл вычисления неизвестных
 
{ //(ими замещаются свободные члены)
 
nmk=n-k;
 
for (j=1;j<=k;j++)
 
{
 
np1mj=np1-j;
 
a[nmk][np1]=a[nmk][np1]-a[nmk][np1mj]*a[np1mj][np1];
 
}
 
}
 
printf("Решение:\n") // Печать результата;
 
for (i=1;i<=n;i++) {
 
printf("x(%2i)=%10.5lf\n",i,a[i][n+1]);
 
};
 
printf("press eny key for quit");
 
getch();
 
return !ocenka;
 
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru