|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите с сортировкой массива
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; sgmassiv: array[1..3] of TStringGrid; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=1 to 3 do begin sgmassiv[i]:=TStringGrid.Create(self); with sgmassiv[i] do begin Parent:=self; Left:=5*(i*15); Top:=100; RowCount:=7; colcount:=1; FixedCols:=0; fixedrows:=0; Height:=180; Width:=84; end; end; sgmassiv[3].Visible:=false; end; procedure TForm1.Button2Click(Sender: TObject); var i,k:integer; begin randomize; for k:=1 to 7 do sgmassiv[1].cells[0,k-1] :=inttostr(random(50)+50); begin for i:=1 to 7 do sgmassiv[2].Cells[0,i-1]:=sgmassiv[1].cells[0,i-1]; end; end; procedure TForm1.Button3Click(Sender: TObject); var i:integer; begin for i:=1 to 6 do begin if sgmassiv[2].cells[0,i-1]>sgmassiv[2].cells[0,i] then begin sgmassiv[3].Cells[0,0]:=sgmassiv[2].Cells[0,i-1]; sgmassiv[3].Cells[0,1]:=sgmassiv[2].Cells[0,i]; sgmassiv[2].Cells[0,i]:=sgmassiv[3].cells[0,0]; sgmassiv[2].cells[0,i-1]:=sgmassiv[3].Cells[0,1]; end; end; end; end. Оформил сортировку стринггрида я эти темы пропустил в универе поэтому все делал сам, так что код громоздкий и не оптимальный я это понимаю, но все же сама сортировка работает на ура, НО! баттон 3 тобишь сортировку в зависимости от чисел нужно понажимать несколько раз пока оно окончательно не отсортирует, как мне задать условие что бы функция повторялась пока массив не будет отсортирован окончательно пробовал через репит антил, но что то не получается помогите пожалуйста!! Последний раз редактировалось Admin, 11.12.2011 в 12:59. |
#2
|
|||
|
|||
если это пузырек то там один цикл вложен в другой а утебя всего один, если я правильно понял
|
#3
|
|||
|
|||
Да по идее это должен быть пузырек и в чем заключается смысл 2 цикла? что он должен делать? проверять отсортирован массив или нет, если да то подскажи как его организовать
|
#4
|
|||
|
|||
там один цикл по всем элементам а внутренний в пределах ограниченных внешним, вроде как
эту тему хорошо знает wiki и гугл |
#5
|
|||
|
|||
А нельзя ли сделать что то наподобии этого?? только у меня не получается
|
#6
|
|||
|
|||
а в цикл если засунуть это жирное условие?
|