На Горох
Математика

2.85. Алгоритмы с условием

"Математика (в 3-х частях)", Демидова Т.Е., Козлова С.А., Тонких А.П.

Объяснение темы В оглавлении: 2.85. Алгоритмы с условием

Кратко о теме

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

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

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

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

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

Условие — утверждение или вопрос, результатом проверки которого является «истина» или «ложь». Например, для числа 8 утверждение «число больше 5» истинно, а для числа 3 — ложно. Такая оценка помогает алгоритму однозначно выбрать дальнейший путь.

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

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

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

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

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

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

Полное ветвление используют, когда для обоих результатов проверки нужны разные действия. Если условие истинно, выполняются команды первой ветви; если ложно — команды второй. Благодаря этому ни один возможный случай не остаётся без обработки, например при сравнении двух чисел можно выбрать первое или второе в зависимости от результата сравнения.

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

Виды конструкций алгоритма с условием

Вид конструкцииПроверяемое условиеДействия при истинном условииДействия при ложном условииПример применения
Неполное ветвлениеОдно условиеВыполняется заданная командаОтдельная команда не выполняетсяВывести предупреждение, если число отрицательное
Полное ветвлениеОдно условиеВыполняется первая команда или группа командВыполняется другая команда или группа командВыбрать большее из двух чисел
Последовательность команд после ветвленияУсловие проверено перед ветвлениемПосле выбранной ветви выполняется общая командаПосле выбранной ветви выполняется та же общая командаВывести результат после его выбора
Вложенное ветвлениеНесколько условий, проверяемых внутри ветвейДальше может проверяться ещё одно условиеДальше может проверяться другое условие или выполняться командаНазначить скидку по сумме заказа

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

Разбор задач

Определить, является ли заданное число чётным

Дано целое число n. Чётным называют число, которое делится на 2 без остатка, поэтому достаточно проверить делимость. Если нужно сообщить результат для любого числа, удобно применить полное ветвление.

  1. Проверяем условие: n делится на 2 без остатка.
  2. Если условие истинно, записываем результат «число чётное».
  3. Если условие ложно, записываем результат «число нечётное».
  4. После выбора соответствующего результата алгоритм его выводит.

Ответ: алгоритм проверяет делимость на 2 и сообщает «чётное» при истинном условии, иначе — «нечётное». Если требуется только найти чётное число среди нескольких, можно использовать неполное ветвление и выводить число лишь при истинном условии.

Найти большее из двух данных чисел

Пусть даны числа a и b. Чтобы определить большее, сравним их; для равных чисел условие a > b ложно, поэтому алгоритму нужно предусмотреть и этот случай. Если по условию задачи требуется именно большее, равенство стоит обработать отдельно или оговорить, что числа различны.

  1. Сравниваем a и b с помощью условия a > b.
  2. Если условие истинно, выбираем a: оно больше b.
  3. Если условие ложно и числа различны, выбираем b.
  4. Общей командой выводим выбранное число.

Ответ: при a > b выводим a, иначе при условии a ≠ b выводим b. Если равенство возможно, алгоритм должен дополнительно сообщить, что числа равны, иначе нельзя утверждать, что выбранное число строго больше второго.

Вычислить стоимость покупки с разной скидкой

Пусть сумма заказа равна S, а правила такие: при S меньше 1000 рублей скидки нет, от 1000 до 2999 рублей скидка 5%, а от 3000 рублей — 10%. Сначала нужно выяснить, к какой группе относится сумма, потому что от этого зависит формула итоговой стоимости. Границы диапазонов зададим так, чтобы каждая сумма попадала ровно в один случай.

  1. Проверяем, меньше ли S 1000. Если да, стоимость равна S.
  2. Если первое условие ложно, проверяем, меньше ли S 3000. Если да, стоимость равна 0,95 × S.
  3. Если обе проверки ложны, S не меньше 3000, поэтому стоимость равна 0,90 × S.
  4. Выводим рассчитанную стоимость после выбора подходящей ветви.

Ответ: алгоритм выполняет две проверки последовательно; вторую проводят только тогда, когда заказ не попал в первую группу. Коэффициенты 0,95 и 0,90 оставляют к оплате соответственно 95% и 90% суммы. Это пример последовательных проверок, которые можно также представить как вложенное ветвление.

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

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

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

В полном ветвлении иногда забывают описать действие для ложного условия. Причина часто в том, что сначала рассматривают только ожидаемый или привычный случай. Проверь, куда попадёт алгоритм, если условие окажется ложным; для каждого результата должен быть предусмотрен путь.

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

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

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

Условия часто строятся на сравнении чисел и логических высказываниях. Знаки отношений <, > и = помогают записать проверку коротко и точно, а понимание истины и лжи — определить результат. Поэтому перед составлением алгоритма полезно проверить, однозначно ли сформулировано условие.

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

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

  • Алгоритм с условием выбирает дальнейшие действия по результату проверки.
  • Условие имеет один из двух результатов: истина или ложь.
  • При неполном ветвлении действие выполняется только при истинном условии.
  • При полном ветвлении предусматриваются действия для обоих результатов проверки.
  • В каждой ветви команды выполняются последовательно.
  • После окончания выбранной ветви алгоритм может продолжить выполнение общих команд.
  • Несколько условий можно объединять в последовательные или вложенные ветвления.

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

Чем алгоритм с условием отличается от обычной последовательности команд?

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

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

Подумай, от какого факта зависит выбор дальнейших действий. Запиши этот факт так, чтобы можно было однозначно определить, истинен он или ложен, например: «число делится на 2 без остатка».

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

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

Что происходит, если условие оказалось ложным?

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

Можно ли использовать несколько условий в одном алгоритме?

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

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

2.85. Алгоритмы с условием

Учебник

Оглавление →
Предмет
Математика
Учебник
"Математика (в 3-х частях)", Демидова Т.Е., Козлова С.А., Тонких А.П.