Тема: Pascal
Показать сообщение отдельно
Старый 14.03.2013, 19:41   #4 (permalink)
interacia
Member
 
Регистрация: 29.01.2013
Сообщений: 91
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 565
По умолчанию

Сначала надо было к математикам обращаться. чтоб описали алгоритм. Программист сродни переводчику.
Код:
Program Metod_Prostoy_Iteracii ;
 Uses crt;
 const n=4; e=0.001;
 Type matrix= array [1..n,1..n] of real;
 Var A:matrix;
 i,j,k:integer;
 x1,x2,x3,x4:real;
 b1,b2,b3,b4:real;
 begin
 a[1,1]:=13;a[1,2]:=1;  a[1,3]:=-3; a[1,4]:=-7; b1:=0;
 a[2,1]:=8; a[2,2]:=28; a[2,3]:=-7; a[2,4]:=7;  b2:=4;
 a[3,1]:=1; a[3,2]:=-5; a[3,3]:=20; a[3,4]:=4;  b3:=-5;
 a[4,1]:=5; a[4,2]:=4;  a[4,3]:=3;  a[4,4]:=22; b4:=-8;
 Writeln('исходная матрица');
 For i:=1 to n do
 begin
 For j:=1 to n do
 Write(A[i,j]:6:1);
 Writeln;
 end;
 Writeln('b1=' ,b1:3:1,' b2=' ,b2:3:1,' b3=' ,b3:3:1, 'b4=', b4:3:1, ' ' );

 x1:=0; x2:=0; x3:=0; x4:=0;
for k:=1 to 10 do
 begin
 x1:=(b1-(a[1,2]*x2+a[1,3]*x3+a[1,4]*x4))/a[1,1];
 x2:=(b2-(a[2,1]*x1+a[2,3]*x3+a[2,4]*x4))/a[2,2];
 x3:=(b3-(a[3,1]*x1+a[3,2]*x2+a[3,4]*x4))/a[3,3];
 x4:=(b4-(a[4,1]*x1+a[4,2]*x2+a[4,3]*x3))/a[4,4];
 end;
 Writeln(' x1=' ,x1:3:6,
         ' x2=' ,x2:3:6,
         ' x3=' ,x3:3:6,
         ' x4=', x4:3:6);

 End.
interacia вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070