Конструкция «ветвление». Разветвляющиеся алгоритмы - Урок информатики для 8 класса
📚 Информатика 8 класс

Конструкция «ветвление». Разветвляющиеся алгоритмы

Привет! Сегодня мы разберёмся, как компьютер принимает решения и выбирает, что делать дальше. Представь: ты идёшь утром в школу и смотришь в окно — если дождь, берёшь зонтик, если нет — идёшь налегке. Компьютер делает то же самое, только по своим правилам.

Как компьютер выбирает свой путь?

Как компьютер выбирает свой путь?

Что такое ветвление?

Ветвление — это алгоритмическая конструкция, где программа смотрит на условие («Да» или «Нет») и выбирает, что делать дальше. Алгоритмы с такой структурой называют разветвляющимися.

💡 Определение

Ветвление — алгоритмическая конструкция, в которой в зависимости от результата проверки условия («Да» или «Нет») предусмотрен выбор одной из двух последовательностей действий (ветвей).

🔍 Пример из жизни

Ты заходишь в инсту, и приложение проверяет — правильный ли пароль? Если «Да» — пускает тебя в аккаунт, если «Нет» — показывает ошибку. Это и есть ветвление!

Полное и неполное ветвление

Ветвление бывает двух типов: полное (когда есть действия и для «Да», и для «Нет») и неполное (когда действие только для одного варианта).

Полная и неполная формы ветвления

Полная и неполная формы ветвления

Полная форма

📋 Два варианта действий

На Школьном алгоритмическом языке:

если <условие>
  то <действия 1>
  иначе <действия 2>
все
Неполная форма

📋 Один вариант действий

На Школьном алгоритмическом языке:

если <условие>
  то <действия 1>
все

📝 Пример 1: Проверка правописания

Полная форма:

если приставка под ударением
  то писать НЕ
  иначе писать НИ
все

🌧️ Пример 2: Выход из дома

Неполная форма:

если на улице дождь
  то взять зонтик
все

Видишь? Если дождя нет, ты просто ничего не делаешь — это неполная форма.

Операции сравнения

Для записи условий используются операции сравнения — это язык, на котором компьютер принимает решения.

Операции сравнения — язык компьютерных решений

Операции сравнения — язык компьютерных решений

A < B

A меньше B

A <= B

A меньше или равно B

A = B

A равно B

A > B

A больше B

A >= B

A больше или равно B

A <> B

A не равно B

✨ Важно знать

Буквы A и B можно заменять на любые переменные, числа и даже арифметические выражения. Эти операции работают и для символьных переменных (например, сравнивая слова по алфавиту).

Пример: «Умный» термометр

Давайте посмотрим, как работает алгоритм встроенного термометра, который проверяет температуру тела.

Термометр принимает решение за тебя

Термометр принимает решение за тебя

🌡️ Алгоритм термометра

Начало
  Список данных
    temp — вещ
  temp
  если temp > 36,6
    то Температура повышенная
    иначе Температура нормальная
Конец

Обрати внимание на второй блок этой блок-схемы. В нём представлены имя и тип величины, обрабатываемой алгоритмом.

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

Часто нужно проверить не одно условие, а несколько сразу. Для этого используются логические связки.

and (и)

🔗 Все условия одновременно

Выполняются все условия сразу

Пример: (погода хорошая) and (есть свободное время) → идём гулять

or (или)

🔀 Хотя бы одно условие

Выполняется хотя бы одно условие

Пример: (дождь) or (снег) → берём зонтик

not (не)

🚫 Отрицание условия

Условие не выполняется

Пример: not (дождь) → идём без зонтика

📍 Пример 4: Точка в отрезке

Алгоритм определения принадлежности точки x отрезку [a, b]:

если (x >= a) and (x <= b)
  то ДА
  иначе НЕТ
все

Видишь? Точка должна быть и больше a, и меньше b одновременно.

Комбинация нескольких ветвлений

Иногда нужно выбрать не из двух, а из трёх и более вариантов. Для этого ветвления комбинируют — вкладывают одно в другое.

Когда вариантов больше двух

Когда вариантов больше двух

🔢 Пример 5: Находим максимум из трёх чисел

Алгоритм, в котором переменной Y присваивается значение наибольшей из трёх величин A, B и C:

Y := A
если B > Y
  то Y := B
все
если C > Y
  то Y := C
все

Логика простая: сначала считаем, что максимум — это A. Потом проверяем B — если оно больше, обновляем максимум. Потом проверяем C — если оно больше текущего максимума, снова обновляем.

⚖️ Пример 6: Сравниваем два числа

Алгоритм для исполнителя, работающего с парой чисел и сравнивающего первое число со вторым. Результатом выполнения алгоритма должно быть одно из трёх сообщений:

  • числа равны
  • первое число больше
  • второе число больше
Начало
  A, B
  если A = B
    то Числа равны
    иначе если A > B
          то A больше
          иначе B больше
Конец
Алгоритм последовательной проверки условий

Алгоритм последовательной проверки условий

📊 Пример с таблицей

Пусть A = 10, B = 30 и C = 20. Тогда процесс выполнения алгоритма можно представить следующей таблицей:

Шаг алгоритма Константы A, B, C Переменная Y Условие
10, 30, 20
1 10
2 30 > 10 (Да)
3 30
4 20 > 30 (Нет)

Результат: Y = 30 (максимум)

🤖 Пример 7: Робот в лабиринте

Исполнитель Робот может выполнять ту или иную последовательность действий в зависимости от выполнения следующих простых условий:

  • справа свободно / справа стена
  • слева свободно / слева стена
  • сверху свободно / сверху стена
  • снизу свободно / снизу стена
  • клетка чистая / клетка закрашена

Робот может действовать в зависимости от выполнения составных условий:

если справа свободно или снизу свободно
  то закрасить
все
если справа стена
  то влево
все
если слева стена
  то вправо
все

Подумай: в какую клетку переместится Робот из клетки, обозначенной ромбиком, при выполнении следующего фрагмента алгоритма?

🎯 Самое главное

Давай закрепим основные идеи этого урока!

Ветвление — это когда алгоритм проверяет условие и выбирает, что делать дальше
Полная форма содержит два варианта: для «Да» и для «Нет»
Неполная форма содержит только один вариант — для «Да»
Составные условия используют связки and, or, not
Комбинация ветвлений позволяет выбирать из трёх и более вариантов

🤔 Проверь себя

Проверь, как хорошо ты усвоил материал!

1. Что такое разветвляющийся алгоритм? Как ты думаешь, всегда ли в таком алгоритме выполняются все действия, или это зависит от условий?

Вспомни определение ветвления и подумай, что происходит, когда условие выполняется или не выполняется.

2. Придумай свой пример разветвляющегося алгоритма из повседневной жизни, из любимой игры и из любого школьного предмета

Подсказка:

  • Из жизни: что делать, если телефон разрядился?
  • Из игры: что происходит, когда твой персонаж встречает врага?
  • Из школы: как решать задачу по физике в зависимости от условия?
3. Дополни алгоритм из примера 5 так, чтобы он находил наибольшую из четырёх величин: A, B, C и D

Попробуй написать код или нарисовать блок-схему!

4. Составь алгоритм, с помощью которого можно определить, существует ли треугольник с длинами сторон a, b, c

Подсказка: вспомни условие существования треугольника из геометрии.

5. Составь алгоритм, с помощью которого можно определить, является ли треугольник с заданными длинами сторон a, b, c равносторонним

Какие условия должны выполняться для равностороннего треугольника?

6. Составь алгоритм возведения чётного числа в квадрат, а нечётного — в куб

Подсказка: как проверить, чётное число или нечётное? Используй операцию остатка от деления!

7. Какая задача решается с помощью алгоритма с переменной K?
K := 0
если A >= 0
  то K := K + 1
все
если B >= 0
  то K := K + 1
все
K (результат)

Попробуй подставить разные значения A и B и посмотри, что получится в K.

8. Составь блок-схему алгоритма определения количества чётных чисел среди заданных целых чисел A, B и C

Используй счётчик и проверку на чётность!

9. Составь блок-схему алгоритма определения принадлежности точки x отрезку [a, b] (пример 4) с использованием комбинации из двух ветвлений

Подумай, как разбить составное условие на два простых.

10. Составь блок-схему алгоритма правописания приставок, оканчивающихся на букву «з»

Вспомни правило из русского языка!

11. Известно, что 31 января 2022 года было понедельником. Какие значения должны быть присвоены литерной переменной y в алгоритме, определяющем день недели для произвольного числа (chislo) января 2022 года?
chislo := chislo mod 7
если chislo = 3 то y: = ' '
если chislo = 4 то y: = ' '
если chislo = 5 то y: = ' '
если chislo = 6 то y: = ' '
если chislo = 0 то y: = ' '
если chislo = 1 то y: = ' '
если chislo = 2 то y: = ' '

Вспомни, что делает операция mod!

12. Даны две точки на плоскости. Составь алгоритм для определения, какая из них находится ближе к началу координат

Вспомни формулу расстояния от точки до начала координат.

13. Составь алгоритм для определения, есть ли среди цифр заданного целого трёхзначного числа одинаковые

Как выделить отдельные цифры числа? Используй операции деления и остатка!

14. Ученик 8 класса, познакомившийся с разветвляющимися алгоритмами, решил применить свои знания на уроках математики и разработал алгоритм решения линейного уравнения ax + b = 0. Он очень торопился и поэтому допустил в блок-схеме алгоритма ошибки. Исправь ошибки!

Проверь правильность работы алгоритма, решив с его помощью следующие уравнения: 1) 5·x – 10 = 0; 2) 12·x = 0; 3) 0·x + 10 = 0; 4) 0·x + 0 = 0.

15. Робот находится внутри поля размером 5×5 клеток. Рядом с Роботом есть стена длиной в одну клетку. Составь в среде (системе) программирования КуМир один из алгоритмов, описанных ниже

Варианты алгоритмов:

  • а) Робот закрашивает две клетки: клетку, в которой он находится в стартовой позиции, и клетку с другой стороны от стены
  • б) Робот закрашивает клетку с другой стороны стены и возвращается назад
  • в) Робот закрашивает клетку, в которой он стоит, и «прячется» за стену

Протестируй программу, устанавливая начальное положение Робота в клетках, отмеченных ромбом.

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

Попробуй применить полученные знания на практике!

💻 Задание 1: Простое условие

Напиши алгоритм, который проверяет, положительное ли число введено пользователем. Если да — выводит «Число положительное», если нет — «Число отрицательное или ноль».

🔢 Задание 2: Максимум

Дополни алгоритм из примера 5 так, чтобы он находил максимум из четырёх чисел A, B, C и D. Нарисуй блок-схему!

📐 Задание 3: Треугольник

Составь алгоритм, который определяет тип треугольника по его сторонам: равносторонний, равнобедренный или разносторонний.

🎮 Задание 4: Игра

Представь, что ты разрабатываешь игру. Составь алгоритм, который проверяет, победил ли игрок (набрал больше 100 очков) или проиграл (набрал меньше 50 очков), или игра продолжается.

Теперь ты знаешь, как компьютер принимает решения!

Теперь ты знаешь, как компьютер принимает решения!

🚀 Отличная работа! Теперь ты понимаешь, как компьютер думает и принимает решения. В следующем уроке мы разберём циклы — там программа будет повторять одно и то же действие много раз, пока не получит нужный результат. Удачи!

Информатика — твой билет в цифровое будущее