Как решить уравнение в Паскле методом итераций?
На рисунке мне понятен метод.. . а вот с программой беда.. Неужели нужно использовать массивы?
У нас беда с учителем, ничего не объясняет, считает что мы умные, когда полкласса ничего не понимает и за них дз делают другие... .
Я нашла какую то программу в интернете, но она такая огромная, и PascalABC постоянно выдает непонятные ошибки (( Прошу вас, помогите кто как может. .
Вот та программа:
program m_iter_sys;
Uses Crt;
label 1,2;
const n=4;e=0.001;
var i,j,k,t:integer;
sum1:real;
f:boolean;
a,c:array [1..n,1..n] of real;
s1,x,x0,d,b:array [1..n] of real;
begin
ClrScr;
for i:=1 to n do
begin
writeln ('введите коэффициенты в ',i,' строке');
for j:=1 to n do
readln (a[i,j]);
end;
writeln;
writeln ('введите свободные члены');
for i:=1 to n do
readln (b);
ClrScr;
for i:=1 to n do
for j:=1 to n do
begin
if i=j then c[i,j]:=0
else c[i,j]:=-a[i,j]/a[i,i];
end;
for i:=1 to n do
d:=b/a[i,i];
{проверка сходимости}
for i:=1 to n do
begin
sum1:=0;
for j:=1 to n do
sum1:=sum1+c[i,j];
s1:=sum1;
end;
sum1:=s1[1];
for i:=2 to n do
if s1>sum1 then sum1:=s1;
if abs(sum1)<1 then begin
{конец проверки}
for i:=1 to n do
x0:=d;
for i:=1 to n do
begin
x:=0;
for j:=1 to n do
x:=x+c[i,j]*x0[j];
end;
for i:=1 to n do
x:=x+d;
1: begin
for i:=1 to n do
x0:=x;
for i:=1 to n do
begin
x:=0;
for j:=1 to n do
x:=x+c[i,j]*x0[j];
end;
for i:=1 to n do
x:=x+d;
t:=0;
for i:=1 to n do
if abs(x-x0)
writeln;
end
else writeln ('система не сходится');
readln
end.
И ещё, эта программа действительно требует так много операций??
Ну что вы к словам придираетесь. 3 человека у нас из 15 в группе понимают.