Напиши обязательно в каком виде нужно записывать матрицу в файл...
Я написал реализацию в которой матрица записывается в файл в столбец ...
если в принцыпе это важно, то можно и переделать так проще читать данные !
Код
uses crt;
const n=3;{число строк}
type m=array[1..n,1..10] of integer;
var i,j,g:integer;
a,b:m;
procedure fwrite(a:m; s:string);
var f:text;
begin
assign(f,s);
rewrite(f);
for i:=1 to n do begin
for j:=1 to 10 do writeln(f,a[i,j]);
end;
close(f);
end;
function fread(s:string; var a:m):boolean;
var f:text;
st:string;
er:integer;
begin
fread:=true;
assign(f,s);
reset(f);
for i:=1 to n do begin
for j:=1 to 10 do begin
readln(f,st);
val(st,a[i,j],er);
if er<>0 then fread:=false;
end;
end;
close(f);
end;
begin
clrscr;
for i:=1 to n do begin
for j:=1 to 10 do begin
write('Введите M[',i,',',j,'] ');
readln(a[i,j]);
end;
end;
fwrite(a,'c:\out.dat');
if not(fread('c:\out.dat',a)) then writeln('Ошибка чтения данных');
writeln('Массив до преобразования:');
for i:=1 to n do begin
for j:=1 to 10 do write(a[i,j]:4);
writeln;
end;
for i:=1 to n do begin
g:=0;
for j:=1 to 10 do begin
if a[i,j]<0 then begin
g:=g+1;
b[i,g]:=a[i,j];
end;
end;
for j:=1 to 10 do begin
if a[i,j]>=0 then begin
g:=g+1;
b[i,g]:=a[i,j];
end;
end;
end;
writeln('Массив после преобразования:');
for i:=1 to n do begin
for j:=1 to 10 do write(b[i,j]:4);
writeln;
end;
fwrite(b,'c:\out_2.dat');
readln;
end.