Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Как перемешать строки   Найти похожие ветки 

 
Феликс ©   (2004-04-07 00:25) [0]

В listboxe есть строки:
1
2
3
4
5
6
7
8
и.т.д

Нужно эти строки перемашать как карты в колоде (т.е по принципу случайного перемещения). Как такое сделать?

Заранее благодарен. Очень нужен исходник.


 
SergP ©   (2004-04-07 00:37) [1]

Ну это уж очень просто...
Например типа так:

for i:=1 to N-1 do
begin
j:= ...//здесь выбираем рандомайзером что-нить от i до N
// затем меняем местами строки i и j
end;

Или тебе нужна сама реализация?


 
Феликс ©   (2004-04-07 00:40) [2]

А я так и делал, но чего-то какая-то ошибка вылетает. Я подумал, что может это не самый эффективный способ. Короче если подскажите реализацию было бы очень круто.


 
Кщд   (2004-04-07 06:20) [3]

обмен значениями м/у двумя элементами массива уже проблема?


 
SergP ©   (2004-04-07 08:23) [4]

procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
stroka:string;
begin
with listbox1.items do for i:=0 to count-1 do
 begin
   j:=random(Count-i)+i;
   stroka:=Strings[i];
   Strings[i]:=Strings[j];
   Strings[j]:=stroka;
end;

end;

initialization
randomize;

Написал и сразу же проверил. Все работает нормально.
А что за ошибка вылетает... И где?


 
Anatoly Podgoretsky ©   (2004-04-07 09:14) [5]

SergP ©   (07.04.04 08:23) [4]
Он же так никогда не научится программировать, только CopyPaste


 
SergP ©   (2004-04-07 13:43) [6]


> Anatoly Podgoretsky ©   (07.04.04 09:14) [5]


Это его проблемы. Хотя...

я вот раньше писал почти только на FoxPro (под DOS), по крайней мере на Паскале никогда не пробовал писать и когда первый раз поставил Delphi, то понятия не имел что мне с ним дальше делать.
Попросил друга чтобы он мне написал какой-нить простой примерчик в моем присутствии. Ну и дальше уже сам разбирался. Но если бы мне тогда никто ничего не показывал, то я наверное бы забросил Delphi.
Возможно человеку тоже было нужно что-нить, типа для рывка...


 
Тимохов ©   (2004-04-07 13:47) [7]


> SergP ©   (07.04.04 13:43) [6]

разница с этим случаем в том, что у вас (я так понял) не было задания. дельфи вы изучали т.к. считали это нужным и полезным.

в данном случае уже и дело есть, а разбираться как сделать лень...


 
Феликс ©   (2004-04-07 19:32) [8]

2 SergP
Все работает. Спасибо.


 
Verg ©   (2004-04-07 20:18) [9]


> Возможно человеку тоже было нужно что-нить, типа для рывка...


> Попросил друга чтобы он мне написал какой-нить простой примерчик
> в моем присутствии.


 
SergP ©   (2004-04-08 09:06) [10]

>Verg ©   (07.04.04 20:18)

Неужели c тобой так никогда не было?



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
1-1081413585
Just_Lucky
2004-04-08 12:39
2004.04.25
Подключить ActiveX dll


6-1077115256
Svart
2004-02-18 17:40
2004.04.25
работа с SNMP


1-1081186012
KommandorDi
2004-04-05 21:26
2004.04.25
Освобождение памяти, занятой динамически созданным объектом


14-1081150019
peypivo
2004-04-05 11:26
2004.04.25
MS SQL Server


1-1081409712
denis24
2004-04-08 11:35
2004.04.25
Мигание итемов в RadioGroup