Курсовая работа: Структуры и организация данных в ЭВМ
end;
end;
Алгоритм процедуры аналогичен алгоритму процедуры tform1.linfind с той разницей, что при совпадении значения в векторе и файле в двухмерный массив аcc записываются индексы файла и вектора, а также совпавшее значение.
procedure tform1.sorta; //сортировка файла a
var
r, d : integer;
tmp, val : word;
begin
setlength(ara, i);
for r:=0 to i-1 do
begin
seek(a, r);
read(a, val);
ara[r]:=val;
end;
for r:=0 to i-2 do
for d:=r+1 to i-1 do
begin
if (ara[r]>ara[d]) then
begin
tmp:=ara[r];
ara[r]:=ara[d];
ara[d]:=tmp;
end;
end;
rewrite(a);
for r:=0 to i-1 do write(a, ara[r]);
end;
Процедура перебирает значения файла, одновременно организуя второй цикл и перебирает значения этой же таблицы, начиная со следующего элемента. Встречая во втором цикле меньшее значение пересылает его во временный файл, значение из первого цикла пересылается в освободившуюся ячейку второго цикла. А его место, в свою очередь, занимает значение из временного файла.