На Горох
Информатика, 8 класс

§ 16. Оператор ветвления

"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо и Ю.А. Быкадоров, Е.Н. Войтехович

Объяснение темы В оглавлении: § 16. Оператор ветвления

Кратко о теме

Оператор ветвления позволяет программе выбирать действие в зависимости от условия. Сначала компьютер проверяет, истинно ли логическое выражение, а затем выполняет одну из предусмотренных команд или пропускает её. В Pascal используют неполное ветвление if…then и полное if…then…else. Понимание этой конструкции помогает создавать алгоритмы, в которых действия зависят от введённых чисел и других данных.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Оператор ветвления — команда, которая выбирает, какой оператор выполнить, в зависимости от истинности условия. Он нужен, когда программа должна по-разному действовать при разных исходных данных. Например, можно отдельно обработать положительное и отрицательное число.

Условие — логическое выражение, результатом которого бывает только истина или ложь. Обычно его получают сравнением величин, например x > 0 или a = b. По этому результату программа понимает, какую ветвь выбрать.

Неполное ветвление — форма if … then, в которой действие предусмотрено только для истинного условия. Если проверка дала ложь, специальная команда не выполняется. Такую форму используют, когда при одном из результатов ничего делать не нужно.

Полное ветвление — форма if … then … else, где для истины и лжи заданы разные действия. Она гарантирует выбор одной из двух команд. Это удобно, например, при сравнении двух чисел, когда нужно вывести один из двух вариантов ответа.

Как это устроено

Сначала компьютер вычисляет условие, потому что выбор действия невозможен до получения результата проверки. Если результатом стала истина, управление переходит к команде, связанной с then. Если результат ложный, программа выбирает другую ветвь или продолжает работу дальше, если ветви else нет.

В неполном ветвлении команда после then выполняется только при выполнении условия. При лжи программа не останавливается и не возвращается к проверке, а сразу переходит к следующему оператору. Такая конструкция не содержит else, потому что для отрицательного результата отдельное действие не требуется.

В полном ветвлении после then находится действие для истины, а после else — действие для лжи. Это позволяет явно описать оба возможных исхода и не оставлять ситуацию без обработки. Компьютер выбирает только одну из ветвей, поэтому обе команды одновременно не выполняются.

Условия строят сравнением величин: чисел, символов или других значений, которые можно сопоставить. Знак = означает проверку равенства, а не присваивание, потому что в условии нужно узнать отношение уже имеющихся данных. Ошибка в знаке меняет множество подходящих значений: например, x > 0 исключает ноль, а x >= 0 включает его.

В Pascal перед else точку с запятой не ставят, поскольку она завершает оператор if. Если написать точку с запятой сразу после команды then, компилятор может считать ветвление законченным и не связать else с нужным if. Точка с запятой ставится после всего полного оператора, когда закончены обе ветви.

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

СвойствоНеполное ветвлениеПолное ветвление
Запись в Pascalif условие then оператор;if условие then оператор1 else оператор2;
Действие при истинном условииВыполняется оператор после thenВыполняется оператор после then
Действие при ложном условииВетка пропускаетсяВыполняется оператор после else
Когда применятьКогда действие нужно только при истинеКогда нужны разные действия для истины и лжи

Сначала определите, нужно ли действие при ложном условии. Если нет, выбирайте неполную форму, а если для двух исходов предусмотрены разные команды — полную. При записи проверяйте, к какой ветви относится каждый оператор.

В таблице показано не значение условия, а результат выбора команды. В обоих вариантах ветвь then связана с истиной, но только полная форма содержит отдельное действие для лжи.

Разбор задач

Положительное число

Условие: дано целое число x; нужно вывести «Положительное», если x больше нуля. Отрицательное число и ноль выводить не требуется. Поэтому достаточно неполного ветвления.

  1. Сформулируем проверку: x > 0.
  2. Запишем условие после if и сообщение после then: if x > 0 then writeln('Положительное');
  3. Если x больше нуля, сообщение появится, а при x <= 0 команда будет пропущена.

Ответ: используется условие x > 0 и неполное ветвление. Например, при x = 7 будет выведено «Положительное», а при x = 0 — ничего.

Большее из двух чисел

Условие: даны a и b; нужно вывести большее, а при равенстве сообщить об этом. Сначала проверим особый случай равенства, потому что тогда нельзя назвать одно число большим другого. После этого останется выбрать между a и b.

  1. Проверим a = b и при истине выведем «Числа равны».
  2. Если равенство ложно, сравним a > b.
  3. При истине выведем a, иначе после else выведем b.

Ответ: последовательность может выглядеть так: if a = b then writeln('Числа равны') else if a > b then writeln(a) else writeln(b). Вложенное if позволяет выбрать большее только после исключения равенства.

Наибольшее из трёх чисел

Условие: даны три числа, требуется определить наибольшее. Удобно сначала считать первым кандидатом наибольшее число a, а затем сравнить с ним b и c. Такой способ учитывает и случай равенства, если использовать нестрогий знак.

  1. Присвоим переменной m значение a: m := a.
  2. Если b > m, заменим m на b; теперь m не меньше a и b.
  3. Если c > m, заменим m на c, после чего m будет наибольшим.

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

Типичные ошибки

Присваивание вместо сравнения. Знак присваивания пытаются использовать, когда хотят проверить равенство, потому что оба действия связаны со знаком «равно» в обычной записи. В условии Pascal применяйте =, а перед запуском спрашивайте себя: я проверяю значение или изменяю его?

Точка с запятой перед else. Её ставят по привычке после каждой команды, не учитывая, что полное ветвление ещё не закончено. Проверьте запись: перед else точка с запятой отсутствует, а после всей конструкции она допустима.

Перепутаны ветви then и else. Иногда первую команду считают действием при лжи, хотя then всегда соответствует истинному условию. Для проверки подставьте пример, при котором условие явно истинно, и проследите, какая команда должна выполниться.

Не учтены границы. Знак > не включает значение, равное границе, поэтому условие x > 10 не подходит для x = 10. Перед записью решите, входит ли граница в нужный диапазон, и выберите > или >= соответственно.

Связь с другими темами

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

Также необходимо уметь сравнивать значения и понимать смысл истины и лжи. Без этого нельзя составить условие и предсказать результат проверки.

Ветвления применяются в алгоритмах с несколькими вариантами действий и часто соединяются с циклами. Например, внутри цикла можно проверять каждый элемент и обрабатывать только подходящие значения.

Что запомнить

  • Ветвление выбирает действие по результату проверки условия.
  • Условие принимает одно из двух значений: истина или ложь.
  • Неполное ветвление записывают с помощью if … then.
  • Полное ветвление записывают с помощью if … then … else.
  • Ветвь then выполняется при истинном условии, ветвь else — при ложном.
  • Перед else точку с запятой не ставят.

Частые вопросы по теме

Чем неполное ветвление отличается от полного?

В неполном ветвлении есть действие только для истинного условия: if…then. В полном ветвлении предусмотрены две ветви: then выполняется при истине, а else — при лжи.

Что произойдёт, если условие в операторе if ложно?

В неполном ветвлении команда после then будет пропущена, и программа продолжит выполнение со следующего оператора. В полном ветвлении выполнится команда после else.

Какие знаки сравнения можно использовать в условии?

В Pascal применяют знаки =, , , =. Они проверяют равенство, неравенство и отношения между величинами.

Почему перед else нельзя ставить точку с запятой?

Точка с запятой завершает оператор после then. Поэтому else перестаёт связываться с этим if и программа может выдать ошибку.

Как проверить, что два значения равны?

Для проверки равенства используют знак =, например a = b. Это условие имеет значение истина, если значения a и b совпадают.

Спросить по теме параграфа

§ 16. Оператор ветвления

Учебник

Оглавление →
Предмет
Информатика
Класс
8 класс
Учебник
"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо и Ю.А. Быкадоров, Е.Н. Войтехович