Как выделить цветом информацию о товаре, цена которого наиболее близка к средней цене товара - VB
Формулировка задачи:
Прайс-лист на форме имеет названия и цены N товаров (N =10)
Выделить цветом информацию о товаре, цена которого наиболее близка к средней цене товара.
Решение задачи: «Как выделить цветом информацию о товаре, цена которого наиболее близка к средней цене товара»
textual
Листинг программы
- Option Explicit
- Dim fra As Frame ' Фрейм
- Dim txt() As TextBox ' Цены
- Dim lbl() As Label ' Надписи
- Dim WithEvents btn As CommandButton ' Кнопка расчета
- Private Sub btn_Click()
- Dim i As Long, a As Double, n As Long
- For i = 0 To UBound(txt)
- If IsNumeric(txt(i)) Then
- a = a + CDbl(txt(i)) ' Находим сумму
- Else
- MsgBox "Ошибка": Exit Sub
- End If
- txt(i).ForeColor = vbBlack
- Next
- a = a / 10 ' Находим среднее арифметическое
- lbl(10) = Format(a, "#0.00") ' Выводим среднее арифметическое
- For i = 1 To UBound(txt) ' Начинаем со второго
- If Abs(a - CDbl(txt(i))) < Abs(a - CDbl(txt(n))) Then n = i
- Next
- txt(n).ForeColor = vbRed
- End Sub
- Private Sub Form_Load()
- Dim i As Long, s As Long
- Me.Width = 5000: Me.Height = 5000
- Set fra = Me.Controls.Add("VB.Frame", "fra", Me) ' Добавляем фрейм
- fra.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight: fra.Visible = True: fra.Caption = "Цены"
- ReDim txt(9): ReDim lbl(10) ' 10 предметов, 11 надписей
- s = (fra.Height - 400) / 10 ' Расстояние между предметами
- Randomize
- For i = 0 To 9
- Set lbl(i) = Me.Controls.Add("VB.Label", "lbl" & CStr(i), fra)
- Set txt(i) = Me.Controls.Add("VB.TextBox", "txt" & CStr(i), fra)
- lbl(i).Caption = Choose(i + 1, "Блокнот", "Тетрадь", "Ручка", "Карандаш", "Линейка", "Ластик", "Альбом", "Дневник", "Краски", "Пенал")
- lbl(i).Move 100, s * i + 300, 1000, 300: lbl(i).Visible = True
- txt(i).Text = Format(Rnd * 100, "#0.00")
- txt(i).Move lbl(i).Left + lbl(i).Width, s * i + 300, 1000, 300: txt(i).Visible = True
- Next
- Set btn = Me.Controls.Add("VB.CommandButton", "btn", fra) ' Добавляем кнопку
- Set lbl(10) = Me.Controls.Add("VB.Label", "lbl10", fra) ' Добавляем надпись среднего арифметического
- lbl(10).Move fra.Width - 2000, fra.Height - 1200, 1900, 400: lbl(10).Visible = True
- btn.Move fra.Width - 2000, fra.Height - 600, 1900, 400
- btn.Caption = "Расчет": btn.Visible = True
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д