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.