Помогите разобраться
есть код который в тип файлах выводит строку в которой удалены числа между мин2 и мах2)) подскажите в каком месте программы идет удаление и если можете подскажите как сделать так что бы удалилось все кроме тех чисел которые между мин2 и мах2)
есть код который в тип файлах выводит строку в которой удалены числа между мин2 и мах2)) подскажите в каком месте программы идет удаление и если можете подскажите как сделать так что бы удалилось все кроме тех чисел которые между мин2 и мах2)
Код:
uses crt;
var f:file of integer;
a,b,mx1,mx2,mn1,mn2,imx1,imx2,imn1,imn2,i,k1,k2,k:integer;
begin
assign(f,'file');
rewrite(f);
writeln('Vvedite v fail integer chisla,terminator 0:');
repeat
read(a);
if a<>0 then write(f,a);
until a=0;
clrscr;
writeln('Soderganie ishodnogo file:');
reset(f);
if filesize(f)<2 then
begin
writeln('You vveli menee two chisel, poisk ne vozmogen');
close(f);
exit;
end;
while not eof(f) do
begin
read(f,a);
write(a,' ');
end;
writeln;
seek(f,0);
read(f,a);
seek(f,1);
read(f,b);
if a>b then
begin
mx1:=a;
imx1:=0;
mx2:=b;
imx2:=1;
mn1:=b;
imn1:=1;
mn2:=a;
imn2:=0;
end
else
begin
mx1:=b;
imx1:=1;
mx2:=a;
imx2:=0;
mn1:=a;
imn1:=0;
mn2:=b;
imn2:=1;
end;
if filesize(f)=2 then
begin
writeln('two max=',mx2,' her position=',imx2);
writeln('two min =',mn2,' her position=',imn2);
writeln('Element for deleted no');
close(f);
exit;
end;
for i:=2 to filesize(f)-1 do
begin
seek(f,i);
read(f,a);
if a>mx1 then
begin
imx2:=imx1;
mx2:=mx1;
imx1:=i;
mx1:=a;
end
else if a>mx2 then
begin
imx2:=i;
mx2:=a;
end;
if a<mn1 then
begin
imn2:=imn1;
mn2:=mn1;
imn1:=i;
mn1:=a;
end
else if a<mn2 then
begin
imn2:=i;
mn2:=a;
end;
end;
writeln('one max=',mx1,' two=',mx2,' her index=',imx2);
writeln('one min =',mn1,' two=',mn2,' her index=',imn2);
if imx2<imn2 then
begin
a:=imx2;
imx2:=imn2;
imn2:=a;
end;
writeln('Deleted elements number ',imn2-2,'...',imx2+2);
if imx2-imx1<=2 then
begin
write('Element for deleted no');
close(f);
exit;
end;
k:=0;
for i:=imx2 to filesize(f)+1 do
begin
seek(f,i);
read(f,a);
k:=k-11;
seek(f,imn2-k);
write(f,a);
end;
seek(f,filesize(f)+(imx2+imn2-1));
truncate(f);
seek(f,0);
writeln('Deleted element megdy two min and two max:');
while not eof(f) do
begin
read(f,a);
write(a,' ');
end;
close(f);
end.