Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Рассортировать числа случайным образом Добавлено: 14.03.05 14:01  

Автор вопроса:  serrin | Web-сайт: on upgrade | ICQ: 163955885 
Есть например числа 1,2,3,4,5(причём количество чисел меняется).Как их рассортировать случайным образом?Заранее извиняюсь,возможно такой вопрос уже был,но поиск в этом форуме постоянно глючит,ошибка на ошибке,если есть тема подобная киньте просто ссылку

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #1
Добавлено: 14.03.05 16:00

Dim RandomNumber, Value
Randomize Timer
RandomNumber=INT(Value*RND)
MsgBox RandomNumber

Ответить

Номер ответа: 2
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #2
Добавлено: 14.03.05 16:25
Положи свои цифирки в массив, бери по две случайно (спасибо Cyrax :) и меняй их значения местами. Делать это несколько раз или случайно:
10 + INT(50*RND)

Ответить

Номер ответа: 3
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #3
Добавлено: 14.03.05 16:48
можно по простому создать др. массив и заполнять его из первого в случайном порядке. но это будет долше + надобержать логический массив, в котором содержится инфа о выбранных элементах

Ответить

Номер ответа: 4
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #4 Добавлено: 14.03.05 16:51
Dim Arr(0 To 10) As Long
Private Sub Комманда1_Click()
    ;Dim i As Long
    For i = 0 To 10 'массив чисел, идущих по порядку
        Arr(i) = i
    Next i
    Перемешать
End Sub

Sub Перемешать()
    ;Dim i As Long, k As Long, OutArr(0 To 10) As Long
    For i = 0 To 10
        OutArr(i) = -1
    Next i
    Randomize Timer
    For i = 0 To 10
        k = Rnd * 10
        ;Do While OutArr(k) <> -1
            k = k + 1
            If k > 10 Then k = 0
        Loop
        OutArr(k) = Arr(i)
    Next i
    For i = 0 To 10
        ;Debug.Print OutArr(i)
    Next i
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 serrin



ICQ: 163955885 

Вопросов: 7
Ответов: 12
 Web-сайт: on upgrade
 Профиль | | #5
Добавлено: 14.03.05 23:06
Ребят,спасибо,но задача несколько сложнее.массив таким образом
Dim A(X) as long,где X постоянно меняющееся количество циферок не задашь)

Ответить

Номер ответа: 6
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 14.03.05 23:14
Ну значит массив Dim Arr() As Long

Далее как поменяется эта самая циферка, то Redim Arr(X)

И в циклах сделать следует так:

 For i = 0 To UBound(Arr)

Ответить

Номер ответа: 7
Автор ответа:
 serrin



ICQ: 163955885 

Вопросов: 7
Ответов: 12
 Web-сайт: on upgrade
 Профиль | | #7
Добавлено: 14.03.05 23:16
Тормознулся вот на чём...
    ;Dim X As Long
    ;Dim J As Integer
    ;Dim Count As Integer
    
    ;Dim ExistInArray As Boolean
    
    Count = 5

    For J = 0 To Count
        ;Do
            ExistInArray = False
            Randomize Timer
            X = CLng(Rnd * Count)
            For I = 0 To List1.ListCount - 1
                If Val(List1.List(I)) = X Then ExistInArray = True: Exit For
            Next I
            If ExistInArray = False Then Exit Do
        Loop
        List1.AddItem X
    Next J
НО!эта падла почемуто работает только в событии form_load,а мне надо штоб несколько раз...когда же её ставишь отдельным subом она,тварь вешает...Собсно готов биться башкой об стену,вот и спросил ваших идей)

Ответить

Номер ответа: 8
Автор ответа:
 serrin



ICQ: 163955885 

Вопросов: 7
Ответов: 12
 Web-сайт: on upgrade
 Профиль | | #8
Добавлено: 14.03.05 23:47

Всем огромное спасибо,отдельно sne...не знал про Redim Arr(X).Подтверждается старое правило-прежде чем спросить учи матчасть)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам