Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.12.2011, 18:50
adik adik вне форума
Прохожий
 
Регистрация: 10.12.2011
Сообщения: 5
Репутация: 10
Злость Помогите с сортировкой массива

Код:
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 тобишь сортировку в зависимости от чисел нужно понажимать несколько раз пока оно окончательно не отсортирует, как мне задать условие что бы функция повторялась пока массив не будет отсортирован окончательно пробовал через репит антил, но что то не получается помогите пожалуйста!!
Изображения
Тип файла: jpg 1.JPG (34.7 Кбайт, 4 просмотров)
Тип файла: jpg 2.JPG (35.2 Кбайт, 2 просмотров)

Последний раз редактировалось Admin, 11.12.2011 в 12:59.
Ответить с цитированием
  #2  
Старый 10.12.2011, 19:07
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

если это пузырек то там один цикл вложен в другой а утебя всего один, если я правильно понял
Ответить с цитированием
  #3  
Старый 10.12.2011, 19:10
adik adik вне форума
Прохожий
 
Регистрация: 10.12.2011
Сообщения: 5
Репутация: 10
По умолчанию

Да по идее это должен быть пузырек и в чем заключается смысл 2 цикла? что он должен делать? проверять отсортирован массив или нет, если да то подскажи как его организовать
Ответить с цитированием
  #4  
Старый 10.12.2011, 19:13
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

там один цикл по всем элементам а внутренний в пределах ограниченных внешним, вроде как
эту тему хорошо знает wiki и гугл
Ответить с цитированием
  #5  
Старый 10.12.2011, 19:17
adik adik вне форума
Прохожий
 
Регистрация: 10.12.2011
Сообщения: 5
Репутация: 10
По умолчанию

А нельзя ли сделать что то наподобии этого?? только у меня не получается
Изображения
Тип файла: jpg 03.JPG (94.7 Кбайт, 6 просмотров)
Ответить с цитированием
  #6  
Старый 10.12.2011, 19:28
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

а в цикл если засунуть это жирное условие?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter