Найти сумму отрицательных элементов массива - 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