Ветвление кратко в информатике

Обновлено: 05.07.2024

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

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

Алгоритм – это ясный перечень действий, который направлен на решение какой-либо задачи. Одно из свойств алгоритма — дискретность. Дискретность связана с наличием в алгоритмической последовательности ряда операций (этапов, действий), выполняемых пошагово, то есть дискретно. Алгоритм обладает свойством дискретности, так как он представляет собой процесс решения задачи в виде последовательного выполнения простых шагов. И каждое действие исполняется лишь после окончания исполнения предыдущего. Также предполагается наличие определённых исходных данных и результата выполнения.

Блок-схема — графический способ описания алгоритмов. Графическое представление обеспечивает наглядность и упрощает запись, делая последовательность более понятной. При использовании схемы каждому действию соответствует определённая геометрическая фигура (эти фигуры называют блоками). Вот наиболее часто употребляемые:

1-1801-45f906.jpg

Ещё раз о линейности

Линейная последовательность — самая простая из возможных структур. При наличии линейности команды выполняются в чёткой последовательности и в порядке их записи, то есть друг за другом. Вот линейная алгоритмическая последовательность посадки дерева: 1) выкапывание ямки в земле; 2) размещение в ямке саженца; 3) закапывание ямки; 4) поливание места посадки водой.

Такой линейный алгоритм имеет следующую блок-схему:

2-1801-c5c0b7.jpg

А вот и общая схема линейного алгоритма:

3-1801-35f267.jpg

Ветвление в алгоритмических последовательностях

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

4-1801-2c4a5c.jpg

Компьютерные программы и игры тоже построены на выборе действий. А блок-схема при наличии ветвления приобретает иной вид:

4.1-1801-fa94a6.jpg

Логика разветвляющих алгоритмов

Логику можно описать следующим образом:

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

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

5-1801-c7b186.jpg

Для закрепления можно решить задачу.

Есть 3 монеты одинакового достоинства. Одна из монет фальшивая (известно, что она имеет меньший вес). Найдите фальшивую монету на чашечных весах без гирь с помощью только одного взвешивания.

Решение легко описывается посредством схематических блоков:

6-1801-145fea.jpg

Следующий пример легко экстраполируется в жизнь. Речь идёт об алгоритме для перехода дороги при наличии светофора. Он имеет следующий вид: 1. Подходим к светофору. 2. Смотрим, какой горит свет. 3. Если зелёный, переходим дорогу. 4. Если красный, ждём, пока загорится зелёный, а потом переходим дорогу.

7-1801-391350.jpg

Программный способ записи

Чтобы алгоритм было понятен компьютеру, машине и любой другой цифровой системе, следует оформить его в таком виде, который эта система способна воспринимать. То есть надо написать программу, используя для этого команды из СКИ. СКИ — это список команд исполнителя — перечень команд, ему понятных. А любой исполнитель способен исполнить лишь те команды, которые включены в его СКИ, а если говорить человеческим языком — входят в набор его компетенций.

Для примера можно реализовать алгоритм на языке программирования Pascal. Исходя из вышесказанного, следует использовать команды, входящие в терминологию Pascal.

Простейший пример описания алгоритма с разветвляющейся структурой — условный оператор IF. Полная конструкция этого условного оператора имеет следующий вид:

Условный оператор работает просто: — вычисляется значение логического выражения, которое расположено после служебного слова IF; — если результат — истина, выполняется оператор 1, который размещён после THEN, причём действие после ELSE пропускается; — если результат — ложь, пропускается уже действие после THEN, а действие после ELSE выполняется с помощью оператора 2.

Теперь можно вспомнить пресловутого витязя на распутье и написать простую программу, реализующую этот алгоритм с помощью соответствующих условных операторов.

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


Конспект по информатике "Алгоритмические конструкции" для самостоятельного изучения и подготовки к контрольным работам, экзаменам и ГИА.

Алгоритмические конструкции

Код ОГЭ: 1.3.2. Алгоритмические конструкции

Различают три основных вида алгоритмов (базовые алгоритмические конструкции, или структуры): линейные, с разветвлениями и с циклами.

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

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

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

Алгоритм, предписывающий выполнение тех или других действий в зависимости от результата проверки условия, называется разветвленным (структурой ветвления).

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

Третий вид алгоритмов (с циклами) обеспечивает многократное выполнение некоторой совокупности действий. Например, для вычисления разности двух чисел в столбик необходимо сначала вычесть последние цифры исходных чисел и записать последнюю цифру результата (если требуется, перенести единицу из предыдущего разряда). Затем аналогично следует вычислить разность предпоследних цифр чисел и так далее. Процедура повторяется, пока все цифры исходных чисел не будут исчерпаны. Количество повторений зависит от количества цифр в заданных числах.

Алгоритм, предписывающий повторное выполнение действий, называется циклическим алгоритмом (алгоритмом с повторением, или структурой цикла).

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

Наличие возврата к ранее произведенным действиям является характерным отличием алгоритмов с циклами от линейных и разветвленных.

Линейные алгоритмические конструкции

В блок–схемах линейные алгоритмы представляют с помощью последовательности функциональных блоков:


В алгоритмическом языке линейным структурам соответствует последовательность команд языка:

Команда 1
Команда 2
Команда 3

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

Пример 1. Определить значение целой переменной n после выполнения следующего алгоритма:
m := 3
n := 4
m := 6 + m*n
n := n + m/3

Решение. Первые две команды присваивания определяют начальные значения переменных. Для выполнения третьей команды сначала надо вычислить правую часть выражения: 6 + 3 х 4 = 18. Это значение будет присвоено переменной m. Для выполнения последней команды также сначала вычисляется правая часть выражения: 4 + 18/3 = 10. Результат будет присвоен переменной п.

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

Пример 2. Вычислить значение выражения x 2 – 3 × х – 10, используя только операции сложения и умножения.

Для решения задачи в той последовательности, что определяет само выражение, потребуется 2 операции умножения, 2 вычитания и 3 переменных (х, y, z). Однако можно вычислить то же выражение как (х — 2) × х – 10. Такой алгоритм расчета потребует 1 умножение, 2 вычитания и 2 переменных (х, у).


Решение.

Алгоритмические конструкции ветвления

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

Существует две реализации структуры ветвления: полная и неполная (краткая). Обе формы ветвления являются замкнутыми: каждая из них имеет один вход и один выход.


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

Краткая форма ветвления предполагает, что в случае истинности условия будет выполнена команда 1, а иначе — никакие действия не выполняются.

если 2/х ≠ 0
то y := 2/x
всё


Пример 5. Для приведенного фрагмента блок–схемы алгоритма выбрать соответствующий ему фрагмент на алгоритмическом языке.

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

Структура ветвления выбор предполагает поочередную проверку нескольких условий (одно за одним). Если проверяемое условие 1 истинно, выполняется команда 1, если нет — переходят к проверке следующего условия. Если второе условие истинно — выполняется команда 2, если нет — проверяют следующее условие и т. д.



and (логическое И),
or (логическое ИЛИ),
xor (исключающее ИЛИ),
not (отрицание).

Например, чтобы задать условие принадлежности числовой величины Z промежутку (10;20), следует записать составное условие Z > 10 and Z Циклические конструкции

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

Заголовок этой структуры содержит условие, которое называется предусловием. Эта структура предписывает повторять тело цикла до тех пор, пока выполняется условие в его заголовке (т. е. пока оно остается истинным).


Пример 6. Записать на алгоритмическом языке алгоритм получения остатка от деления целого числа а на целое число b с помощью вычитания.


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



Решение.

Эта структура предписывает повторять команды тела цикла для всех значений некоторой переменной (параметра, или счетчика цикла).


Имя параметра цикла (счетчика) указывают в заголовке после служебного слова для. Затем с помощью служебных слов от и до задают начальное и конечное значение этого параметра.

Цикл со счетчиком всегда выполняется i1 – i2 + 1 раз.

Пример 8. Записать алгоритм вычисления факториала числа N.


Решение. Факториал числа вычисляется по формуле N! = 1 × 2 × … × N. Следовательно, для расчета факториала надо организовать цикл со счетчиком, в котором перемножить последовательные целые числа от 2 до N. Значение 1!, равное 1, можно присвоить результирующей переменной до цикла.

Таблицы и массивы

■ Массив — конечный набор пронумерованных однотипных данных, имеющий имя.

Величины, которые входят в массив, называются его элементами. Количество элементов массива называется его размерностью.

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

Имя массива (таблицы) относится ко всему набору данных. Элементы массива различают по порядковому номеру, который называется индексом. Для обращения к элементу его индекс указывают в квадратных скобках сразу вслед за именем массива. Например, если массив имеет имя D, то третий его элемент обозначается D[3]. Такие имена называются индексированными именами. Индексы могут быть не только константами, но и переменными или целочисленными выражениями: D[j], D[k+1].

Различают одномерные и многомерные массивы.

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

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


Одномерная таблица, содержащая расстояния от Солнца до планет Солнечной системы (в астрономических единицах), может выглядеть как табличная строка:

Названия планет в этой таблице отсутствуют (иначе они бы образовали вторую строку). Чтобы узнать расстояние от Солнца до Марса, надо обратиться к четвертому элементу этой таблицы. Если, например, в программе такой массив расстояний от Солнца был поименован как Dist, то для обращения к 4–му элементу массива надо указать Dist[4].


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

В отличие от индексированных элементов массива обычные переменные иногда называют скалярными.

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

Общий вид описания таблицы:
тип элементов таб имя таблицы [наименьший индекс : наибольший индекс]

Например, для описания таблицы расстояний от Солнца необходимо учесть, что в ней содержатся нецелые числа, следовательно, тип данных таблицы — вещественный, и количество элементов равно 9:
вещ таб Dist[1:9]

Для присвоения значений элементам таблицы (массива) используют операторы присваивания или процедуру ввода данных, как и для обычных переменных.


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

Зачастую ввод данных в массив или задачи их обработки связаны с перебором элементов массива. Для этих целей обычно используют циклы с параметром (со счетчиком). В теле цикла индекс массива обозначают переменной, и эта же переменная выступает в роли параметра (счетчика) цикла. Для параметра в заголовке цикла указывают перечень значений индекса массива. Например, если необходимо обработать все 20 значений массива Т, то следует записать цикл нц для i от 1 до 20 … кц и в теле цикла задать обработку для элемента T[i].

Пример 10. По данным о территории некоторых стран Европы (см. первую строку примера многомерной таблицы) рассчитать суммарную площадь этих стран.

Решение. В алгоритме необходимо предусмотреть ввод вещественных данных в таблицу (например, Terr) из 9 элементов. Для будущего суммарного результата необходимо отвести переменную (например, S), первоначально присвоить этой переменной нулевое значение. Затем организовать цикл с параметром, изменяющимся от 1 до 9 (количество элементов в таблице) и поочередно сложить предыдущее значение S с очередным элементом таблицы Terr[i]. Завершить алгоритм выводом результата.

В данном уроке закрепляется материал о разветвляющихся алгоритмах. В этот раз рассматриваются полная и краткая форма условного оператора if, основы работы с оператором while.

План урока:

Программирование разветвляющихся алгоритмов

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

Определение разветвляющегося алгоритма

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

Простые условия содержат одно логическое (булево) выражение, то есть такое утверждение, которое является либо истинным, либо ложным.

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

  • > (больше);
  • = (больше или равно);
  • (не равно);
  • = (равно).

Примеры простых логических выражений:

  • Value (идентификатор Value должен иметь логический тип данных);
  • a - b<> 5 (истинно, если a -b не равно 5);
  • c>= 10 + 11 (истинно, если c имеет значение 21 или больше);
  • 7 > 8 (это выражение всегда ложно);
  • ‘бабушка’ <> ‘дедушка' (это выражение всегда истинно).

Первые три выражения имеют в своём составе переменные или константы, следовательно, об истинности всего выражения можно говорить только когда эти идентификаторы будут иметь какие-то определённые значения:

  • Если a = 5, b = 3, то второе выражение является истинным. Однако, если a = 5, b = 0, то результатом их разности будет число 5, которое делает это выражение ложным.
  • Если c = 9, то третье выражение будет ложным, при этом, если с имеет значение 21 и более, то выражение будет истинным.

В третьем примере сначала определяется истинность выражения d > 5 and x <> 2, а затем выполняется операция or, поскольку логическое умножение, как и арифметическое, имеет приоритет над сложением.

Какие условные операторы языка Паскаль позволяют описывать подобные разветвленные алгоритмы? На этом уроке мы продолжим разбор условного оператора if и рассмотрим различные его формы.

Условный оператор

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

Формы записи условного оператора if

if then ;

if then else ;

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

if then

else

Составной условный оператор

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

if then

begin

end

else

begin

end;

В данном примере, в случае истинности условия будут выполняться операторы 1 и 2, в случае ложности – операторы 3 и 4.

Вложенный условный оператор

if then

if then

else

else

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

Однако, на этом многообразие операторов ветвления не заканчивается. Так, для разветвляющихся циклических алгоритмов применяется оператор while.

Циклический оператор while

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

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

Задачи

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

Задача 1. Необходимо создать программу, которая на вход будет получать 2 числа, а выводить наибольшее из них. Если числа одинаковы, то нужно вывести любое из них.

Шаг 1. Необходимо ввести наименование программы. В данном случае это будет решение первой задачи.

Шаг 2. Учитывая, что числа, которые получит программа и запишет в переменные a и b, будут относиться к численному типу данных, необходимо указать тип integer.

Шаг 4. Необходимо записать оператора, благодаря которому будет происходить принятие входных данных и закрепление их за определёнными переменными.

Шаг 5. Появление условного оператора if. В данной задаче необходимо вывести наибольшее число, поэтому условием будет сравнение чисел.

Шаг 6. Проверка написанного кода программы и правильности выводящихся данных. Если значение a больше значения b, то программа выводит значение, закреплённое за переменной a. В противном случае, программа выведет число b. Если числа одинаковы, то программа автоматически перейдёт к выполнению оператора, записанного после слова else, так как числа одинаковы, нет разницы в том, какое из них выводить.

Задача 2. На вход программа получает 3 числа, которые обозначают длины различных отрезков. Необходимо выяснить, можно ли построить с помощью этих отрезков треугольник. Если да, то каким он будет: тупоугольным, прямоугольным или остроугольным.

Шаг 1. Для решения этой задачи понадобятся минимальные знания в области математики. Изначально необходимо помнить, что в прямоугольном треугольнике сумма квадратов катетов равна квадрату гипотенузы, в тупоугольном треугольнике сумма квадратов двух наименьших сторон меньше квадрата наибольшей, а в остроугольном то же самое, но наоборот: сумма квадратов двух наименьших сторон больше квадрата наибольшей.

Шаг 2. Построение кода программы. Для начала необходимо дать ей название.

Шаг 3. Указывается тип данных. Поскольку данные, которые получает программа, относятся к численному типу данных, то после названий переменных нужно написать integer.

Шаг 5. Запись оператора, который поможет программе получить данные.

Шаг 6. Запись и представление примерной работы всех необходимых условий. Изначально нужно понять, образуют ли отрезки какой-либо треугольник, для этого записывается условие, дословно переводящееся как «если c n является истинным. На вход подаётся число n, большее чем единица.

Шаг 1. Для начала необходимо дать программе название.

Шаг 2. Учитывая, что на вход подаётся целое число, указать тип данных, в данном случае – integer.

Шаг 3. Запись командного блока. Нужно написать слово, обозначающее начало, begin.

Шаг 5. Запись необходимых операторов. Используя оператор readln программа считывает данные и переводит курсор на новую строку. Далее она производит операции над поступившими данными.

Шаг 7. Проверка правильности записи алгоритма. В конце программного блока, после слова end нельзя забывать точку, её обязательно нужно поставить.

Задача 4. На вход подаётся натуральное число, из которого необходимо удалить заданную пользователем цифру.

Шаг 1. Для решения данной задачи понадобится вспомнить операции mod и div в Паскале. Div возвращает целую часть при делении какого-то числа на какое-то число. К примеру, если 5 поделить на 3, то в остатке будет 2. При записи 5 div 3 программа выдаст значение 1, тк 5 делится на 3 ровно 1 раз. Mod возвращает остаток от деления. При записи 5 mod 3 программа выдаст значение 2, поскольку остаток от деления 5 на 3 равен 2. Как же решать эту задачу?

Шаг 3. Указание типа вводимых данных. Longint представляет тип данных с длинными целыми числами, к нему можно отнести подающееся на вход число (а) и цифру, которую нужно удалить (b). Следующим типом будет byte, он представляет целый беззнаковый тип.

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

Шаг 6. Проверка кода программы. После окончания всех циклов она должна вывести итоговое число и завершить свою работу.

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

Эдсгер Вибе Дейкстра

Эдсгер Вибе Дейкстра (1930-2002) — выдающийся нидерландский учёный, идеи которого оказали огромное влияние на развитие компьютерной индустрии.

Блок-схема ветвления представлена на рис. 2.9. Каждая ветвь может быть любой степени сложности (рис. 2.9, а), а может вообще не содержать предписаний (рис. 2.9, б).

На алгоритмическом языке команда ветвления записывается так:

На алгоритмическом языке команда ветвления записывается так:

Для записи условий, в зависимости от результатов проверки которых выбирается та или иная последовательность действий, используются операции сравнения:

А В — А больше В;
А>=В — А больше или равно В;
А<>В — А не равно В.

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


Пример 7. Алгоритм вычисления функции ƒ(x) = |х| для произвольного числа х.


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

Условия, состоящие из одной операции сравнения, называются простыми. В качестве условий при организации ветвлений можно использовать и составные условия. Составные условия получаются из простых с помощью логических связок and (и), or (или), not (не): and означает одновременное выполнение всех условий, or — выполнение хотя бы одного условия, a not означает отрицание условия, записанного за словом not.


Пример 8. Алгоритм определения принадлежности точки х отрезку [а, b]. Если точка х принадлежит данному отрезку, то выводится ответ ДА, в противном случае — НЕТ.


Существует достаточно много ситуаций, в которых приходится выбирать не из двух, а из трёх и более вариантов. Есть разные способы построения соответствующих алгоритмов. Один из них — составить комбинацию из нескольких ветвлений.


Пример 9. Алгоритм, в котором переменной У присваивается значение большей из трёх величин А, Б и С.


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


Для записи любого алгоритма достаточно трёх основных алгоритмических конструкций (структур): следования, ветвления, повторения.

Читайте также: