VBA Построить первые n натуральных чисел, делителями которых являются только числа 2, 3, 5
Формулировка задачи:
Начал делать программу на VBA, но никак не могу понять как сделать правильное условие, постоянно выводит не то что мне нужно. Что мне нужно исправить? Ввод массива осуществляется в ручную.
Sub Кнопка1_Щелчок()
Dim r, i, ch As Integer
dl = 30
r = InputBox("Размер массива") - 1
Dim MyArr() As Integer
ReDim MyArr(r)
Cells(1, 1) = "Начальный массив: "
For i = 0 To r
MyArr(i) = InputBox("Введите" & " " & i + 1 & " " & "элемент массива")
Cells(1, i + 2) = MyArr(i)
Next
For i = 0 To r
If MyArr(i) >= 30 Then
ch = MyArr(i) Mod dl
End If
Next
Cells(2, 1) = "Числа, делителями которых являются: 2,3,5"
Cells(2, 2) = ch
End Sub
Решение задачи: «VBA Построить первые n натуральных чисел, делителями которых являются только числа 2, 3, 5»
textual
Листинг программы
- Option Explicit
- Dim a, i, j, x, y, w$, s$, кратное
- Sub Построить_первые_n_натуральных_чисел_делителями_которых_являются_только_числа_2_3_5()
- Ввод
- Решение
- Вывод
- End Sub
- Private Sub Ввод()
- s$ = "": w$ = ""
- Do
- i = InputBox("Введите размер массива ", , 10)
- If i = "" Then If MsgBox("Хотите выйти ?", 68) = vbYes Then Exit Sub
- If IsNumeric(i) Then Exit Do
- Loop
- ReDim a(1 To i): Randomize Timer
- For j = 1 To UBound(a)
- Do
- кратное = Array(30, 60, 90, 120, 150, 180)(Fix(Rnd * 6))
- x = Fix(Rnd * 2) + 1: y = Fix(Rnd * 1000) 'Элементы по умолчанию
- i = InputBox("Введите " & j & "-й индекс массива", , Choose(x, кратное, y))
- If i = "" Then If MsgBox("Хотите выйти ?", 68) = vbYes Then Exit Sub
- If IsNumeric(i) Then Exit Do
- Loop: a(j) = i
- Next
- End Sub
- Private Sub Решение()
- Const z = ", "
- If Not IsArray(a) Then Exit Sub
- For i = 1 To UBound(a)
- s = s & z & a(i)
- If a(i) Mod 30 = 0 Then w = w & z & a(i)
- Next
- s = Mid$(s, 2): w = Mid$(w, 2)
- End Sub
- Private Sub Вывод()
- If Len(s) = 0 Then Exit Sub
- x = "Начальный массив": y = "Конечный массив"
- Cells(1, 1) = x
- Cells(1, 2) = s
- Cells(2, 1) = y
- Cells(2, 2) = w
- MsgBox x & vbLf & s & vbLf & y & vbLf & w
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д