Финал курса. Сегодня мы соединим всё изученное в одну программу — простую симуляцию управления: читаем показания датчика, по условию принимаем решение, считаем сводку. А ещё отдельно разберём типовую задачу в формате ЕГЭ — обработку последовательности чисел, на которой строится половина экзамена и вузовской алгоритмики.

После урока сможешь: Соединяем всё изученное в симуляцию управления (датчик → логика → привод → сводка) и разбираем типовые задачи ЕГЭ на обработку последовательности чисел. Итоговый проект — пульт мониторинга привода.
Конвейер управления: датчик → логика → привод
Любая система управления — это конвейер: датчик даёт данные, программа по правилам принимает решение, привод исполняет. У тебя уже есть все детали: список (серия измерений), цикл (перебор тактов), условие (правило реакции), функции (расчёты). Соберём их вместе.
Конвейер управления (то, что мы собираем):
[ДАТЧИК] [ЛОГИКА] [ПРИВОД]
измерения -> if порог превышен -> действие
| | |
список x условие в цикле сообщение/счёт
+ СВОДКА по серии: среднее, максимум, число аварий
izmereniya = [20, 35, 90, 41, 95]
porog = 80
avariy = 0
for x in izmereniya:
if x > porog:
print(f"Такт {x}: АВАРИЯ — стоп")
avariy = avariy + 1
else:
print(f"Такт {x}: норма")
print("Всего аварий:", avariy)
Такт 20: норма
Такт 35: норма
Такт 90: АВАРИЯ — стоп
Такт 41: норма
Такт 95: АВАРИЯ — стоп
Всего аварий: 2
Это и есть «программное обеспечение управляющего модуля» в самом простом виде: данные → правило → реакция → отчёт. Дальше в вузе добавятся реальные датчики и приводы, но логика останется той же.
Типовая задача ЕГЭ: обработка последовательности
Половина задач ЕГЭ по информатике — это «дана последовательность чисел, найди …»: сумму, количество подходящих, максимум среди чётных и т.п. Приём один: завести накопитель ДО цикла, перебрать числа, в условии обновлять накопитель. Разберём «сколько чисел кратно 3».
chisla = [12, 7, 9, 20, 33, 8]
kratnyh = 0
for x in chisla:
if x % 3 == 0:
kratnyh = kratnyh + 1
print(kratnyh)
3
Шаблон задачи на последовательность: 1. накопитель = 0 (или [] / -1 для максимума) 2. for x in данные: 3. if <условие про x>: 4. обновить накопитель 5. print(накопитель) Меняется только условие и способ обновления — каркас один.
Признак кратности — через остаток:
x % 3 == 0значит «делится на 3 без остатка». Чётное —x % 2 == 0. Этот приём (остаток в условии) закрывает огромный класс задач ЕГЭ.
Итоговый проект: пульт мониторинга привода
Собери свою программу-пульт, которая соединяет всё изученное. Это твой итоговый проект — покажи его преподавателю на разборе. Ниже — заготовка и требования.
- Заведи список измерений датчика (минимум 6 чисел) и порог.
- Напиши функцию
srednee(spisok), которая возвращает среднее, округлённое до 2 знаков. - Перебери измерения циклом: для каждого выведи «норма» или «АВАРИЯ» по сравнению с порогом и посчитай число аварий.
- В конце выведи сводку: количество измерений, среднее, максимум, число аварий.
- Дополнительно (по желанию): спроси порог у пользователя через input.
# Пульт мониторинга привода — заготовка, дополни своим
def srednee(spisok):
return round(sum(spisok) / len(spisok), 2)
izmereniya = [20, 35, 90, 41, 95, 12]
porog = 80
avariy = 0
for x in izmereniya:
if x > porog:
print(f"Такт {x}: АВАРИЯ")
avariy = avariy + 1
else:
print(f"Такт {x}: норма")
print("---- СВОДКА ----")
print("Измерений:", len(izmereniya))
print("Среднее:", srednee(izmereniya))
print("Максимум:", max(izmereniya))
print("Аварий:", avariy)
Такт 20: норма
Такт 35: норма
Такт 90: АВАРИЯ
Такт 41: норма
Такт 95: АВАРИЯ
Такт 12: норма
---- СВОДКА ----
Измерений: 6
Среднее: 48.83
Максимум: 95
Аварий: 2
Критерии готовности проекта: (1) есть своя функция с
return; (2) серия обрабатывается циклом; (3) реакция выбирается условием; (4) в конце выводится сводка из нескольких показателей. Если все четыре пункта работают — проект зачтён.
Контрольный вопрос. Что выведет программа из этого задания? Впиши число (сколько измерений превысили порог).
Исходный код для этого задания:
izmereniya = [20, 35, 90, 41, 95] porog = 80 avariy = 0 for x in izmereniya: if x > porog: avariy = avariy + 1 print(avariy)Подсказка: Считаем элементы строго больше 80. Пройди по списку: какие подходят?
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число.
Исходный код для этого задания:
chisla = [12, 7, 9, 20, 33, 8] print(max(chisla))Подсказка: max возвращает самый большой элемент списка.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число (среднее).
Исходный код для этого задания:
izmereniya = [10, 20, 30, 40] print(round(sum(izmereniya) / len(izmereniya), 2))Подсказка: Среднее = сумма / количество. Сумма 100, элементов 4.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число (сколько чётных).
Исходный код для этого задания:
chisla = [12, 7, 9, 20, 33, 8] chetnyh = 0 for x in chisla: if x % 2 == 0: chetnyh = chetnyh + 1 print(chetnyh)Подсказка: Чётное — это x % 2 == 0 (делится на 2 без остатка). Найди такие числа в списке.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Внутри цикла нужно проверить, что число x чётное (делится на 2 без остатка). Напиши строку с условием if (с двоеточием).
Исходный код для этого задания:
chisla = [12, 7, 20, 8] chetnyh = 0 for x in chisla: # напиши ниже строку: если x чётное (x % 2 == 0), с двоеточием chetnyh = chetnyh + 1 print(chetnyh)Подсказка: Чётность через остаток: x % 2 == 0. Шаблон: if x % 2 == 0:. Не забудь двоеточие.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. В списке izmereniya лежат измерения. Напиши команду print, которая выведет среднее, округлённое до 2 знаков.
Исходный код для этого задания:
izmereniya = [20, 35, 28, 41] # напиши ниже команду print со средним (сумма делить на количество), округлённым до 2 знаковПодсказка: Среднее = sum(список) / len(список). Оберни в round(…, 2). Шаблон: print(round(sum(izmereniya) / len(izmereniya), 2)).
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Программа должна посчитать число аварий за всю серию, но всегда печатает 0 или 1. В чём ошибка?
Исходный код для этого задания:
izmereniya = [90, 35, 95] porog = 80 for x in izmereniya: avariy = 0 if x > porog: avariy = avariy + 1 print(avariy)Подсказка: Где стоит avariy = 0? Если это внутри цикла, что происходит со счётчиком на каждом круге?
Онлайн-проверка ответа появится позже
Контрольный вопрос. Из-за чего цикл while становится бесконечным?
Подсказка: while крутится, пока условие верно. Что должно происходить в теле, чтобы оно однажды стало ложным?
Онлайн-проверка ответа появится позже
Контрольный вопрос. Что выведет программа из этого задания? Впиши число (максимум среди чисел, кратных 3).
Исходный код для этого задания:
chisla = [12, 7, 9, 20, 33, 8] maks = 0 for x in chisla: if x % 3 == 0 and x > maks: maks = x print(maks)Подсказка: Берём только кратные 3 (12, 9, 33) и среди них ищем самое большое.
Онлайн-проверка ответа появится позже
Задание. Напиши код сам. Нужно посчитать, сколько чисел кратно 3 (делится на 3 без остатка). Напиши строку с условием if (с двоеточием).
Исходный код для этого задания:
chisla = [12, 7, 9, 20, 33, 8] kratnyh = 0 for x in chisla: # напиши ниже строку: если x кратно 3 (x % 3 == 0), с двоеточием kratnyh = kratnyh + 1 print(kratnyh)Подсказка: Кратность 3 через остаток: x % 3 == 0. Шаблон: if x % 3 == 0:. Не забудь двоеточие.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Задание. Итоговый проект (auto). Напиши программу целиком (около 12-14 строк) — пульт мониторинга привода. Опиши функцию srednee(spisok), возвращающую среднее, округлённое до 2 знаков. Заведи список izmereniya = [20, 35, 90, 41, 95] и порог porog = 80, счётчик avariy = 0. Перебери список: если значение строго больше порога — выведи строку с этим значением и словом АВАРИЯ и увеличь avariy, иначе выведи значение и слово норма. После цикла выведи среднее (через функцию), максимум и число аварий.
Исходный код для этого задания:
# def srednee(spisok): return round(sum(spisok)/len(spisok), 2) # izmereniya = [20, 35, 90, 41, 95]; porog = 80; avariy = 0 # for x in izmereniya: # if x > porog: print(f"{x}: АВАРИЯ"); avariy += 1 # else: print(f"{x}: норма") # print среднего через srednee(izmereniya), print max, print avariyПодсказка: Сначала функция srednee с return. Потом список, порог, avariy=0. В цикле for x in izmereniya ветка if x > porog (печать АВАРИЯ + avariy = avariy + 1) и else (печать норма). После цикла три print: srednee(izmereniya), max(izmereniya), avariy.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
Онлайн-проверка ответа появится позже
Поздравляю — фундамент собран
Ты прошёл путь от первой команды print до симуляции управления и алгоритмов обработки последовательностей. Это тот самый фундамент, на котором в вузе будут стоять предметы про управляющие модули, обработку данных и моделирование. Дальше — практика: чем больше пишешь руками, тем увереннее код.
Итог: Ты прошёл путь от первой команды
