Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Массив случайных чисел в VBA Добавлено: 09.04.04 15:56  

Автор вопроса:  Denius
Здравствуйте!
С помощью генератора случайных чисел необходимо создать массив на, скажем, 25 элементов. Затем в диалоговом режиме ввести два целых числа X и Y. В исходном массиве заменить нулями элементы, модуль которых при делении на Х дает в остатке число, большее Y. Полученный массив вывести в диалоговом окне.
Нужна Ваша помощь, подскажите, пожалуйста.
Спасибо!

Ответить

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

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



Вопросов: 0
Ответов: 39
 Профиль | | #1 Добавлено: 09.04.04 20:47

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

Ответить

Номер ответа: 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

2dedtolya & 2Юрсик: Премного благодарен!!!

Ответить

Страница: 1 |

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



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