Необходимо создать однородную таблицу. Затем применить три метода сортировки: Бинарным включением, простым обменом, быстрая сортировка. по ключам №3 и №4. И подсчитать количество сравнений и обменов.
И так создаем таблицу:
Program sort;
Uses Crt;
Const
Max = 8;
Type GD = record
Bilet: Byte;
Marshrut: String;
Data: Integer;
Vagon: Byte;
Mesto: Byte;
end;
var
x: GD;
Tab: array [0..Max] of GD; //собственно сама таблица
i,j,r,l,m,k: byte ;
begin
for i:=1 to max do
with tab do
begin //заполняем таблицу
writeln('Nomer Bileta: ',i);
readln(tab.bilet);
Write('Marshrut:');
readln(tab.marshrut);
Write('Data Viezda:');
Readln(tab.data);
Write('Nomer Vagona:');
Readln(tab.vagon);
Write('Nomer Mesta:');
Readln(tab.mesto);
end;
//Далее нужно выполнить бинарную сортировку включениями
Пробовал примастить вот это:
for i:=2 to max do
begin
x:=tab;
k:=tab.data;
l:=1;
r:=i-1;
while l<r do
begin
m:=(l+r) div 2;
if k<tab[m].data then r:=m-1 else l:=m+1;
end;
for j:=i-1 downto l do tab[j+1]:=tab[j];
tab[l]:=x;
end;
// не сортирует... записи должны сортироваться не в одном поле, а во всех, т.е. имеются: N Билета, Маршрут, Дата выезда, № Вагона, № места. сортируем по ключу №3 (дата выезда), но обмен происходит во всех полях(столбцах).
Помогите пожалуйста!!!!!!!!!!!!!!:'(