Форум: "Прочее";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];
ВнизДемонстрация сортировки Найти похожие ветки
← →
DanweR (2009-12-20 16:09) [0]Есть задание, требуется продемонстрировать сортировку масива или вектора... в моем понимании, нада сделать наочную сортировку, при вводе разных массивов... допустим когда проверяется первый елемент, он загорается красным, при сравнении, елемент с которым сравнивается первый загорается желтым, и при совпадении условия они меняются..
над это сделать методом пузырька
← →
Сергей М. © (2009-12-20 16:22) [1]И ?
← →
app © (2009-12-20 17:42) [2]Какие интересные задачи вам задают.
← →
Джо © (2009-12-20 17:43) [3]Симпатичное задание, завидую.
← →
DanweR (2009-12-20 18:26) [4]Спасибо вам =) сарказм принят
хотелось бы что б вы помогли
← →
Anatoly Podgoretsky © (2009-12-20 18:30) [5]Боже ну дай же наконец выиграть.
Я столько лет тебя прошу.
Мойша ты бы хотя бы раз билет купил.
← →
Юрий Зотов © (2009-12-20 18:40) [6]> DanweR (20.12.09 18:26) [4]
> хотелось бы что б вы помогли
Здесь действительно помогают. Но как Вам помочь, если Вы не задали ни одного вопроса?
Начинайте делать. Появятся вопросы - спрашивайте. Помогут.
← →
DanweR (2009-12-20 18:45) [7]ну, вопрос... как сделать что б, панелька с текущей цифрой при проверке загорелась..
← →
test © (2009-12-20 18:50) [8]DanweR (20.12.09 18:45) [7]
Меняй цвет текста или панельки
← →
DanweR (2009-12-20 18:55) [9]ну это я понял... мне интересно как поменять все это, не прописывая это для каждой панельки. может можна сделать масив этих панелек... тогда как это сделать... и что для этого нужно... "прямые руки" не предлагать... я просто хочу научится = )
← →
test © (2009-12-20 19:00) [10]DanweR (20.12.09 18:55) [9]
TPanel(FindComponent("Panel1")).color := clWhite;
← →
Сергей М. © (2009-12-20 19:13) [11]
> DanweR (20.12.09 18:45) [7]
Панельки-то откуда взялись ?
← →
DanweR (2009-12-20 19:35) [12]вобщем... непорядок щас у меня в голове =)
Масив будет выводится на панельки... каждый елемент на отдельную... для наочности сортировки елементы корые используються в данный момент будут выделяться... вобщем как выделять их в масиве не прописывая каждый раз имя текущей панели я понял... теперь надо что б я мог создать количество панелек такое, какое мне нужно в данный момент, тоесть я должен сам указать сколько будет строк и рядов
← →
test © (2009-12-20 19:43) [13]
var
panels: array of TPanel;
i: integer;
begin
SetLentgh(panels,8);
for i:= 0 to Length(panels) -1 do
panels[i] := TPanel.Create(Form1);
end;
Как то так.
← →
DanweR (2009-12-20 19:50) [14]осталось только их положение и размеры на форме указать =)
← →
DanweR (2009-12-20 20:00) [15]а как ставить паузу в цикле?
← →
DanweR (2009-12-20 20:01) [16]а как ставить паузу или в цикле? а то оно пролетает все быстренько, заметить не успеваю =)
← →
DanweR (2009-12-20 20:01) [17]а как ставить паузу или задержку в цикле? а то оно пролетает все быстренько, заметить не успеваю =)
← →
Юрий Зотов © (2009-12-20 20:02) [18]
> DanweR (20.12.09 20:01) [17]
Sleep(1000);
← →
Германн © (2009-12-20 20:02) [19]
> а как ставить паузу
Sleep
← →
DanweR (2009-12-20 20:03) [20]ой, извините...
← →
DanweR (2009-12-20 20:07) [21]со sleep(1000); выходить будто оно подвисает, а дальше все сходу появляется =(
← →
Anatoly Podgoretsky © (2009-12-20 20:09) [22]Ты уже пример из Демос посмотрел?
← →
Юрий Зотов © (2009-12-20 20:10) [23]
> DanweR (20.12.09 20:07) [21]
Вы же хотели паузу? Вот ее и получили.
← →
Германн © (2009-12-20 20:15) [24]
> со sleep(1000); выходить будто оно подвисает, а дальше
> все сходу появляется =(
>
Рядом со Sleep положи Application.ProcessMessages
← →
DanweR (2009-12-20 20:15) [25]>Anatoly Podgoretsky © (20.12.09 20:09) [22]
???
← →
DanweR (2009-12-20 20:40) [26]Германн © (20.12.09 20:15) [24]
То что надо было =)
← →
Джо © (2009-12-20 20:43) [27]В папке Delphi/Source/Demos (или где-то рядом) вроде бы есть пример с визуализацией методов сортировки на основе нитей.
← →
Джо © (2009-12-20 20:44) [28]Delphi\Demos\Threads
← →
test © (2009-12-20 20:51) [29]DanweR (20.12.09 20:07) [21]
Перерисовывай Repaint перед Sleep
← →
Сергей М. © (2009-12-20 21:19) [30]
> DanweR (20.12.09 19:35) [12]
> Масив будет выводится на панельки... каждый елемент на отдельную
Сам придумал, про панельки-то ? Или доброжелатели подсказали ?
← →
Amoeba © (2009-12-20 22:31) [31]
> DanweR (20.12.09 19:35) [12]
>
> вобщем... непорядок щас у меня в голове =)
>
> Масив будет выводится на панельки... каждый елемент на отдельную.
> ..
Действительно в голове непорядок, раз ничего другого, кроме панелек в голову не пришло.
Выводи, например, в DrawGrid в событии OnDrawCell. И не надо будет кучу компонентов плодить вместо одного, достаточного для визуализации.
← →
TUser © (2009-12-20 23:12) [32]Да можно и с панельками, и даже без потоковы сделать. Повесь таймер.
← →
DanweR (2009-12-21 00:09) [33]я уже сделал =) спасибо
← →
Юрий Зотов © (2009-12-21 00:20) [34]> DanweR (21.12.09 00:09) [33]
Я тоже...
:o)
unit Unit1;
interface
uses
Windows, SysUtils, Classes, Controls, Forms, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure ButtonClick(Sender: TObject);
procedure VisualSwap(L, R: integer);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
Len = 10;
Size = 50;
var
Arr: array[1..Len] of integer;
Panels: array[1..Len] of TPanel;
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
BorderStyle := bsDialog;
SetBounds(Left, Top, 600, 200);
Position := poScreenCenter;
with TButton.Create(Self) do
begin
Caption := "Start";
Left := Self.Width - Width - 16;
Top := Self.Height - Height - 32;
OnClick := ButtonClick;
Parent := Self
end;
Randomize;
for i := 1 to Len do
begin
Arr[i] := 1 + Random(100);
Panels[i] := TPanel.Create(Self);
Panels[i].Caption := IntToStr(Arr[i]);
Panels[i].SetBounds(Size * (i - 1), 0, Size, Size);
Panels[i].Parent := Self
end
end;
procedure TForm1.ButtonClick(Sender: TObject);
var
i, j, A: integer;
begin
TButton(Sender).Enabled := False;
for i := Len downto 1 do
for j := 1 to Len - 1 do
if Arr[j] > Arr[j + 1] then
begin
A := Arr[j];
Arr[j] := Arr[j + 1];
Arr[j + 1] := A;
VisualSwap(j, j + 1)
end
end;
procedure TForm1.VisualSwap(L, R: integer);
procedure Delay;
var
T: cardinal;
begin
T := GetTickCount + 1;
while GetTickCount < T do
Application.ProcessMessages
end;
procedure MoveDown(Panel: TPanel);
var
i: integer;
begin
for i := Panel.Top + 1 to Panel.Top + Size + 10 do
begin
Panel.Top := i;
Delay
end
end;
procedure MoveUp(Panel: TPanel);
var
i: integer;
begin
for i := Panel.Top - 1 downto Panel.Top - Size - 10 do
begin
Panel.Top := i;
Delay
end
end;
procedure MoveLeft(Panel: TPanel);
var
i: integer;
begin
for i := Panel.Left - 1 downto Panel.Left - Size do
begin
Panel.Left := i;
Delay
end
end;
procedure MoveRight(Panel: TPanel);
var
i: integer;
begin
for i := Panel.Left + 1 to Panel.Left + Size do
begin
Panel.Left := i;
Delay
end
end;
var
P: TPanel;
begin
MoveDown(Panels[R]);
MoveRight(Panels[L]);
MoveLeft(Panels[R]);
MoveUp(Panels[R]);
P := Panels[R];
Panels[R] := Panels[L];
Panels[L] := P
end;
end.
← →
test © (2009-12-21 00:21) [35]Юрий Зотов © (21.12.09 00:20) [34]
Тебе тоже лабораторную задали? ))
← →
Юрий Зотов © (2009-12-21 00:28) [36]> test © (21.12.09 00:21) [35]
Отдыхаю. По Delphi соскучился. И захотелось посмотреть, как панельки елозят. Действительно - как будто пузырек всплывает.
:o)
← →
Германн © (2009-12-21 00:56) [37]
> Отдыхаю. По Delphi соскучился. И захотелось посмотреть,
> как панельки елозят. Действительно - как будто пузырек всплывает.
>
На Яве. джаве или как там её такой красоты нет?
← →
Юрий Зотов © (2009-12-21 00:59) [38]
> Германн © (21.12.09 00:56) [37]
Есть, конечно, только кодить дольше.
← →
Германн © (2009-12-21 01:08) [39]
> Юрий Зотов © (21.12.09 00:59) [38]
>
>
> > Германн © (21.12.09 00:56) [37]
>
>
> Есть, конечно, только кодить дольше.
>
:)
Мне пока проще. Я и на Delphi сейчас работаю довольно много. А язык ST для PL-контроллеров взял за основу Паскаль (очень близок к ТП).
← →
Германн © (2009-12-21 01:20) [40]
> Мне пока проще.
Правда я решаю бредовую задачу, которая не имеет (во всяком случае на сегодняшний день) практического решения. Чем всё это кончится - не знаю.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2010.03.07;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.005 c