- •Методические указания к лабораторной работе №2
- •III. Применение полученных знаний для решения однотипных задач 26
- •II. Изучение средствExcel для обработки данных
- •2.1. Постановка задачи
- •2.2. Решение задачи
- •2.2.1. Работа с примечаниями
- •2.2.2. Определение среднего балла
- •2.2.4. Определение категории студента
- •2.2.5. Определение стипендии студента
- •2.2.6. Определение стипендиального фонда
- •2.2.7. Вычисление процентных отношений
- •2.2.8. Вычисление среднего балла по предметам и определение максимального из них
- •2.2.9. Выделение категории студентов с помощью условного форматирования
- •2.2.10. Построение диаграммы
- •2.2.11. Создание программного кода
- •III. Применение полученных знаний для решения однотипных задач
- •3.1. Задача обработки информации об измерениях температуры
- •3.2. Некоторые особенности решения задачи обработки температур
- •3.2.1. Нахождение максимального, минимального и среднего значения
- •3.2.2. Упорядочивание данных
- •3.2.3. Расчет средних значений для каждого дня
- •3.2.4. Расчет первых пяти наибольших и последних пяти наименьших значений
- •3.2.5. Расчет числа дней, в которых температура была в одном из диапазонов
- •3.2.6. Составление таблицы температур
- •3.2.7. Условное форматирование и автофильтр
- •3.2.8. Составление программы
- •3.3. Задача на самостоятельное решение
- •IV. Самоконтроль
- •4.1. Контрольные вопросы
3.2.7. Условное форматирование и автофильтр
Шаги для выполнения условного форматирования были описаны выше. Единственная подсказка - условное форматирование выполняется по формуле:
=$AB21=1
Выделяться будут строки, у которых в столбце AB (имеет абсолютную адресацию) в ячейках значения равны единице, т.е. номеру первого дня.
Вы, наверное, обратили внимание, что у некоторых ячеек имеются кнопки, вызывающие список значений:
Это образуется не с помощью элементов интерфейса, а с помощьюавтофильтра. Для его установления используют команду "Фильтр/Автофильр" из меню "Данные". Он устанавливается на все выделенные ячейки в строке и смежные с ними ячейки с данными. Снятие автофильтра производится той же командой. Так, после столбца с температурой, отсортированной в порядке убывания, на листе пустой столбец. Если бы он имел значения, то автофильтр был бы установлен и на него (даже если его не выделить).
Выбор одного из значений приводит к отображению только тех строк, которые в данном столбце содержат выбранное значение.
План лабораторной работы: Контрольные вопросы
3.2.8. Составление программы
В программе используется типовой алгоритм поиска максимума, минимума. Блок-схема алгоритма поиска максимума имеет вид:
Отличием программы от этой блок-схемы является то, что цикл начинается с первого элемента (с первой ячейки), так как цикл предназначен для вычисления еще нескольких параметров. Программа достаточно простая и Вы с ней легко разберетесь. В главном цикле перебираются все ячейки с данными и накапливаются суммы температур (для вычисления среднего) за каждый день (первая колонка StDay(i, 1)). Кроме того, вычисляются максимальные(вторая колонкаStDay(i, 2)) и минимальные (третья колонкаStDay(i, 3))значения за каждый день. В цикле использован интересный прием. Как узнать какой день обрабатывается? Для этого необходим счетчик - переменнаяCount, которая содержит номер дня, к которому относится текущее значение переменнойObj (текущая ячейка). Как только день обработан, переменнаяCount наращивает значение на единицу, а если это был последний день (т.е.Count стала равна 11 после добавления единицы), то переменнуюCount снова делают равной 1.
Рассмотрим участок, где формируется список дней
Fori = 1To10
' Для получения среднего необходимо разделить сумму на
' число лет наблюдения
' Заносим данные в список
ListBox1.AddItem "День " & i & ": " ' Первая колонка с названием дня
Для добавления новой строки в список используется метод AddItem (он позволяет занести данные в первую колонку списка, если их несколько). Объект ListBox1 имеет свойство ColumnCount равное четырем, а свойство ColumnWidth равное 49.95 пт;35 пт;35 пт;35 пт (при задании свойства можно просто перечислять цифры через точку с запятой без букв "пт" - пункт). Первое свойство задает число колонок, а второе свойство их ширину (поэтому чисел четыре). Далее с помощью свойства List задаются значения еще трех колонок первой строки.
' Вторая колонка со средним значением
ListBox1.List(i - 1, 1) = Format(StDay(i, 1) / 30, "0.00")
Обратите внимание, что счет строк в объекте класса "Список" начинается с нуля, поэтому указывается номер строки какi -1. Следующий параметр отражает номер колонки - 1 (счет тоже начинается с нуля).
Sum=Sum+ StDay(i, 1) / 30' накапливаем сумму средних значений
' Третья колонка с максимальным значением
ListBox1.List(i - 1, 2) = StDay(i, 2)
' Ищем максимальное значение
IfMax< StDay(i, 2)Then
Max= StDay(i, 2)
EndIf
' Четвертая колонка с минимальным значением
ListBox1.List(i - 1, 3) = StDay(i, 3)
' Ищем минимальное значение
IfMin> StDay(i, 3)Then
Min= StDay(i, 3)
End If
Nexti