Имя: Пароль:
1C
1С v8
Помогите перевести код из С++ в 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
СЛАУ Гауссом? Смотри как в типовых!
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.