Velikan Гость
|
Добавлено: Вт Дек 23 2003 03:58 Заголовок сообщения: Знатоки Borland Pascal, помогите!!! В чем ошибка? |
|
|
Где ошибка в след. коде? А именно в процедуре QuickSort (должна сортировать записи по году). С закомментированными строчками работает отлично, но нужно это сделать через вызов функции, вот тут то и начинается.... Заранее спасибо!
program p3;
uses crt;
const n=500;
type
knigi = record
izd_vo, autor, naim: string[25];
tir_osn, year_izd : integer;
tir_dop: char;
end;
kniga = array [1..n] of knigi;
ftext = text;
func = function(e1,e2:knigi):integer;
procedure QuickSort(var izd:kniga; const l,r:integer; f1:func);
var y,i,j:integer;
x,temp: knigi;
begin
i:=l;
j:=r;
x:=izd[(l+r) div 2];
{y:=izd[(l+r) div 2].year_izd;}
while i<=j do
begin
while {izd[i].year_izd<y} f1(izd,x)=-1 do inc(i);
while [i]{izd[j].year_izd>y} f1(izd[j],x)=1 do dec(j);
if i<=j then
begin
temp:=izd[i];
izd[i]:=izd[j];
izd[j]:=temp;
inc(i);
dec(j);
end;
end;
if l<j then QuickSort(izd,l,j,f1);
if i<r then QuickSort(izd,i,r,f1);
end;
{$F+}
function comp1(e1,e2:knigi):integer;
begin
if e1.year_izd < e2.year_izd then comp1:=-1;
if e1.year_izd > e2.year_izd then comp1 :=1
else comp1:=0;
end;
{$F-}
var
izdanie : kniga;
i:integer; {кол-во записей}
BEGIN
{................................}
{................................}
QuickSort_year1(izdanie,1,i,comp1);
{................................}
{................................}
END. |
|