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

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

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

 
 Ответить  Открыть новую тему 
> Счётчик, Куда его поставить?
Anastacia Adesso
сообщение 24.05.2006 17:45
Сообщение #1


Пионер
**

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

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


Приветик, ребята!!
У меня тут появилась небольшая проблемма..
Препод хочет, чтоб в этой программе на экран выводилось количество сравнений в обоих методах (пузырёк и Хоара). Я не врубаюсь,куда это надо поставить? Помогите, пожалуйста..


Прикрепленные файлы
Прикрепленный файл  BURBULIS.PAS ( 1.38 килобайт ) Кол-во скачиваний: 248


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.05.2006 18:31
Сообщение #2


Гость






(будем считать, что Count - глобальная переменная, в которой будет число сравнений, и Count ПЕРЕД вызовом сортировки присваивается 0):
var
count: integer;

function isGreater(a, b: integer): boolean;
begin
inc(count);
isGreater := (a > b);
end;

{metod puzyrjka}
procedure puzirek(var x:masiv; a:integer);
var
i, j: integer;

procedure oborot(var a,b:integer);
var c: integer;
begin
c:=a; a:=b; b:=c;
end;

begin
for i:=a-1 downto 1 do
for j:=1 to i do
if isGreater(x[j], x[j+1]) then oborot(x[j], x[j+1]);
end; {konec}

{metod Hoara}
procedure hoars(var x:masiv; l, u:integer);
var
i, j, T: integer;
begin
while u > l do begin
i:=l; j:=u; t:=x[l];
while i<j do begin
while isGreater(x[j], t) do j:=j-1;
x[i]:=x[j];
while(i<j) and (not isGreater(x[i], t)) do i:=i+1; x[j]:=x[i];
end;

x[i]:=t;
hoars(x,l,i-1);
inc(l);
end;
end;{konec}

Идея понятна? smile.gif Не забудь обнулять Count перед вызовом КАЖДОЙ сортировки...

Хотя в реализации сортировки Хоара есть сомнения... Загляни в "FAQ: Методы сортировки", проверь, возможно там более быстрая реализация...
 К началу страницы 
+ Ответить 
Anastacia Adesso
сообщение 25.05.2006 10:12
Сообщение #3


Пионер
**

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

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


Да. В общем понятен сам процесс..
Спасибо!!!


--------------------
Ben sensiz yaşayamam
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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