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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы