Найти сумму отрицательных элементов массива - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д