Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка "пузырьком" [D7]


Страницы:   1 2

Evgeniy ©   (2012-03-12 16:35:00) 

Добрый день! Прошу прощения за то, что открываю уже "хорошо избитую" тему на страницах данного сайта, но объясню это тем, что я очень плохо разбираюсь в delphi, но мне необходимо научиться с ним работать, поэтому буду очень признателен за помощь!
Итак, задача заключается в следующем. Необходимо отсортировать массив случайно сгенерированных чисел в ListBox1 (по возрастанию/убыванию) методом "пузырька", посредством выбора соответствующей кнопки в RadioGroup, а затем вывести отсортированный массив в ListBox2.
Мне удалось сделать генератор чисел в ListBox. Проблема заключается в том, что я не понимаю как взять числа из ListBox1, отсортировать их, приняв во внимание значения RadioGroup (по возрастанию/убыванию) и затем вывести отсортированный массив в ListBox2...
Я очень хочу разобраться в этой задаче, очень Вас прошу помочь! Если можно, объясните мне пошагово что и как нужно писать в коде. Наброски своего кода прилагаю. Заранее спасибо!smiley


procedure SortBubble(Sender: TObject);
var i,n, min: integer;
begin
min:=1;
for i:=2 to n+1 do
if i < min then min:=i;
Form1.ListBox2:=IntToStr(min);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SortBubble(ListBox1.Items);
end;

procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
begin
randomize;
for i:= 1 to 10 do
ListBox1.Items.Add(IntToStr(random(10)));
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ListBox1.Items.Clear;
ListBox2.Items.Clear;
Edit1.Clear;
end;
end.


RWolf   (2012-03-12 16:48:00) [21]

готовый пример сортировки пузырьком есть в подкаталоге Demos\Threads.


stas   (2012-03-12 16:45:00) [22]

У Вас очень уж много ошибок, во всем разбираться нет времени, вот пример как можно оформить процедуру.

procedure SortBubble(ListSource,ListDest: TStrings);
var i,n, min: integer;
begin
min:=1;
for i:=0 to List.Count-1 do
begin

  .....
   ListDest:=IntToStr(min);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SortBubble(ListBox1.Items,ListBox2.Items);
end;


Хотя можно не заморачиваться пока с параметрами и сделать ее методом класса TForm1

А можно отсортировать еще ListBox свойством Sorted:=true, но в этом случае будет так
1
10
11
2
3
4


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо