Найти сумму отрицательных элементов массива - VB (170146)

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

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

Вот сама задача: Дан массив А из 20 элементов. Найти сумму отрицательных элементов массива.

Решение задачи: «Найти сумму отрицательных элементов массива»

textual
Листинг программы
Option Explicit
Const r = 90, max = 20
Dim WithEvents tx As TextBox, WithEvents cb As CommandButton
Dim l&, t&, w&, h&, i&, v
Dim Массив(1 To max) As Long, Счётчик As Long
 
Sub Calculate()
    Заполняем_массив
    Счётчик = 0
    For i = 1 To UBound(Массив)
        If Массив(i) < 0 Then Счётчик = Счётчик + Массив(i)
    Next
    Controls("lb2").Caption = "Сумма = " & Счётчик
End Sub
 
Private Sub Заполняем_массив()
    For i = 1 To max
        Массив(i) = Controls("tx" & i)
    Next
End Sub
 
Private Sub Form_Activate()
    Set tx = Controls("tx1"): tx.SetFocus
End Sub
 
Private Sub cb_Click()
    Select Case Left(cb.Caption, 1)
    Case "С": Call Gen
    Case "В": Call Calculate
    End Select
End Sub
 
Private Sub tx_Change()
    If Not IsNumeric(tx) Then: tx = 0: tx.SelLength = 100: Else tx = CDbl(tx)
End Sub
 
Sub Gen()
    Randomize Timer
    For Each v In Controls
        If bTbx(v) Then
            v.Text = Fix(Rnd * 100) - 50
        End If
    Next
    Controls("lb2").Caption = ""
End Sub
 
 
Private Sub Form_Load()
    Caption = "Найти сумму отрицательных элементов массива"
    l = r: t = r: w = r * 5: h = w
    With Controls.Add("vb.Label", "lb1")
        .AutoSize = 1
        .Caption = "В поля вводятся только числа"
        .Move l, t: t = t + h + r
        .Visible = 1
    End With
    For i = 1 To max
        Set tx = Controls.Add("vb.TextBox", "tx" & i): With tx
            .Move l, t, w, h: l = l + w
            .Visible = 1:            .Font.Bold = 1
        End With
    Next
    l = r: t = t + h + r: w = r * 15
    For Each v In Array("Сгенерировать", "Вычислить")
        Set cb = Controls.Add("vb.CommandButton", "cb" & i): With cb
            .Move l, t, w, h: l = l + w + r: i = i + 1
            .Caption = v
            .Visible = 1
        End With
    Next
    With Controls.Add("vb.Label", "lb2")
        .AutoSize = 1
        l = r: t = t + h + r
        .Move l, t
        .Visible = 1:            .Font.Bold = 1
    End With
    Me.WindowState = 2
    Call Gen
End Sub
 
Sub LostFocus()
    Select Case Left(TypeName(ActiveControl), 1)
    Case "T": Set tx = ActiveControl
    Case "C": Set cb = ActiveControl
    End Select
End Sub
 
Private Sub tx_LostFocus():  LostFocus: End Sub
Private Sub cb_LostFocus():  LostFocus: End Sub
Function bTbx(v) As Boolean: bTbx = (TypeName(v) = "TextBox"): End Function

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


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

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

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