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