Определить количество элементов матрицы, значения которых больше заданного числа F - VB
Формулировка задачи:
Народ, знаю, что вас бесят подобные темы, но прошу помогите.
Начали преподавать VB6, но раньше я его не встречал.
Задача такова: Дан двумерный массив размерностью N x M элементов.
Определить количество элементов, значения которых больше заданного числа F.
Если не сложно, пожалуйста напишите полный код с пояснениями. Массив рандомный.
Заранее спасибо.
Решение задачи: «Определить количество элементов матрицы, значения которых больше заданного числа F»
textual
Листинг программы
Option Explicit Option Base 1 Const r = 90 Const cc = "Дан двумерный массив размерностью N x M элементов.ѓОпределить количество элементов, значения которых больше заданного числа F. " Dim WithEvents cb As CommandButton, WithEvents tx As TextBox, Matrix(), i&, j&, l&, t&, w&, h&, ¦&, N&, M&, F&, v Private Sub Run() 'Выполнение задачи v = 0 For i = 1 To M: For j = 1 To N With Controls("®" & j & "¦" & i) .FontBold = IIf(Matrix(j, i) > F, 1, 0) v = v + Abs(.FontBold) End With Next: Next result = "Всего найденно: " & v End Sub Private Sub tx_Change() 'Контроль ввода чисел в текстовые поля With tx If IsNumeric(.Text) Then Select Case Mid$(.Name, 3) Case 1, 2 If .Text < 1 Or .Text > 15 Then tx_0 1 End Select Else: tx_0 IIf(Mid$(.Name, 3) > 2, 0, 1) End If .Text = Val(.Text) End With End Sub Private Sub Cr() 'Создание (пересоздание) новой матрицы ac N, "tx1", M, "tx2", F, "tx3" Erase Matrix: result = "" For Each v In Controls If Left$(v.Name, 1) = "®" Then Controls.Remove v Next ReDim Preserve Matrix(N, M) With Controls("©"): t = .Top + .Height + r: End With a l, r, w, r * 4, h, r * 4 For i = 1 To M: For j = 1 To N Matrix(j, i) = Rnd * 200 \ 2 With Controls.Add("vb.CommandButton", "®" & j & "¦" & i) .Move l, t, w, h: a l, l + w .Caption = Matrix(j, i) .Visible = 1 End With Next: a l, r, t, t + h: Next Controls("±").Enabled = 1 End Sub Private Sub cb_Click() 'Вызов команд по нажатию кнопок With cb Select Case Left$(.Name, 1) Case "±": Run Case "©": Cr Case "®" v = Split(Mid$(.Name, 2), "¦") .Caption = Rnd * 200 \ 2 Matrix(v(0), v(1)) = .Caption End Select End With End Sub Private Sub Form_Load() 'Загрузка элементов a l, r, t, r With Controls.Add("vb.label", "ї"): .AutoSize = 1: .Visible = 1: End With With Controls.Add("vb.label", "ђ"): .AutoSize = 1: .Caption = Replace(cc, "ѓ", vbLf): .Move l, t: a t, t + .Height + r: .Visible = 1: End With With Controls.Add("vb.label", "ъ"): .AutoSize = 1: .Caption = "Ввод N x M и F": .Move l, t: a l, l + .Width + r: .Visible = 1: End With For i = 1 To 3 With Controls.Add("vb.TextBox", "tx" & i) .Move l, t, .Height, .Height \ 2: l = l + .Width: h = .Height .Text = Choose(i, 15, 3, 50): .Visible = 1 End With Next a l, l + r, i, 1 For Each v In Array("Создать", "Вычислить") With Controls.Add("vb.CommandButton", Choose(i, "©", "±")) .Move l, t, .Width, h: a l, l + .Width, i, i + 1 .Caption = v: .Visible = 1: .Enabled = Len(v) <> 9 End With Next Caption = "Matrix": WindowState = 2: Randomize Timer End Sub Sub tx_0(Optional ByVal N): tx.Text = N: tx.SelLength = 100: End Sub Private Sub tx_LostFocus(): LostFocus: End Sub Private Sub cb_LostFocus(): LostFocus: End Sub Private Sub Form_Activate(): Set tx = Controls("tx1"): tx.SetFocus: End Sub Private Sub a(ParamArray e()): For ¦ = 1 To UBound(e) Step 2: e(¦ - 1) = e(¦): Next: End Sub Private Sub LostFocus(): On Error Resume Next: Set tx = ActiveControl: Set cb = ActiveControl: End Sub Private Sub ac(ParamArray e()): For i = 1 To UBound(e) Step 2: e(i - 1) = Controls(e(i)): Next: End Sub Private Property Let result(ByVal nv As String): With Controls("ї"): .Move r, t + r: .Caption = nv: End With: End Property
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д