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

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

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

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

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

textual
Листинг программы
  1. Option Explicit
  2. Const r = 90, max = 20
  3. Dim WithEvents tx As TextBox, WithEvents cb As CommandButton
  4. Dim l&, t&, w&, h&, i&, v
  5. Dim Массив(1 To max) As Long, Счётчик As Long
  6.  
  7. Sub Calculate()
  8.     Заполняем_массив
  9.     Счётчик = 0
  10.     For i = 1 To UBound(Массив)
  11.         If Массив(i) < 0 Then Счётчик = Счётчик + Массив(i)
  12.     Next
  13.     Controls("lb2").Caption = "Сумма = " & Счётчик
  14. End Sub
  15.  
  16. Private Sub Заполняем_массив()
  17.     For i = 1 To max
  18.         Массив(i) = Controls("tx" & i)
  19.     Next
  20. End Sub
  21.  
  22. Private Sub Form_Activate()
  23.     Set tx = Controls("tx1"): tx.SetFocus
  24. End Sub
  25.  
  26. Private Sub cb_Click()
  27.     Select Case Left(cb.Caption, 1)
  28.     Case "С": Call Gen
  29.     Case "В": Call Calculate
  30.     End Select
  31. End Sub
  32.  
  33. Private Sub tx_Change()
  34.     If Not IsNumeric(tx) Then: tx = 0: tx.SelLength = 100: Else tx = CDbl(tx)
  35. End Sub
  36.  
  37. Sub Gen()
  38.     Randomize Timer
  39.     For Each v In Controls
  40.         If bTbx(v) Then
  41.             v.Text = Fix(Rnd * 100) - 50
  42.         End If
  43.     Next
  44.     Controls("lb2").Caption = ""
  45. End Sub
  46.  
  47.  
  48. Private Sub Form_Load()
  49.     Caption = "Найти сумму отрицательных элементов массива"
  50.     l = r: t = r: w = r * 5: h = w
  51.     With Controls.Add("vb.Label", "lb1")
  52.         .AutoSize = 1
  53.         .Caption = "В поля вводятся только числа"
  54.         .Move l, t: t = t + h + r
  55.         .Visible = 1
  56.     End With
  57.     For i = 1 To max
  58.         Set tx = Controls.Add("vb.TextBox", "tx" & i): With tx
  59.             .Move l, t, w, h: l = l + w
  60.             .Visible = 1:            .Font.Bold = 1
  61.         End With
  62.     Next
  63.     l = r: t = t + h + r: w = r * 15
  64.     For Each v In Array("Сгенерировать", "Вычислить")
  65.         Set cb = Controls.Add("vb.CommandButton", "cb" & i): With cb
  66.             .Move l, t, w, h: l = l + w + r: i = i + 1
  67.             .Caption = v
  68.             .Visible = 1
  69.         End With
  70.     Next
  71.     With Controls.Add("vb.Label", "lb2")
  72.         .AutoSize = 1
  73.         l = r: t = t + h + r
  74.         .Move l, t
  75.         .Visible = 1:            .Font.Bold = 1
  76.     End With
  77.     Me.WindowState = 2
  78.     Call Gen
  79. End Sub
  80.  
  81. Sub LostFocus()
  82.     Select Case Left(TypeName(ActiveControl), 1)
  83.     Case "T": Set tx = ActiveControl
  84.     Case "C": Set cb = ActiveControl
  85.     End Select
  86. End Sub
  87.  
  88. Private Sub tx_LostFocus():  LostFocus: End Sub
  89. Private Sub cb_LostFocus():  LostFocus: End Sub
  90. Function bTbx(v) As Boolean: bTbx = (TypeName(v) = "TextBox"): End Function

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


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

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

8   голосов , оценка 3.625 из 5

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

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

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