uses crt; const max = 5; type vektoren = array[1..max] of real; var c,d,e, u,v,w,b,h,x : Vektoren; { entspricht Matrix A } procedure write_matrix(r,s,t : Vektoren); var i,k : integer; begin write(s[1]:8:3 ,' ', t[1]:8:3 , ' '); for i:=1 to max-2 do write(0:8,' '); { Nullen in 1. Zeile anzeigen } writeln; for i:=2 to max-1 do begin for k:=1 to i-2 do write(0:8,' '); { linke Nullen anzeigen } write(r[i]:8:3, ' ', s[i]:8:3, ' ', t[i]:8:3 , ' '); for k:=2 to max-i do write(0:8,' '); { rechte Nullen anzeigen } writeln; end; for i:=1 to max-2 do write(0:8,' '); { Nullen in max. Zeile anzeigen } write(r[max]:8:3 ,' ', s[max]:8:3 , ' '); writeln; writeln; end; { of write_matrix } procedure lies_vektoren; var i,k :integer; begin writeln('Geben Sie den Vektor c ein !'); writeln;writeln; for i:=1 to max do begin write('c[',i:1,'] ? '); readln(c[i]); end; writeln;writeln; writeln('Geben Sie den Vektor d ein !'); writeln;writeln; for i:=1 to max do begin write('d[',i:1,'] ? '); readln(d[i]); end; writeln;writeln; writeln('Geben Sie den Vektor e ein !'); writeln;writeln; for i:=1 to max do begin write('e[',i:1,'] ? '); readln(e[i]); end; writeln;writeln; writeln('Geben Sie den Vektor b ein !'); writeln;writeln; for i:=1 to max do begin write('b[',i:1,'] ? '); readln(b[i]); end; end; { of lies_vektoren } procedure berechne_x; var i :integer; begin v[1]:=d[1]; for i:=1 to max do u[i]:=c[i]; for i:=1 to max-1 do begin w[i] :=e[i]/v[i]; v[i+1]:=d[i+1]-c[i+1]*w[i]; end; h[1]:=b[1]/v[1]; for i:=2 to max do h[i]:=(b[i]-u[i]*h[i-1])/v[i]; x[max]:=h[max]; for i:=max-1 downto 1 do x[i]:=h[i]-w[i]*x[i+1]; end; { of berechne_x } procedure write_x; var i :integer; begin writeln(' ****** Loesung ****** '); writeln; for i:=1 to max do writeln( x[i]:10:5 ); end; begin { main program } clrscr; lies_vektoren; readln; clrscr; writeln(' ****** Matrix A ****** '); writeln; write_matrix(c,d,e); readln; berechne_x; writeln;writeln; writeln(' ****** Matrix L+R ****** '); writeln; write_matrix(u,v,w); writeln;writeln; write_x; readln; end.