☰ Содержание · Информатика

Объект Timer

Уроки 61–62 · 2 урока · Н. И. Тайлаков (общий редактор), А. Б. Ахмедов, М. Д. Пардаева, А. А. Абдуганиев, У. М. Мирсанов. Информатика и информационные технологии, 10 класс, 1-е издание. «Extremum-Press», Ташкент, 2017
62

Практическое занятие

Учебник: с. 143
ЦельСоздаёт приложения с Timer: часы, секундомер и светофор; управляет состоянием с помощью интервала, счётчика и mod.
Новые слова
секундомер: счётчик прошедшего времени · sekundomerсчётчик: переменная, которая увеличивается на 1 при каждом событии таймера · hisoblagichmod: остаток от деления, используется для повторяющихся циклов · modвремя цикла: время, через которое повторяется последовательность · sikl vaqti
Объяснение

На практическом занятии создаются три приложения. 1) «Секундомер»: Interval = 100 (десятая доля секунды). Глобальная t: Integer; в Timer t := t + 1; Label1.Caption := IntToStr(t div 10) + '.' + IntToStr(t mod 10); – например, t = 125 даёт 12,5 секунды. Пусть кнопка Старт/Стоп выполняет Timer1.Enabled := not Timer1.Enabled; 2) «Светофор»: Interval = 1000, глобальная i: Integer; в Timer i := i + 1; k := i mod 14; – при k = 0…5 красный (6 с), при k = 6 жёлтый (1 с), при k = 7…13 зелёный (7 с); сигналы рисуются на Image с помощью Brush.Color := clRed и Ellipse. 3) «Часы»: Label со временем и датой. Важно: не создавайте смену цветов, мигающую на экране чаще трёх раз в секунду, потому что это может навредить некоторым людям; рассматривайте светофор только как учебную модель, на настоящей дороге нужно подчиняться сигналам.

Примеры
Секундомер: при t = 125 t div 10 = 12, а t mod 10 = 5: текст – 12.5. При t = 60 – 6.0. 1 минута = 60 с = 600 событий по 100 мс.
Цикл светофора равен 6+1+7 = 14 секунд. При i = 13 k = 13 mod 14 = 13 – зелёный; при i = 20 k = 6 – жёлтый; при i = 30 k = 2 – красный. Красный горит 6 секунд, потому что k = 0, 1, 2, 3, 4, 5 – шесть событий.
Работа в классе

«Таблица сигналов»: пара составляет таблицу на 25 секунд: заранее записывает, какой сигнал горит в каждую секунду (k = i mod 14), и проверяет её с помощью приложения.

Упражнения
1
При Interval = 100 сколько событий OnTimer происходит за 1 минуту?
2
Если t = 87, что показывает секундомер (t div 10 и t mod 10)?
3
Каково состояние светофора при i = 40 (k = i mod 14; 0–5 красный, 6 жёлтый, 7–13 зелёный)?
4
Почему следует избегать быстро мигающих цветов?