Дан файл вещественных чисел содержащий ненулевую часть верхнетреугольной матрицы по строкам.Создать новый файл содержащий все элементы данной матрицы — Pascal(Паскаль)

uses crt;
var f,g:file of real;
    a:real;
    n,k,i,j,p:integer;
begin
clrscr;
randomize;
assign(f,'filef');
rewrite(f);
assign(g,'fileg');
rewrite(g);
write('Сколько чисел записать в файл? n=');
readln(n);
for i:=1 to n do
 begin
  a:=10*random;
  write(f,a);
 end;
writeln('Содержание исходного файла:');
reset(f);
k:=filesize(f);
while not eof(f) do
 begin
  read(f,a);
  write(a:0:2,' ');
 end;
close(f);
writeln;
n:=round((sqrt(8*k+1)-1)/2);
if n*(n+1)<>2*k then write('В файле нет верхней треугольной матрицы')
else
 begin
  reset(f);
  p:=-1;
  for i:=1 to n do
  for j:=1 to n do
  if j>=i then
   begin
    p:=p+1;
    seek(f,p);
    read(f,a);
    write(g,a);
   end
  else
   begin
    a:=0;
    write(g,a);
   end;
  writeln('Матрица:');
  reset(g);
  for i:=1 to n do
   begin
    for j:=1 to n do
     begin
      seek(g,n*(i-1)+j-1);
      read(g,a);
      write(a:6:2);
     end;
    writeln;
   end;
  close(g);
 end;
readln
end.

Leave a Comment

15 − = 12