Привет всем !! Помогите пожалуйста решить лабу:
Ввести с клавиатуры файл F действ. чисел. Компоненты файла, стоящие между наибольшим и наименьшим компонентом, переставить в обратном порядке. Выдать на печать преобразованный файл.
Умоляю
program laba4;
Uses crt;
Type fl=file of real;
Var f:fl;
procedure zap(var f:fl);{##########################################}
Var n,i:integer;
a:real;
Begin
clrscr;
rewrite(f);
write('enter number of elements');
readln(n);
for i:=1 to n do
Begin
write('element#',i,'=');
readln(a);
write(f,a);
end;
close(f);
end;
procedure out(var f:fl);{##########################################}
Var a:real;
Begin
clrscr;
reset(f);
while not eof(f) do
Begin
read(f,a);
write(a:5:5,' ');
end;
end;
procedure oprpos(var f:fl; var imin,imax:integer);{###################}
Var max,min,a:real;
i:integer;
Begin
i:=0;
read(f,max);
min:=max; imax:=1;
imin:=imax;
while not eof(f) do
Begin
read(f,a); i:=i+1;
if a>max then
Begin
imax:=i;
max:=a;
end;
if a<min then
Begin
imin:=i;
min:=a;
end;
end;
end;
procedure preobr(var f:fl);{#########################################}
Var imin,imax,i:integer; max,min:integer;
a,b:real;
Begin
reset(f);
oprpos(f,imin,imax);
if imax>imin then
Begin
max:=imax; min:=imin;
end;
if imin>imax then
Begin
max:=imin; min:=imax;
end;
while (min+i<max-i) do
Begin
seek(f,min+i);
read(f,a);
seek(f,max-i);
read(f,b);
seek(f,min+i);
write(f,b);
seek(f,max-i);
write(f,a);
end;
close(f);
end;
Begin
assign(f,'t.txt');
zap(f);
out(f);
preobr(f);
readkey;
end.
! | Ты сам что, кнопку "CODE" нажать не можешь? Или ты считаешь, что тебе мало того, что программу исправлять, так еще и все посты править модераторы должны? |
while (min+i<max-i) do
Begin ...