Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
Феликс ©   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.032 c
6-1078011744
ALF
2004-02-29 02:42
2004.04.25
SMTP-отправка писем через IdSMTP


4-1077119679
Subdigger
2004-02-18 18:54
2004.04.25
TTreeView - ScrollBox


4-1077969851
Vlad25
2004-02-28 15:04
2004.04.25
GetKeyboardState


1-1081345478
ЧупаЧупс
2004-04-07 17:44
2004.04.25
Буфер обмена


3-1080812013
4ward
2004-04-01 13:33
2004.04.25
кодировка foxpro





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский