Дан файл целых чисел. Удалить в нем все отрицательные и нечетные числа — Pascal(Паскаль)

uses crt;
var f:file of integer;
    n,i,a,j,k:integer;
begin
clrscr;
randomize;
assign(f,'file1');
rewrite(f);
write('Kol. chis. n=');
readln(n);
for i:=1 to n do
 begin
  a:=random(20)-9;
  write(f,a);
 end;
writeln('Исходный файл:');
reset(f);
while not eof(f) do
 begin
  read(f,a);
  write(a,' ');
 end;
writeln;
close(f);
reset(f);
k:=0;i:=0;
while i<=filesize(f)-2-k do
  begin
  seek(f,i);
  read(f,a);
  if (a<0)or odd(a) then
   begin
    k:=k+1;
    for j:=i to filesize(f)-2 do
     begin
      seek(f,j+1);
      read(f,a);
      seek(f,j);
      write(f,a);
    end;
   end
  else i:=i+1;
 end;
seek(f,filesize(f)-k-1);
read(f,a);
if (a<0)or odd(a) then k:=k+1;
seek(f,filesize(f)-k);
truncate(f);
close(f);
reset(f);
if filesize(f)=0 then write('Все элементы удалены')
else
 begin
  writeln('Измененный файл:');
  reset(f);
  for i:=0 to filesize(f)-1 do
   begin
    read(f,a);
    write(a,' ');
   end;
 end;
close(f);
readln
end.

Leave a Comment

53 − = 50