Страница: 1 |
Sub Мак() Const l = 25 Const Msg1 = "Введи число Х" Const Msg2 = "Введи число Y" Const Msg3 = "Вывести результат? " Const MaxRnd = 5000 Const MImRnd = 1 Dim x As Integer, y As Integer Dim RndNum As Integer Dim ArrayRnd() x = Val(InputBox(Msg1)) y = Val(InputBox(Msg2)) ReDim ArrayRnd(l) For j = 1 To l RndNum = Int((MaxRnd * Rnd) + MImRnd) 'СлучЧисл If (RndNum Mod x) > y Then ArrayRnd(j) = 0 Else ArrayRnd(j) = RndNum End If Next If MsgBox(Msg3, 1) = vbOK Then Range("A1:A" & l).ClearContents For j = 1 To l Range("A" & j) = ArrayRnd(j) Next End If End Sub 2dedtolya & 2Юрсик: Премного благодарен!!! Страница: 1 |
Вопрос: Массив случайных чисел в VBA
Добавлено: 09.04.04 15:56
Автор вопроса:
Denius
Здравствуйте!
С помощью генератора случайных чисел необходимо создать массив на, скажем, 25 элементов. Затем в диалоговом режиме ввести два целых числа X и Y. В исходном массиве заменить нулями элементы, модуль которых при делении на Х дает в остатке число, большее Y. Полученный массив вывести в диалоговом окне.
Нужна Ваша помощь, подскажите, пожалуйста.
Спасибо!
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа: dedtolya
Вопросов: 0
Ответов: 39
Профиль | | #1
Добавлено: 09.04.04 20:47
Номер ответа: 2
Автор ответа: Юрсик
Вопросов: 0
Ответов: 1
Профиль | | #2
Добавлено: 10.04.04 00:41
Здравствуйте! Уважаемые разработчики ресурса Vbnet.ru
Как и просили, мой вариант ответа на задание:
С помощью генератора случайных чисел необходимо создать массив на, скажем,
25 элементов. Затем в диалоговом режиме ввести два целых числа X и Y. В
исходном массиве заменить нулями элементы, модуль которых при делении на Х
дает в остатке число, большее Y. Полученный массив вывести в диалоговом
окне.
Текст исходника!
Option Explicit
Dim intArray(), _
intX, _
intY, _
intKol, _
i _
As Integer
Private Sub cmdCreateArray_Click()
On Error GoTo mError
'Количество элементов в массиве
intKol = CInt(txtKol.Text)
'Переопределяем размерность массива
ReDim intArray(intKol)
'Добиваемся случайного набора случайных чисел
Randomize Timer
'Заполняем массив случайными числами от 0 до 99 +отрицательные
For i = 1 To intKol
intArray(i) = 50 - Fix(Rnd(1) * 100)
Next i
'Вывод результата
txtShowArrayDo.Text = ""
For i = 1 To intKol
txtShowArrayDo.Text = txtShowArrayDo.Text + Str(intArray(i)) + vbCrLf
Next i
Exit Sub
'Обработка ошибок
mError:
MsgBox "Ошибка! Error!"
End Sub
Private Sub cmdEditArray_Click()
On Error GoTo mError
intX = CInt(txtX.Text)
intY = CInt(txtY.Text)
txtShowArrayPosle.Text = ""
For i = 1 To intKol
'Проверяем условие (см. задание)
If (Abs(intArray(i)) Mod intX) > intY Then
intArray(i) = 0
End If
'Вывод результата
txtShowArrayPosle.Text = txtShowArrayPosle.Text + Str(intArray(i)) +
vbCrLf
Next i
Exit Sub
'Обработка ошибок
mError:
MsgBox "Ошибка! Error!"
End Sub
Номер ответа: 3
Автор ответа: Denius
Вопросов: 2
Ответов: 1
Профиль | | #3
Добавлено: 12.04.04 16:52