Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Visual Basic Новый топик    Ответить
 Как инициализировать двумерный массив случайными числами?  [new]
fess56rus
Member

Откуда:
Сообщений: 9
Собственно вопрос в теме, но на всякий случай повторюсь: Как инициализировать двумерный массив случайными числами в VB6?
Буду благодарен, если объясните
5 дек 16, 11:00    [19967181]     Ответить | Цитировать Сообщить модератору
 Re: Как инициализировать двумерный массив случайными числами?  [new]
fess56rus
Member

Откуда:
Сообщений: 9
Собственно пишу программу по задачке: Дан двумерный массив размерностью N x M элементов.
Определить количество элементов, значения которых больше заданного числа F.
И не могу рандомизировать числа в массиве.
[/SRC]Dim am() As Integer
Private Sub Command1_Click()
 N = Val(Text1)
 M = Val(Text2)
 F = Val(Text3)
 k = 0
 am(i, j) = ? Вот тут и не получается
For i = 0 To N - 1
    For j = 0 To M - 1
If am(i, j) > F Then k = k + 1
    Next
Next
Picture1.Print am(i, j);
Picture2.Print k
End Sub[SRC VB]


К сообщению приложен файл (Проект1.vbp - 594bytes) cкачать
5 дек 16, 11:05    [19967208]     Ответить | Цитировать Сообщить модератору
 Re: Как инициализировать двумерный массив случайными числами?  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20863
fess56rus
Как инициализировать двумерный массив случайными числами в VB6?
Вложенный цикл по двум измерениям массива (полный обход массива) и присвоение каждому элементу случайного числа. Пять строк кода. Что конкретно не получается?
5 дек 16, 13:50    [19968050]     Ответить | Цитировать Сообщить модератору
 Re: Как инициализировать двумерный массив случайными числами?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19603
Инициализировать точно так же, как потом ищешь - в двойном цикле, по одному элементу.
5 дек 16, 13:51    [19968056]     Ответить | Цитировать Сообщить модератору
 Re: Как инициализировать двумерный массив случайными числами?  [new]
fess56rus
Member

Откуда:
Сообщений: 9
Shocker.Pro,

Дык, я вообще не понимаю бейсика. Двумерные массивы - не мое. Не получается у меня создать рандомный массив=(
5 дек 16, 14:01    [19968130]     Ответить | Цитировать Сообщить модератору
 Re: Как инициализировать двумерный массив случайными числами?  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72965
Dim am() As Integer 'массив объявлен, но не инициализирован

Private Sub Command1_Click()
    N = Val(Text1)
    M = Val(Text2)
    F = Val(Text3)
    k = 0
    ReDim am(N, M)  'инициализация массива
    Randomize Timer 'инициализация генератора случайных чисел таймером - для большей случайности

    'заполнение массива случайными числами
    For i = 0 To N - 1
        For j = 0 To M - 1
            am(i, j) = Rnd(Timer) * F * 2 'Rnd возвращает десятичное значение от нуля до единицы.
            'так как диапазон значений F засекречен, умножаем его на два, чтобы в массиве были и большие и меньшие значения. 
            'таймер - для еще большей случайности
        Next
    Next

    For i = 0 To N - 1
        For j = 0 To M - 1
            If am(i, j) > F Then k = k + 1
        Next
    Next
    Picture1.Print am(i, j);
    Picture2.Print k
End Sub
5 дек 16, 16:30    [19968957]     Ответить | Цитировать Сообщить модератору
 Re: Как инициализировать двумерный массив случайными числами?  [new]
by-pass
Member

Откуда: Зеленоград (Москва)
Сообщений: 541
fess56rus,

Ну почитайте хоть немного.
Вам нужно:
  • инициализировать генератор случайных чисел;
  • в цикле заполнить Ваш двумерный массив.

    ' Initialize the random-number generator.
    Randomize()
    ' Generate random value between 1 and 6.
    Dim value As Integer = CInt(Int((6 * Rnd()) + 1))
    
  • 5 дек 16, 16:31    [19968960]     Ответить | Цитировать Сообщить модератору
     Re: Как инициализировать двумерный массив случайными числами?  [new]
    Antonariy
    Member

    Откуда: ☭
    Сообщений: 72965
    by-pass
    fess56rus,

    Ну почитайте хоть немного.
    Вам нужно:
  • инициализировать генератор случайных чисел;
  • в цикле заполнить Ваш двумерный массив.

    ' Initialize the random-number generator.
    Randomize()
    ' Generate random value between 1 and 6.
    Dim value As Integer = CInt(Int((6 * Rnd()) + 1))
    
  • дотнет детектед.
    5 дек 16, 16:35    [19968977]     Ответить | Цитировать Сообщить модератору
     Re: Как инициализировать двумерный массив случайными числами?  [new]
    Roman Mejtes
    Member

    Откуда: г. Пермь
    Сообщений: 3573
    fess56rus
    Shocker.Pro,

    Дык, я вообще не понимаю бейсика. Двумерные массивы - не мое. Не получается у меня создать рандомный массив=(

    если вы не понимаете Basic и таких элементарных основ, значит учить вам это и пытаться это сдавать не имеет смысл. Необходимо вернуться к основам и учить всё сначала.
    Basic простейший язык программирования, но к данному (вашему) вопросу он практически не имеет ни какого отношения.
    на любом языке инициализация 2мерного массива случайными числами осуществляется одинаково. Либо возьмитесь за голову, отройте книги и научитесь читать, либо подумайте о другой профессии, где не надо будет учить Basic, простейший из языков высокого уровня
    5 дек 16, 17:10    [19969185]     Ответить | Цитировать Сообщить модератору
     Re: Как инициализировать двумерный массив случайными числами?  [new]
    vborets
    Member

    Откуда:
    Сообщений: 159
    Если надо просто ответ, то массив создавать не надо даже.

    Генерируется случайное число и считается сколько больше заданного и всё :-)
    5 дек 16, 18:47    [19969608]     Ответить | Цитировать Сообщить модератору
     Re: Как инициализировать двумерный массив случайными числами?  [new]
    fess56rus
    Member

    Откуда:
    Сообщений: 9
    Roman Mejtes,

    Бэйсик мне нужен лишь для допуска к зачетам на первом курсе, дальше он мне не понадобится ни в коем разе=)
    5 дек 16, 19:15    [19969693]     Ответить | Цитировать Сообщить модератору
     Re: Как инициализировать двумерный массив случайными числами?  [new]
    fess56rus
    Member

    Откуда:
    Сообщений: 9
    Antonariy,

    Спасибо
    5 дек 16, 19:16    [19969696]     Ответить | Цитировать Сообщить модератору
     Re: Как инициализировать двумерный массив случайными числами?  [new]
    fess56rus
    Member

    Откуда:
    Сообщений: 9
    Задача решена, всем спасибо
    Dim am() As Integer
    Private Sub Command1_Click()
    Picture1.Cls
    Picture2.Cls
     n = Val(Text1)
     m = Val(Text2)
     F = Val(Text3)
     k = 0
     Dim s As String
     Dim am() As Long
     Dim mas() As Long
      ReDim am(n, m)
      Randomize Timer
    For i = 0 To n - 1
        For j = 0 To m - 1
           am(i, j) = Rnd(Timer) * F * 2
           If am(i, j) > F Then k = k + 1
           s = s & am(i, j) & " "
        Next
    s = s & vbCrLf
    Next
    Picture1.Print s
    Picture2.Print k
    End Sub
    
    5 дек 16, 20:36    [19969901]     Ответить | Цитировать Сообщить модератору
    Все форумы / Visual Basic Ответить