Алгоритмизация: управляющие конструкции

Алгоритмические конструкции: следование, ветвление, повторение. Условный оператор if/elif/else в Python. Составные и вложенные условия. Решение задач на ветвление при подготовке к ОГЭ.

Алгоритмизация: управляющие конструкции

Определение

Управляющая конструкция — фрагмент алгоритма, определяющий порядок выполнения команд. В программировании выделяют три базовые конструкции:

Формула

Полная форма ветвления (if-else)

if условие:
    блок_1      # выполняется, если условие истинно
else:
    блок_2      # выполняется, если условие ложно

Сокращённая форма (if без else)

if условие:
    блок        # выполняется только если условие истинно

Множественное ветвление (if-elif-else)

if условие_1:
    блок_1
elif условие_2:
    блок_2
elif условие_3:
    блок_3
else:
    блок_иначе

Составные условия

# Логическое И — оба условия должны быть истинны
if возраст >= 18 and наличие_прав:
    print("Можно водить")

# Логическое ИЛИ — хотя бы одно условие истинно
if день == "Суббота" or день == "Воскресенье":
    print("Выходной")

# Логическое НЕ — инвертирует условие
if not зарегистрирован:
    print("Пройдите регистрацию")

Пример

Пример 1: проверка чётности

n = int(input("Введите число: "))
if n % 2 == 0:
    print(f"{n} — чётное")
else:
    print(f"{n} — нечётное")

Пример 2: оценка по баллам (if-elif-else)

ball = int(input("Введите балл (0-100): "))
if ball >= 85:
    print("Оценка: 5 (отлично)")
elif ball >= 65:
    print("Оценка: 4 (хорошо)")
elif ball >= 40:
    print("Оценка: 3 (удовлетворительно)")
else:
    print("Оценка: 2 (неудовлетворительно)")

Трассировка: ball = 72 → 72 >= 85? Нет → 72 >= 65? Да → "Оценка: 4 (хорошо)"

Пример 3: вложенные условия

age = int(input("Ваш возраст: "))
if age >= 18:
    print("Доступ разрешён")
else:
    if age >= 14:
        print("Доступ с согласия родителей")
    else:
        print("Доступ запрещён")

Трассировка: age = 15 → 15 >= 18? Нет → блок else → 15 >= 14? Да → "Доступ с согласия родителей"

Пример 4: определение времени года

month = int(input("Номер месяца (1-12): "))
if month == 12 or month == 1 or month == 2:
    season = "Зима"
elif month == 3 or month == 4 or month == 5:
    season = "Весна"
elif month == 6 or month == 7 or month == 8:
    season = "Лето"
elif month == 9 or month == 10 or month == 11:
    season = "Осень"
else:
    season = "Ошибка: нет такого месяца"
print(season)

Обозначения

СимволЗначениеПример
==Проверка равенстваif x == 5:
!=Проверка неравенстваif x != 0:
>Большеif x > 10:
<Меньшеif x < 100:
>=Больше или равноif x >= 18:
<=Меньше или равноif x <= 120:
andЛогическое Иif x > 0 and x < 10:
orЛогическое ИЛИif x == 0 or x == 1:
notЛогическое НЕif not flag:

Важно!

Примеры вопросов из тренажёра

  1. Q: Какая из конструкций НЕ является базовой управляющей конструкцией?

    A: верный ответ — Массив

    Объяснение: Массив — это структура данных, а не управляющая конструкция. Базовые конструкции: следование, ветвление, цикл.

  2. Q: Что выведет программа? x = 10 if x > 15: print('A') elif x > 5: print('B') else: print('C')

    A: верный ответ — B

    Объяснение: x=10, 10>15? Нет → проверяем elif: 10>5? Да → выводим 'B'. Остальные ветки не выполняются.

  3. Q: Что выведет программа? a = 3 b = 7 if a > b: print(a) else: print(b)

    A: верный ответ — 7

    Объяснение: a=3, b=7. Условие 3>7 ложно → выполняется блок else, выводится b, то есть 7.

  4. Q: Какое условие проверяет, что число x принадлежит отрезку [5, 15]?

    A: верный ответ — if x >= 5 and x <= 15

    Объяснение: Отрезок [5, 15] включает границы, поэтому нужны >= и <=. Вариант 4 тоже возможен в Python, но вариант 2 — явный и правильный.

  5. Q: Что выведет программа? x = 0 if x: print('Да') else: print('Нет')

    A: верный ответ — Нет

    Объяснение: В Python 0 трактуется как False в логическом контексте. Условие ложно → выполняется else, выводится 'Нет'.

Пройти тему «Алгоритмизация: управляющие конструкции» в приложении