Witam
Jestem totalnym laikiem jeżeli chodzi o programowanie. Czy ktoś z Was mógłby mi pomóc? Mianowicie chodzi o to, że w procedurze Gaussa-Jordana mam zrobic wczytanie danych z pliku np txt i zapisywanie w txt lub excel wyników. Program mam napisany, że liczy przykłady tylko zapisane w kodzie a nie w pliku.
Program aaa;
uses crt;
type
vector = array[1..50] of extended;
vector1 = array[1..50] of extended;
vector2 = array[1..50] of integer;
const
dane : array[1..3,1..4] of extended = ((5,10,1,9),(1,31,-1,76),(2,-1,51,0));
var
x:vector;
st:integer;
procedure oneeqn (i,n : integer; var a : vector1);
var
licznik:integer;
begin
for licznik:=1 to n+1 do
begin
a[licznik]:=dane[i,licznik];
end;
end;
procedure GaussJordan (n : integer;
var x : vector;
var st : integer);
var i,j,jh,k,kh,l,lh,n1,p,q,rh : integer;
max,s : extended;
a,b : vector1;
r : vector2;
begin
st:=0;
if n<1
then st:=1;
if st=0
then begin
n1:=n+1;
p:=n1;
for i:=1 to n1 do
r[i]:=0;
k:=0;
repeat
k:=k+1;
oneeqn (k,n1,a);
for i:=1 to n do
begin
rh:=r[i];
if rh<>0
then b[rh]:=a[i]
end;
kh:=k-1;
l:=0;
max:=0;
for j:=1 to n1 do
if r[j]=0
then begin
s:=a[j];
l:=l+1;
q:=l;
for i:=1 to kh do
begin
s:=s-b[i]*x[q];
q:=q+p
end;
a[l]:=s;
s:=abs(s);
if (j<n1) and (s>max)
then begin
max:=s;
jh:=j;
lh:=l
end
end;
if max=0
then st:=2
else begin
max:=1/a[lh];
r[jh]:=k;
for i:=1 to p do
a[i]:=max*a[i];
jh:=0;
q:=0;
for j:=1 to kh do
begin
s:=x[q+lh];
for i:=1 to p do
if i<>lh
then begin
jh:=jh+1;
x[jh]:=x[q+i]-s*a[i]
end;
q:=q+p
end;
for i:=1 to p do
if i<>lh
then begin
jh:=jh+1;
x[jh]:=a[i]
end;
p:=p-1
end
until (k=n) or (st=2);
if st=0
then for k:=1 to n do
begin
rh:=r[k];
if rh<>k
then begin
s:=x[k];
x[k]:=x[rh];
i:=r[rh];
while i<>k do
begin
x[rh]:=x[i];
r[rh]:=rh;
rh:=i;
i:=r[rh]
end;
x[rh]:=s;
r[rh]:=rh
end
end
else for k:=1 to n do
x[k]:=0
end
end;
begin
GaussJordan(3, x, st);
writeln(x[1]2,' ',x[2]2,' ',x[3]2);
readln;
end.