|
Помогите перевести код из С++ в 1С |
☑ |
0
полный0
22.02.17
✎
13:00
|
for (к = 1; к <= n; k++) // прямой ход
{
for (j = k + 1; j <= n; j++)
{
d = a[j][k] / a[k][k]; // формула (1)
for (i = k; i <= n; i++)
{
a[j][i] = a[j][i] - d * a[k][i]; // формула (2)
}
b[j] = b[j] - d * b[k]; // формула (3)
}
}
for (k = n; k >= 1; k--) // обратный ход
{
d = 0;
for (j = k + 1; j <= n; j++)
{
s = a[k][j] * x[j]; // формула (4)
d = d + s; // формула (4)
}
x[k] = (b[k] - d) / a[k][k]; // формула (4)
}
cout << "Korni sistemy: " << endl;
for( i = 1; i <= n; i++)
cout << "x[" << i << "]=" << x[i] << " " << endl;
return 0;
}
|
|
1
anatoly
22.02.17
✎
13:02
|
(0) уточни для начала - в чем ты "полный 0" - в С++ или в 1С ??
|
|
2
полный0
22.02.17
✎
13:04
|
только начало, дальше разберусь
|
|
3
Михаил Козлов
22.02.17
✎
13:17
|
Такое ощущение, что что-то из линейной алгебры (предположительно решение СЛАУ исключением переменных).
Т.к. я С++ не знаю, предполагаю, что
1. for (к = 1; к <= n; k++) = ДЛЯ к=1 ПО n Цикл (правильнее ДЛЯ к=0 ПО n-1).
2. s = a[k][j] * x[j]; - почти так и будет, если x - массив (лучше таблица значений с 1 колонкой, тогда вместо x[j] - x[j][0]); a - таблица значений с n колонками.
3. for (k = n; k >= 1; k--) =
k = n;
ПОКА k>=1 Цикл
k = k - 1;
КонецЦикла;
|
|
4
silent person
22.02.17
✎
13:25
|
Для k = 1 По n Цикл
Для j = k + 1 По n Цикл
d = a[j][k]/a[k][k];
Для i = k по n Цикл
a[j][i] = a[j][i] - d * a[k][i];
КонецЦикла;
b[j] = b[j] - d * b[k];
КонецЦикла;
КонецЦикла;
и так далее
|
|
5
Oftan_Idy
22.02.17
✎
13:26
|
(0) увольняйся
|
|
6
полный0
22.02.17
✎
13:36
|
Спасибо всем!
|
|
7
Михаил Козлов
22.02.17
✎
13:43
|
(4) В 1С в массивах и ТЗ индекс от 0.
|
|
8
H A D G E H O G s
22.02.17
✎
13:44
|
СЛАУ Гауссом? Смотри как в типовых!
|
|