Помогите пожалуйста решить задачу:
В файле целых чисел, если перед положительным числом стоит отрицательное, то удалить это отрицательное число
program p11;
uses crt;
var
f: file of integer;
s:string;
x,n,i:integer;
Begin
writeln('input name of file:');
readln(s);
Assign (f,s);
rewrite(f);
writeln('input amount of numbers:');
readln(n);
for i:=1 to n do
begin
readln(x);
write(f,x);
end;
close(f);
reset(f);
while not eof(f) do
begin
read(f,x);
if x<0
//
//
end;
end.
reset(f);
i:=0;
while not eof(f) do
begin
seek(f,i);
read(f,x);
seek(f,i+1);
read(f,n);
if (x>0) and (n<0) then
writeln(x);
i:=i+1;
end;
close(f);
reset(f);
i:=0;
while not eof(f) do
begin
seek(f,i);
read(f,x);
seek(f,i+1);
read(f,n);
if (x>0) and (n<0) then
writeln(x);
i:=i+1;
end;
close(f);
Read(f,i);
while not EoF(f) do begin
Read(f,j);
if (i>=0)or(j<=0) then Write(g,i)
end;
Write(g,j);
0, -3, 11, -2, 1, 0, -3, 10, 1, -3, 5
Running "f:\programs\test.exe"
0 0 0 0 0 0 0 0 0 0 5
prev := -1;
save := false; // На всякий случай, если будет пустой файл.
// Не люблю оставлять ВОЗМОЖНОСТЬ для ошибки
while not eof(f) do
begin
save := true;
read(f, next);
if (prev < 0) and (next >= 0) then
else writeln('file -> ', prev);
prev := next;
end;
if save then writeln('file -> ', prev);
Read(f,i);
while not EoF(f) do begin
Read(f,j);
if (i>=0)or(j<=0) then Write(g,i);
i:=j // вот это
end;
Write(g,j);
Read(f,i);
while not EoF(f) do begin
Read(f,j);
if (i>=0)or(j<=0) then Write(g,i);
i:=j // вот это
end;
Write(g,j);