Последовательности целых чисел - VB

Узнай цену своей работы

Формулировка задачи:

Даны две последовательности целых чисел: а1, а2, ..., аn и b1 , b2,..., bm . Среди ai нет повторяющихся чисел, нет их и среди bj , Построить последовательность из элементов bj которых нет среди элементов аi . Я пытался... напутал и дальше не смог
Листинг программы
  1. input n
  2. input m
  3. dim a(m)
  4. dim b(n)
  5. print "заполните масив"
  6. for i=0 to n-1
  7. input a[i]
  8. next i
  9. print "заполните масив 1"
  10. for j=0 to m-1
  11. input a[j]
  12. next j
  13. cls
  14. for i=0 to n-1
  15. print a[i]
  16. next i
  17. for j=0 to m-1
  18. print b[j]
  19. next j

Решение задачи: «Последовательности целых чисел»

textual
Листинг программы
  1.   Dim sT As String
  2.   Dim iFlag As Integer
  3.   Dim iI As Integer
  4.   Dim iJ As Integer
  5.   Dim iK As Integer
  6.   Dim iAN As Integer
  7.   Dim iBM As Integer
  8.   Dim iCL As Integer
  9.   Dim iA() As Integer
  10.   Dim iB() As Integer
  11.   Dim iC() As Integer
  12.   '
  13.  'iAN = CInt(Val(InputBox("N=", "Размер массива A")))
  14.  iAN = 7 ' Эту строку убрать, а в предыдущей строке раскоментить
  15.  'iBM = CInt(Val(InputBox("M=", "Размер массива B")))
  16.  iBM = 12 ' Эту строку убрать, а в предыдущей строке раскоментить
  17.  '
  18.  ReDim iA(1 To iAN) As Integer ' это чтоб не думалось
  19.  ReDim iB(1 To iBM) As Integer ' это чтоб совсем не думалось
  20.  '
  21.  ' Заполняем массив A.
  22.  'For iI = LBound(iA, 1) To UBound(iA, 1) Step 1
  23.  '  ' Персональное приглашение для каждой переменной
  24.  '  sT = "A(" + Trim$(Str$(iI)) + ")="
  25.  '  ' Вводим элементы матрицы
  26.  '  iA(iI) = CDbl(Val(InputBox(sT, "Элементы массива A")))
  27.  'Next iI
  28.  ' Заполняем массив B.
  29.  'For iI = LBound(iB, 1) To UBound(iB, 1) Step 1
  30.  '  ' Персональное приглашение для каждой переменной
  31.  '  sT = "B(" + Trim$(Str$(iI)) + ")="
  32.  '  ' Вводим элементы матрицы
  33.  '  iB(iI) = CDbl(Val(InputBox(sT, "Элементы массива B")))
  34.  'Next iI
  35.  ' Блок убрать, а предыдущий раскоментить
  36.  ' ------------------------------
  37.  ' Мне было влом каждый раз при отладки массивы с клавиатуры вводить. :-)
  38.  iA(1) = 2
  39.   iA(2) = 4
  40.   iA(3) = 12
  41.   iA(4) = 7
  42.   iA(5) = 9
  43.   iA(6) = 11
  44.   iA(7) = 8
  45.   '
  46.  iB(1) = 7
  47.   iB(2) = 8
  48.   iB(3) = 25
  49.   iB(4) = 14
  50.   iB(5) = 77
  51.   iB(6) = 12
  52.   iB(7) = 21
  53.   iB(8) = 9
  54.   iB(9) = 45
  55.   iB(10) = 34
  56.   iB(11) = 43
  57.   iB(12) = 55
  58.   ' На счёт - Среди ai нет повторяющихся чисел, нет их и среди bj - проверяйте сами
  59.  ' Вроде бы нет...
  60.  ' ------------------------------
  61.  '
  62.  ' Построить последовательность из элементов Bj которых нет среди элементов Ai.
  63.  '
  64.  ' Сначала посчитаем, сколько таких есть.
  65.  iCL = 0
  66.   For iJ = LBound(iB, 1) To UBound(iB, 1) Step 1
  67.     For iI = LBound(iA, 1) To UBound(iA, 1) Step 1
  68.       ' Сравниваем iB(iJ) со всеми iA
  69.      If iB(iJ) <> iA(iI) Then
  70.         ' Bj нет среди элементов Ai
  71.      Else
  72.         ' Bj=Ai - опа, попался!
  73.        iCL = iCL + 1
  74.       End If
  75.     Next iI
  76.   Next iJ
  77.   '
  78.  sT = ""
  79.   sT = sT + "Ai"
  80.   sT = sT + Chr$(13) + Chr$(10)
  81.   For iI = LBound(iA, 1) To UBound(iA, 1) Step 1
  82.     sT = sT + Trim$(Str$(iA(iI))) + ";" + Chr$(9)
  83.   Next iI
  84.   sT = sT + Chr$(13) + Chr$(10)
  85.   sT = sT + Chr$(13) + Chr$(10)
  86.   sT = sT + "Bj"
  87.   sT = sT + Chr$(13) + Chr$(10)
  88.   For iI = LBound(iB, 1) To UBound(iB, 1) Step 1
  89.     sT = sT + Trim$(Str$(iB(iI))) + ";" + Chr$(9)
  90.   Next iI
  91.   sT = sT + Chr$(13) + Chr$(10)
  92.   sT = sT + Chr$(13) + Chr$(10)
  93.   sT = sT + Chr$(13) + Chr$(10)
  94.   sT = sT + Chr$(13) + Chr$(10)
  95.   txtMatrix.Text = sT
  96.   '
  97.  If 0 = iCL Then
  98.     MsgBox "Ни одного из Bj нет среди элементов Ai!", vbInformation
  99.   End If
  100.   iCL = iBM - iCL ' сухой остаток
  101.  If 0 = iCL Then
  102.     MsgBox "Строить не из чего!", vbInformation
  103.     Exit Sub
  104.   End If
  105.   '
  106.  ReDim iC(1 To iCL) As Integer ' это уж чтоб совсем не думалось
  107.  '
  108.  iK = 0
  109.   For iJ = LBound(iB, 1) To UBound(iB, 1) Step 1
  110.     iFlag = True
  111.     For iI = LBound(iA, 1) To UBound(iA, 1) Step 1
  112.       ' Сравниваем iB(iJ) со всеми iA
  113.      If iB(iJ) <> iA(iI) Then
  114.         ' Bj нет среди элементов Ai
  115.      Else
  116.         ' Bj=Ai - опа, попался!
  117.        iFlag = False
  118.         ' Одного совпадения достаточно!
  119.        Exit For
  120.       End If
  121.     Next iI
  122.     If True = iFlag Then
  123.       ' Не попался - добавляем в последовательность.
  124.      iK = iK + 1
  125.       iC(iK) = iB(iJ)
  126.     End If
  127.   Next iJ
  128.   '
  129.  sT = sT + "Этих точно в Ai нет:"
  130.   sT = sT + Chr$(13) + Chr$(10)
  131.   For iI = LBound(iC, 1) To UBound(iC, 1) Step 1
  132.     sT = sT + Trim$(Str$(iC(iI))) + ";" + Chr$(9)
  133.   Next iI
  134.   txtMatrix.Text = sT

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


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

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

5   голосов , оценка 3.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы