Поиск строки в двумерном массиве состоящей из элементов равных числу а - VB
Формулировка задачи:
Определить, есть ли в данном двумерном массиве строка (столбец), состоящая только из элементов равных числу А.
Решение задачи: «Поиск строки в двумерном массиве состоящей из элементов равных числу а»
textual
Листинг программы
Option Explicit Option Base 1 ' ' © Антихакер32™ ' 'Определить, есть ли в данном двумерном массиве строка (столбец), 'состоящая только из элементов равных числу А. Dim WithEvents cm1 As CommandButton, WithEvents cm2 As CommandButton Dim b As Boolean Private Sub cm1_Click() Form_Activate End Sub Private Sub cm2_Click() b = False: Form_Activate End Sub Private Sub Form_Activate() Const matrix = 500, l = 5 Dim arr(l, l), X&, Y&, n&, b1 As Boolean, i&, o As Object Static c(l * l + l + 2) As CommandButton, s$ If b Then GoTo povtor For Each o In Me: Controls.Remove o: Next Do: Do s = InputBox("Введите число A от 1 до " & l & " ..", , "3") Loop While Not IsNumeric(s) b1 = s < 1 Or s > l If b1 Then If MsgBox("Неверно, продолжить? ..", vbYesNo Or vbInformation) = vbNo Then Exit Sub Loop While b1 povtor: Randomize Timer Do: DoEvents For Y = 1 To l For X = 1 To l arr(X, Y) = 1 + Fix(Rnd * l) If b = False Then i = (Y - 1) * l + X Set c(i) = Controls.Add("vb.CommandButton", "c" & X & Y) c(i).Move (X - 1) * matrix, (Y - 1) * matrix, matrix, matrix c(i).Visible = True End If Next Next If b = False Then i = (Y - 1) * l + X Set c(i) = Controls.Add("vb.CommandButton", "c" & X & Y & 1) Set cm1 = c(i): c(i).Move 0, (Y - 1) * matrix, matrix * 2, matrix c(i).Caption = "Повтор": c(i).Visible = True Set c(i) = Controls.Add("vb.CommandButton", "c" & X & Y & 2) Set cm2 = c(i): c(i).Move matrix * 2, (Y - 1) * matrix, matrix * 2, matrix c(i).Caption = "Ввод": c(i).Visible = True Me.Refresh End If b = True ''' For Y = 1 To l: n = 0: For X = 1 To l If arr(X, Y) = s Then n = n + 1: If n = l Then GoTo stroka Next: Next For X = 1 To l: n = 0: For Y = 1 To l If arr(X, Y) = s Then n = n + 1: If n = l Then GoTo stolbex Next: Next Loop Exit Sub stroka: n = Y For Y = 1 To l: For X = 1 To l i = (Y - 1) * l + X c(i).FontSize = IIf(n = Y, 14, 9) c(i).FontBold = IIf(n = Y, 1, 0) c(i).Caption = arr(X, Y) Next: Next Exit Sub stolbex: n = X For Y = 1 To l: For X = 1 To l i = (Y - 1) * l + X c(i).FontSize = IIf(n = X, 14, 9) c(i).FontBold = IIf(n = X, 1, 0) c(i).Caption = arr(X, Y) Next: Next Exit Sub End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д