37.55K
AI
Категория: ПрограммированиеПрограммирование

nested_structures_presentation

1.

Вложенные конструкции ветвления
Теория, блок-схемы и реализация примеров на языке Python

2.

Что такое вложенное ветвление?
Понятие конструкции и основные правила
• Вложенная конструкция: это ситуация, когда внутри блока выполнения оператора `if` или `else` находится
другое, внутреннее условие со своим собственным ветвлением.
• Глубина вложенности: технически не ограничена, однако на практике рекомендуется не использовать
более 2-3 уровней, чтобы код оставался читаемым.
• Правило отступов в Python: внутренний оператор ветвления обязательно смещается вправо на 4 пробела
относительно внешнего. Отступы определяют область видимости условий.
• Блок-схемы: вложенность отображается как последовательное размещение ромбов (условий) друг за
другом внутри соответствующих ветвей «Да» или «Нет».

3.

Пример 1: Определение координатной
четверти
Вложенность в ветку истинности (Да / True)
• Задача: Пользователь вводит координаты точки (X, Y). Нужно определить, находится ли точка в 1-й или 4й координатной четверти (для простоты рассмотрим случай, когда X > 0).
• Логика блок-схемы: Первый (внешний) ромб проверяет: [X > 0]. Если «Да», мы идем направо, где сразу
встречаем второй (внутренний) ромб с проверкой: [Y > 0].
• Результат ветвления: Если внутреннее условие истинно — это 1-я четверть, иначе — 4-я четверть.

4.

Реализация Примера 1 на Python
Код программы определения четверти
# Ввод данных пользователем
x = float(input("Введите X: "))
y = float(input("Введите Y: "))
if x > 0:
# Внутреннее ветвление (вложено в ветку if)
if y > 0:
print("Точка находится в 1-й четверти")
else:
print("Точка находится в 4-й четверти")
else:
print("X должен быть больше 0 для этого примера")

5.

Пример 2: Система контроля доступа
Вложенность в ветку ложности (Нет / False)
• Задача: Проверить статус пользователя. Администраторам доступ разрешен сразу. Если пользователь не
админ, проверяется, активна ли его обычная подписка.
• Логика блок-схемы: Внешний ромб: [is_admin == True]. Если «Да» -> Доступ разрешен. Если «Нет»,
управление передается на внутренний ромб: [has_subscription == True].
• Результат ветвления: Если подписка активна -> Доступ разрешен, если нет -> Доступ заблокирован.

6.

Реализация Примера 2 на Python
Код программы контроля доступа
is_admin = False
has_subscription = True
if is_admin:
print("Доступ предоставлен (Администратор)")
else:
# Внутреннее ветвление (вложено в ветку else)
if has_subscription:
print("Доступ предоставлен (Активная подписка)")
else:
print("Доступ запрещен! Оформить подписку?")

7.

Рекомендации по использованию
Как делать код чище и избегать ошибок
• Избегайте «Спагетти-кода»: Если глубина вложенности превышает 3 уровня, блок-схема и код становятся
нечитаемыми. Попробуйте упростить условия.
• Альтернатива 1: Оператор elif: Многие вложенные конструкции в ветке `else` можно превратить в
плоскую структуру с помощью `if-elif-else`.
• Альтернатива 2: Логические операторы: Иногда вложенные условия проще объединить в одно при
помощи логического И (`and`) или ИЛИ (`or`).
• Проверка отступов: Всегда проверяйте, к какому именно `if` относится ваш `else`. В Python это
определяется исключительно одинаковым отступом от левого края.
English     Русский Правила