Последовательности целых чисел - VB
Формулировка задачи:
Даны две последовательности целых чисел: а1, а2, ..., аn и b1 , b2,..., bm . Среди ai
нет повторяющихся чисел, нет их и среди bj , Построить последовательность из элементов bj которых нет среди элементов аi .
Я пытался... напутал и дальше не смог
Листинг программы
- input n
- input m
- dim a(m)
- dim b(n)
- print "заполните масив"
- for i=0 to n-1
- input a[i]
- next i
- print "заполните масив 1"
- for j=0 to m-1
- input a[j]
- next j
- cls
- for i=0 to n-1
- print a[i]
- next i
- for j=0 to m-1
- print b[j]
- next j
Решение задачи: «Последовательности целых чисел»
textual
Листинг программы
- Dim sT As String
- Dim iFlag As Integer
- Dim iI As Integer
- Dim iJ As Integer
- Dim iK As Integer
- Dim iAN As Integer
- Dim iBM As Integer
- Dim iCL As Integer
- Dim iA() As Integer
- Dim iB() As Integer
- Dim iC() As Integer
- '
- 'iAN = CInt(Val(InputBox("N=", "Размер массива A")))
- iAN = 7 ' Эту строку убрать, а в предыдущей строке раскоментить
- 'iBM = CInt(Val(InputBox("M=", "Размер массива B")))
- iBM = 12 ' Эту строку убрать, а в предыдущей строке раскоментить
- '
- ReDim iA(1 To iAN) As Integer ' это чтоб не думалось
- ReDim iB(1 To iBM) As Integer ' это чтоб совсем не думалось
- '
- ' Заполняем массив A.
- 'For iI = LBound(iA, 1) To UBound(iA, 1) Step 1
- ' ' Персональное приглашение для каждой переменной
- ' sT = "A(" + Trim$(Str$(iI)) + ")="
- ' ' Вводим элементы матрицы
- ' iA(iI) = CDbl(Val(InputBox(sT, "Элементы массива A")))
- 'Next iI
- ' Заполняем массив B.
- 'For iI = LBound(iB, 1) To UBound(iB, 1) Step 1
- ' ' Персональное приглашение для каждой переменной
- ' sT = "B(" + Trim$(Str$(iI)) + ")="
- ' ' Вводим элементы матрицы
- ' iB(iI) = CDbl(Val(InputBox(sT, "Элементы массива B")))
- 'Next iI
- ' Блок убрать, а предыдущий раскоментить
- ' ------------------------------
- ' Мне было влом каждый раз при отладки массивы с клавиатуры вводить. :-)
- iA(1) = 2
- iA(2) = 4
- iA(3) = 12
- iA(4) = 7
- iA(5) = 9
- iA(6) = 11
- iA(7) = 8
- '
- iB(1) = 7
- iB(2) = 8
- iB(3) = 25
- iB(4) = 14
- iB(5) = 77
- iB(6) = 12
- iB(7) = 21
- iB(8) = 9
- iB(9) = 45
- iB(10) = 34
- iB(11) = 43
- iB(12) = 55
- ' На счёт - Среди ai нет повторяющихся чисел, нет их и среди bj - проверяйте сами
- ' Вроде бы нет...
- ' ------------------------------
- '
- ' Построить последовательность из элементов Bj которых нет среди элементов Ai.
- '
- ' Сначала посчитаем, сколько таких есть.
- iCL = 0
- For iJ = LBound(iB, 1) To UBound(iB, 1) Step 1
- For iI = LBound(iA, 1) To UBound(iA, 1) Step 1
- ' Сравниваем iB(iJ) со всеми iA
- If iB(iJ) <> iA(iI) Then
- ' Bj нет среди элементов Ai
- Else
- ' Bj=Ai - опа, попался!
- iCL = iCL + 1
- End If
- Next iI
- Next iJ
- '
- sT = ""
- sT = sT + "Ai"
- sT = sT + Chr$(13) + Chr$(10)
- For iI = LBound(iA, 1) To UBound(iA, 1) Step 1
- sT = sT + Trim$(Str$(iA(iI))) + ";" + Chr$(9)
- Next iI
- sT = sT + Chr$(13) + Chr$(10)
- sT = sT + Chr$(13) + Chr$(10)
- sT = sT + "Bj"
- sT = sT + Chr$(13) + Chr$(10)
- For iI = LBound(iB, 1) To UBound(iB, 1) Step 1
- sT = sT + Trim$(Str$(iB(iI))) + ";" + Chr$(9)
- Next iI
- sT = sT + Chr$(13) + Chr$(10)
- sT = sT + Chr$(13) + Chr$(10)
- sT = sT + Chr$(13) + Chr$(10)
- sT = sT + Chr$(13) + Chr$(10)
- txtMatrix.Text = sT
- '
- If 0 = iCL Then
- MsgBox "Ни одного из Bj нет среди элементов Ai!", vbInformation
- End If
- iCL = iBM - iCL ' сухой остаток
- If 0 = iCL Then
- MsgBox "Строить не из чего!", vbInformation
- Exit Sub
- End If
- '
- ReDim iC(1 To iCL) As Integer ' это уж чтоб совсем не думалось
- '
- iK = 0
- For iJ = LBound(iB, 1) To UBound(iB, 1) Step 1
- iFlag = True
- For iI = LBound(iA, 1) To UBound(iA, 1) Step 1
- ' Сравниваем iB(iJ) со всеми iA
- If iB(iJ) <> iA(iI) Then
- ' Bj нет среди элементов Ai
- Else
- ' Bj=Ai - опа, попался!
- iFlag = False
- ' Одного совпадения достаточно!
- Exit For
- End If
- Next iI
- If True = iFlag Then
- ' Не попался - добавляем в последовательность.
- iK = iK + 1
- iC(iK) = iB(iJ)
- End If
- Next iJ
- '
- sT = sT + "Этих точно в Ai нет:"
- sT = sT + Chr$(13) + Chr$(10)
- For iI = LBound(iC, 1) To UBound(iC, 1) Step 1
- sT = sT + Trim$(Str$(iC(iI))) + ";" + Chr$(9)
- Next iI
- txtMatrix.Text = sT
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д