Определить количество элементов матрицы, значения которых больше заданного числа F - VB

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

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

Народ, знаю, что вас бесят подобные темы, но прошу помогите. Начали преподавать VB6, но раньше я его не встречал. Задача такова: Дан двумерный массив размерностью N x M элементов. Определить количество элементов, значения которых больше заданного числа F. Если не сложно, пожалуйста напишите полный код с пояснениями. Массив рандомный. Заранее спасибо.

Решение задачи: «Определить количество элементов матрицы, значения которых больше заданного числа F»

textual
Листинг программы
  1. Option Explicit
  2. Option Base 1
  3. Const r = 90
  4. Const cc = "Дан двумерный массив размерностью N x M элементов.ѓОпределить количество элементов, значения которых больше заданного числа F. "
  5. Dim WithEvents cb As CommandButton, WithEvents tx As TextBox, Matrix(), i&, j&, l&, t&, w&, h&, ¦&, N&, M&, F&, v
  6.  
  7. Private Sub Run()
  8.     'Выполнение задачи
  9.    v = 0
  10.     For i = 1 To M: For j = 1 To N
  11.         With Controls("®" & j & "¦" & i)
  12.              .FontBold = IIf(Matrix(j, i) > F, 1, 0)
  13.              v = v + Abs(.FontBold)
  14.         End With
  15.     Next: Next
  16.     result = "Всего найденно: " & v
  17. End Sub
  18.  
  19. Private Sub tx_Change()
  20.     'Контроль ввода чисел в текстовые поля
  21.    With tx
  22.         If IsNumeric(.Text) Then
  23.         Select Case Mid$(.Name, 3)
  24.         Case 1, 2
  25.             If .Text < 1 Or .Text > 15 Then tx_0 1
  26.         End Select
  27.         Else: tx_0 IIf(Mid$(.Name, 3) > 2, 0, 1)
  28.         End If
  29.         .Text = Val(.Text)
  30.     End With
  31. End Sub
  32.  
  33.  
  34. Private Sub Cr()
  35.     'Создание (пересоздание) новой матрицы
  36.    ac N, "tx1", M, "tx2", F, "tx3"
  37.     Erase Matrix: result = ""
  38.     For Each v In Controls
  39.         If Left$(v.Name, 1) = "®" Then Controls.Remove v
  40.     Next
  41.     ReDim Preserve Matrix(N, M)
  42.     With Controls("©"): t = .Top + .Height + r: End With
  43.     a l, r, w, r * 4, h, r * 4
  44.     For i = 1 To M: For j = 1 To N
  45.             Matrix(j, i) = Rnd * 200 \ 2
  46.             With Controls.Add("vb.CommandButton", "®" & j & "¦" & i)
  47.                 .Move l, t, w, h: a l, l + w
  48.                 .Caption = Matrix(j, i)
  49.                 .Visible = 1
  50.             End With
  51.     Next: a l, r, t, t + h: Next
  52.     Controls("±").Enabled = 1
  53. End Sub
  54.  
  55. Private Sub cb_Click()
  56.     'Вызов команд по нажатию кнопок
  57.    With cb
  58.         Select Case Left$(.Name, 1)
  59.         Case "±": Run
  60.         Case "©": Cr
  61.         Case "®"
  62.             v = Split(Mid$(.Name, 2), "¦")
  63.             .Caption = Rnd * 200 \ 2
  64.             Matrix(v(0), v(1)) = .Caption
  65.         End Select
  66.     End With
  67. End Sub
  68.  
  69.  
  70. Private Sub Form_Load()
  71.     'Загрузка элементов
  72.    a l, r, t, r
  73.     With Controls.Add("vb.label", "ї"): .AutoSize = 1: .Visible = 1: End With
  74.     With Controls.Add("vb.label", "ђ"): .AutoSize = 1: .Caption = Replace(cc, "ѓ", vbLf): .Move l, t: a t, t + .Height + r: .Visible = 1: End With
  75.     With Controls.Add("vb.label", "ъ"): .AutoSize = 1: .Caption = "Ввод N x M и F": .Move l, t: a l, l + .Width + r: .Visible = 1: End With
  76.     For i = 1 To 3
  77.         With Controls.Add("vb.TextBox", "tx" & i)
  78.             .Move l, t, .Height, .Height \ 2: l = l + .Width: h = .Height
  79.             .Text = Choose(i, 15, 3, 50): .Visible = 1
  80.         End With
  81.     Next
  82.     a l, l + r, i, 1
  83.     For Each v In Array("Создать", "Вычислить")
  84.         With Controls.Add("vb.CommandButton", Choose(i, "©", "±"))
  85.                  .Move l, t, .Width, h: a l, l + .Width, i, i + 1
  86.                 .Caption = v:   .Visible = 1:   .Enabled = Len(v) <> 9
  87.         End With
  88.     Next
  89.     Caption = "Matrix": WindowState = 2: Randomize Timer
  90. End Sub
  91.  
  92.  
  93. Sub tx_0(Optional ByVal N): tx.Text = N: tx.SelLength = 100: End Sub
  94. Private Sub tx_LostFocus(): LostFocus: End Sub
  95. Private Sub cb_LostFocus(): LostFocus: End Sub
  96. Private Sub Form_Activate(): Set tx = Controls("tx1"): tx.SetFocus: End Sub
  97. Private Sub a(ParamArray e()): For ¦ = 1 To UBound(e) Step 2: e(¦ - 1) = e(¦): Next: End Sub
  98. Private Sub LostFocus(): On Error Resume Next: Set tx = ActiveControl: Set cb = ActiveControl: End Sub
  99. Private Sub ac(ParamArray e()): For i = 1 To UBound(e) Step 2: e(i - 1) = Controls(e(i)): Next: End Sub
  100. Private Property Let result(ByVal nv As String): With Controls("ї"):   .Move r, t + r: .Caption = nv: End With: End Property

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


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

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

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

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

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

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