Как выделить цветом информацию о товаре, цена которого наиболее близка к средней цене товара - VB

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

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

Прайс-лист на форме имеет названия и цены N товаров (N =10) Выделить цветом информацию о товаре, цена которого наиболее близка к средней цене товара.

Решение задачи: «Как выделить цветом информацию о товаре, цена которого наиболее близка к средней цене товара»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Dim fra As Frame                ' Фрейм
  4. Dim txt() As TextBox            ' Цены
  5. Dim lbl() As Label              ' Надписи
  6. Dim WithEvents btn As CommandButton        ' Кнопка расчета
  7.  
  8. Private Sub btn_Click()
  9.     Dim i As Long, a As Double, n As Long
  10.     For i = 0 To UBound(txt)
  11.         If IsNumeric(txt(i)) Then
  12.             a = a + CDbl(txt(i))    ' Находим сумму
  13.        Else
  14.             MsgBox "Ошибка": Exit Sub
  15.         End If
  16.         txt(i).ForeColor = vbBlack
  17.     Next
  18.     a = a / 10                  ' Находим среднее арифметическое
  19.    lbl(10) = Format(a, "#0.00") ' Выводим среднее арифметическое
  20.    For i = 1 To UBound(txt)    ' Начинаем со второго
  21.        If Abs(a - CDbl(txt(i))) < Abs(a - CDbl(txt(n))) Then n = i
  22.     Next
  23.     txt(n).ForeColor = vbRed
  24. End Sub
  25. Private Sub Form_Load()
  26.     Dim i As Long, s As Long
  27.     Me.Width = 5000: Me.Height = 5000
  28.     Set fra = Me.Controls.Add("VB.Frame", "fra", Me) ' Добавляем фрейм
  29.    fra.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight: fra.Visible = True: fra.Caption = "Цены"
  30.     ReDim txt(9): ReDim lbl(10) ' 10 предметов, 11 надписей
  31.    s = (fra.Height - 400) / 10 ' Расстояние между предметами
  32.    Randomize
  33.     For i = 0 To 9
  34.         Set lbl(i) = Me.Controls.Add("VB.Label", "lbl" & CStr(i), fra)
  35.         Set txt(i) = Me.Controls.Add("VB.TextBox", "txt" & CStr(i), fra)
  36.         lbl(i).Caption = Choose(i + 1, "Блокнот", "Тетрадь", "Ручка", "Карандаш", "Линейка", "Ластик", "Альбом", "Дневник", "Краски", "Пенал")
  37.         lbl(i).Move 100, s * i + 300, 1000, 300: lbl(i).Visible = True
  38.         txt(i).Text = Format(Rnd * 100, "#0.00")
  39.         txt(i).Move lbl(i).Left + lbl(i).Width, s * i + 300, 1000, 300: txt(i).Visible = True
  40.     Next
  41.     Set btn = Me.Controls.Add("VB.CommandButton", "btn", fra) ' Добавляем кнопку
  42.    Set lbl(10) = Me.Controls.Add("VB.Label", "lbl10", fra) ' Добавляем надпись среднего арифметического
  43.    lbl(10).Move fra.Width - 2000, fra.Height - 1200, 1900, 400: lbl(10).Visible = True
  44.     btn.Move fra.Width - 2000, fra.Height - 600, 1900, 400
  45.     btn.Caption = "Расчет": btn.Visible = True
  46. End Sub

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


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

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

14   голосов , оценка 4.071 из 5

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

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

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