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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д