Поиск строки в двумерном массиве состоящей из элементов равных числу а - VB

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

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

Определить, есть ли в данном двумерном массиве строка (столбец), состоящая только из элементов равных числу А.

Решение задачи: «Поиск строки в двумерном массиве состоящей из элементов равных числу а»

textual
Листинг программы
  1. Option Explicit
  2. Option Base 1
  3. '
  4. '   © Антихакер32
  5. '
  6. 'Определить, есть ли в данном двумерном массиве строка (столбец),
  7. 'состоящая только из элементов равных числу А.
  8. Dim WithEvents cm1 As CommandButton, WithEvents cm2 As CommandButton
  9. Dim b As Boolean
  10.  
  11. Private Sub cm1_Click()
  12.     Form_Activate
  13. End Sub
  14.  
  15. Private Sub cm2_Click()
  16.     b = False: Form_Activate
  17. End Sub
  18.  
  19. Private Sub Form_Activate()
  20.     Const matrix = 500, l = 5
  21.     Dim arr(l, l), X&, Y&, n&, b1 As Boolean, i&, o As Object
  22.     Static c(l * l + l + 2) As CommandButton, s$
  23.     If b Then GoTo povtor
  24.     For Each o In Me: Controls.Remove o: Next
  25.     Do: Do
  26.             s = InputBox("Введите число A от 1 до " & l & " ..", , "3")
  27.         Loop While Not IsNumeric(s)
  28.         b1 = s < 1 Or s > l
  29.         If b1 Then If MsgBox("Неверно, продолжить? ..", vbYesNo Or vbInformation) = vbNo Then Exit Sub
  30.     Loop While b1
  31. povtor:
  32.     Randomize Timer
  33.     Do: DoEvents
  34.         For Y = 1 To l
  35.             For X = 1 To l
  36.                 arr(X, Y) = 1 + Fix(Rnd * l)
  37.                 If b = False Then
  38.                     i = (Y - 1) * l + X
  39.                     Set c(i) = Controls.Add("vb.CommandButton", "c" & X & Y)
  40.                     c(i).Move (X - 1) * matrix, (Y - 1) * matrix, matrix, matrix
  41.                     c(i).Visible = True
  42.                 End If
  43.             Next
  44.         Next
  45.         If b = False Then
  46.             i = (Y - 1) * l + X
  47.             Set c(i) = Controls.Add("vb.CommandButton", "c" & X & Y & 1)
  48.             Set cm1 = c(i): c(i).Move 0, (Y - 1) * matrix, matrix * 2, matrix
  49.             c(i).Caption = "Повтор": c(i).Visible = True
  50.             Set c(i) = Controls.Add("vb.CommandButton", "c" & X & Y & 2)
  51.             Set cm2 = c(i): c(i).Move matrix * 2, (Y - 1) * matrix, matrix * 2, matrix
  52.             c(i).Caption = "Ввод": c(i).Visible = True
  53.             Me.Refresh
  54.         End If
  55.         b = True
  56.        '''
  57.       For Y = 1 To l: n = 0: For X = 1 To l
  58.                 If arr(X, Y) = s Then n = n + 1: If n = l Then GoTo stroka
  59.         Next: Next
  60.         For X = 1 To l: n = 0: For Y = 1 To l
  61.                 If arr(X, Y) = s Then n = n + 1: If n = l Then GoTo stolbex
  62.         Next: Next
  63.     Loop
  64.     Exit Sub
  65. stroka:
  66.     n = Y
  67.     For Y = 1 To l: For X = 1 To l
  68.             i = (Y - 1) * l + X
  69.             c(i).FontSize = IIf(n = Y, 14, 9)
  70.             c(i).FontBold = IIf(n = Y, 1, 0)
  71.             c(i).Caption = arr(X, Y)
  72.     Next: Next
  73.     Exit Sub
  74. stolbex:
  75.     n = X
  76.     For Y = 1 To l: For X = 1 To l
  77.             i = (Y - 1) * l + X
  78.             c(i).FontSize = IIf(n = X, 14, 9)
  79.             c(i).FontBold = IIf(n = X, 1, 0)
  80.             c(i).Caption = arr(X, Y)
  81.     Next: Next
  82.     Exit Sub
  83. End Sub

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


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

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

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

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

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

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