Не выдает решение - PascalABC.NET
Формулировка задачи:
В ответе выдает вот так:
Rewenie:
x(1)= NaN
x(2)= NaN
x(3)= NaN
Помогите найти ошибку
Решение задачи: «Не выдает решение»
textual
Листинг программы
program Z_1_2; // Uses Crt; const n = 3; var i, j, k: integer; a, s: array[1..n, 1..n] of real; b, x, y: array[1..n] of real; tmp: real; begin // Clrscr; (* for i:=1 to n do begin for j:=1 to n do begin write('a(',i,',',j,')='); readln(a[i,j]); end; write('b(',i,')='); readln(b[i]); writeln; end; *) a[1, 1] := 0.63;a[1, 2] := -1.72;a[1, 3] := 3.37;b[1] := -0.75; a[2, 1] := a[1, 2];a[2, 2] := -2.27;a[2, 3] := 1.62;b[2] := 1.27; a[3, 1] := a[1, 3];a[3, 2] := a[2, 3];a[3, 3] := -0.43;b[3] := 2.74; for i := 1 to n do begin tmp := 0; for k := 1 to (i - 1) do tmp := tmp + s[k, i] * s[k, i]; if a[i, i] - tmp >= 0 then s[i, i] := sqrt(a[i, i] - tmp) else writeln('Извлекаем корень из отрицательного числа. Результатам верить нельзя'); for j := (i + 1) to n do begin tmp := 0; for k := 1 to (i - 1) do tmp := tmp + s[k, i] * s[k, j]; s[i, j] := (a[i, j] - tmp) / s[i, i]; end; end; for i := 1 to n do begin tmp := 0; for k := 1 to (i - 1) do tmp := tmp + s[k, i] * y[k]; y[i] := (b[i] - tmp) / s[i, i]; end; for i := n downto 1 do begin tmp := 0; for k := (i + 1) to n do tmp := tmp + s[i, k] * x[k]; x[i] := (y[i] - tmp) / s[i, i]; end; writeln('Rewenie:'); for i := 1 to n do writeln('x(', i, ')=', x[i]:8:2); // while not keypressed do; end.