Помощь - Поиск - Пользователи - Календарь
Полная версия: сортировка методом шелла.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Korsar
procedure Shellsort;
var i, j, incr: LongInt;
begin
incr := n div 2;
while incr > 0 do begin
for i := incr to n do begin
j := i-incr;
while j>0 do
if a[j] > a[j+incr] then begin
swap(a[j], a[j+incr]);
j:= j-incr
end
else
j := 0;
end;
incr := incr div 2;
end;
end;
Скажите пожалуйста почему после swap(a[j], выдает такую ошибку: error 89: ")" expected?
volvo
Потому, что в модуле System есть функция Swap, которая меняет местами старший/младший байты аргумента... А принимает она одно значение, а не 2... Вот поэтому после первого значения компилятор ждет скобку... Ты должен описать свою процедуру Swap, принимающую 2 параметра...
Korsar
Цитата(volvo @ 4.05.2007 19:49) *

Потому, что в модуле System есть функция Swap, которая меняет местами старший/младший байты аргумента... А принимает она одно значение, а не 2... Вот поэтому после первого значения компилятор ждет скобку... Ты должен описать свою процедуру Swap, принимающую 2 параметра...

А не могли бы вы подсказать как это сделать?
volvo
Procedure Swap(var a, b: integer);
var T: integer;
begin
  T := a; a := b; b := T;
end;

{ А дальше - твой ShellSort }
Procedure ShellSort;
...
Korsar
Цитата(volvo @ 4.05.2007 20:56) *

Procedure Swap(var a, b: integer);
var T: integer;
begin
  T := a; a := b; b := T;
end;

{ А дальше - твой ShellSort }
Procedure ShellSort;
...


Очень вам благодарен!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.