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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Рекурсия от рекурсии http://www.cyberforum.ru/cpp-beginners/thread92718.html
Люди, помогите! Я в с++ относительно недавно, в паскале-делфи никаких проблем не было. Значит мне нужно: int pekypc() { ... int pekypc() ... } int main()
C++ Обработка Битовых последовательностей Здравствуйте, помогите пожалуйста решить задачку. Тема: Обработка битовых последовательностей. Нужно реализовать алгоритм инвертирования n разрядов целого числа без знака начинающихся с p-той позиции. Оставшиеся разряды остаются без изменения. Значения переменной подлежащей преобразованию а также значения n и p вводятся с клавиатуры. Результат выводится на экран в 8-ричном виде. 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), перевожу в секунды, складываю и делаю перевод обратно. Происходит неправильное округление секунд: #include <iostream> using namespace std; /////////////////////////////////////////////////// struct time { int hours; int minutes; int seconds; };
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;
 
}
 
Текущее время: 01:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru