Имеется исходный файл с числами от 1 до 80. В строке 20 чисел, и таких строк около 1000.Требуется создать матрицу [1..80, 1..1000] и записать ее в другой файл. Заполнение «0» и «1», где «1» ставится в ячейку, номер которой есть в строке. Также нужно подсчитать количество единиц в каждом столбце — Pascal(Паскаль)

uses crt;
const m=20;
var f,g:text;
    a:array[1..1000,1..m] of byte;
    i:byte;
    b:set of byte;
    n,j,k:integer;
    nf,ng:string;
begin
clrscr;
write('Имя файла для чтения: ');
readln(nf);
nf:=nf+'.txt';
assign(f,nf);
if not fileexists(nf) then
 begin
  writeLn('Файл ',nf,' не найден!');
  writeLn('Работа программы завершена.');
  readln;
  exit;
 end;
reset(f);
write('Имя файла для записи: ');
readln(ng);
ng:=ng+'.txt';
assign(g,ng);
rewrite(g);
n:=0;
while not eof(f) do
 begin
  n:=n+1;
  b:=[];
  for i:=1 to m do
   begin
    read(f,a[n,i]);
    b:=b+[a[n,i]];
   end;
  for i:=1 to m do
  if i in b then a[n,i]:=1 else a[n,i]:=0;
 end;
close(f);
for i:=1 to n do
 begin
  for j:=1 to m do
  write(g,a[i,j]:4);
  writeln(g,'');
 end;
close(g);
writeln('Матрица переписана!');
writeln('Количество единиц в столбцах:');
for i:=1 to m do
 begin
   k:=0;
   for j:=1 to n do
   if a[j,i]=1 then k:=k+1;
   writeln('Столбец ',i,' - ',k);
  end;
end.

Leave a Comment

38 − = 36