powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / массив уникальных значений
6 сообщений из 6, страница 1 из 1
массив уникальных значений
    #33472158
Студент13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
народ! помогите! мне нужно создать массив интов так что бы значения не повторялись.если значение повторяется сгенерировать его заново. но при этом значения добавляемые в массив генерируются в рандоме. подскажите как это сделать.
...
Рейтинг: 0 / 0
массив уникальных значений
    #33472176
S.A.N.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А массив большой?
Если нет, то можно до вставки в массив организовать проверку на ниличие в нем вставляемой записи.
Если массив большой, то можно попробовать создать заведомо больший массив чем необходимый, исключить из него повторения и пергнать в требуемый.
...
Рейтинг: 0 / 0
массив уникальных значений
    #33473400
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы для этого использовал коллекцию. Ничего перебирать не надо, а уникальность ключа проверяется автоматически.
...
Рейтинг: 0 / 0
массив уникальных значений
    #33473436
Как-нибудь так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Sub UniqueArray()
    
    Dim aintData() As Integer
    Dim intValue As Integer
    Dim intI As Integer
    Dim intJ As Integer
    Dim blnFlag As Boolean
        
    For intI =  1  To  10 
        Randomize
        ReDim Preserve aintData( 1  To intI)
Mark:
        blnFlag = False
        intValue = Int(( 10  * Rnd) +  1 )
        
        For intJ = LBound(aintData) To UBound(aintData) -  1 
            If aintData(intJ) = intValue Then
                blnFlag = True
                Exit For
            End If
        Next intJ
        
        If Not blnFlag Then
            aintData(intI) = intValue
            Debug.Print aintData(intI)
        Else
            GoTo Mark
        End If
    Next intI
End Sub
...
Рейтинг: 0 / 0
массив уникальных значений
    #33473562
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приношу свои извинения Пользователь2
А не лучше было бы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
       EndMas =  10  
       ReDim Preserve aintData(EndMas)
       For intI =  1  To EndMass
        Randomize
...
        For intJ = LBound(aintData) To EndMas  -  1 
...
       
Не изминяя вашу идею увиличиваем на порядок производительность алгоритма
...
Рейтинг: 0 / 0
массив уникальных значений
    #33473948
To SmeL_md:

Да, конечно. Тогда уж без Preserve.

На самом деле я бы тоже воспользовался коллекцией.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / массив уникальных значений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]