IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> сортировка методом шелла.
Korsar
сообщение 4.05.2007 19:45
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


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?


--------------------
Чайник по Паскалю!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.05.2007 19:49
Сообщение #2


Гость






Потому, что в модуле System есть функция Swap, которая меняет местами старший/младший байты аргумента... А принимает она одно значение, а не 2... Вот поэтому после первого значения компилятор ждет скобку... Ты должен описать свою процедуру Swap, принимающую 2 параметра...
 К началу страницы 
+ Ответить 
Korsar
сообщение 4.05.2007 20:51
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


Цитата(volvo @ 4.05.2007 19:49) *

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

А не могли бы вы подсказать как это сделать?


--------------------
Чайник по Паскалю!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.05.2007 20:56
Сообщение #4


Гость






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

{ А дальше - твой ShellSort }
Procedure ShellSort;
...
 К началу страницы 
+ Ответить 
Korsar
сообщение 4.05.2007 20:58
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской
Реальное имя: Дмитрий

Репутация: -  0  +


Цитата(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;
...


Очень вам благодарен!!!


--------------------
Чайник по Паскалю!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 18:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"