Поиск строки в двумерном массиве состоящей из элементов равных числу а - 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

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


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

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

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