Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Разветвляющиеся алгоритмические структуры

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

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

Введение

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

Разветвляющиеся алгоритмические структуры

Для реализации разветвляющихся алгоритмических структур в языках программирования предусмотрены следующие типы операторов:

  1. Операторы условных переходов или тип условных операторов.
  2. Тип операторов выбора или операторов вариантов.
  3. Тип операторов безусловных переходов.

Например, в языке программирования Паскаль оператор безусловного перехода определяется следующим образом:

GOTO ∠метка>

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

Перед использованием метки в программе, она должна быть описана. Описание метки может быть выполнено при посредстве зарезервированного слова LABEL, означающего «метка», после которого следует перечислить все метки. К примеру:

«Разветвляющиеся алгоритмические структуры» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Label loop, lb1;
Begin
goto lb1; loop: ……lb1: ……goto loop;
End.

Предназначением оператора GOTO является передача управления к необходимому оператору. При использовании меток, необходимо соблюдать следующие правила:

  1. Метки, указанные оператором GOTO, должны обязательно присутствовать в разделе описаний.
  2. Если метки описываются непосредственно в функции, то они могут быть использованы только локально.

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

IF ∠условие> THEN∠оператор 1> ELSE∠оператор 2>;

Где IF, THEN, ELSE выступают как зарезервированные слова, которые в переводе означают «если», «то», «иначе».

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

Совокупность ELSE∠оператор 2>, являющаяся фрагментом условного оператора, применяется не всегда и может быть пропущена.

Структурная организация разветвляющегося алгоритма изображена на рисунке ниже:

Структурная организация разветвляющегося алгоритма. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Структурная организация разветвляющегося алгоритма. Автор24 — интернет-биржа студенческих работ

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

Program wetw2;
Var maх,х,y:real;
Begin
write(‘х= ’);
readin(х); {осуществление вода х}
write(‘y= ‘);
readin(y); {осуществление ввода у}
max:=y;
if х>y then max:=х;
{если х>у тогда max:=x, если это не так, то значение max не меняется}
writeln(‘max=’,max:8:2); {значение переменной max выводится на экран}
readin; {пауза}
End.

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

CASE ∠селектор> OF
∠перечень меток варианта>: ∠оператор 1>;
∠перечень меток варианта>: ∠оператор 2>;
∠перечень меток варианта>: ∠оператор З>;
ELSE
∠оператор N>
END;

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

Если найденное значение селектора не совпадает ни с одной меткой, то исполняется оператор, стоящий за служебным словом ELSE. Следует отметить, эта ветвь ELSE может просто отсутствовать.

Рассмотрим пример программы, использующей оператор варианта. Необходимо заметить, что оператор варианта удобно использовать в случае ввода и вывода величин, используемых скалярных типов информационных данных. Например, в приводимом далее фрагменте программы, следует с внешнего носителя занести порядковый номер объекта из списка значений COLOR. Оператор CPSE задаёт требуемое значение переменной CLR. Аналогичным образом осуществляется вывод величины CLR при помощи оператора варианта:

Program cas;
Type color = (red, blue, black);
Var х: integer;
Clr: color;
Begin
Write ('Задайте порядковый номер /0-1-2/ => ');
Readln (х);
Case х of
0: clr:=red;
1: clr:=blue;
2: clr:=black;
Else

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

begin
∠оператор 1>;
∠оператор 2>;
. . . . . . . . . . . . . . . . . .
∠оператор N>
end;

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

Дата написания статьи: 07.05.2021
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot