- Lektsia - бесплатные рефераты, доклады, курсовые работы, контрольные и дипломы для студентов - https://lektsia.info -

Блок-схемы алгоритмов разветвляющейся структуры.



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

Рассмотрим блок-схему разветвляющегося алгоритма, или алгоритма ветвящейся структуры. Если после ввода данных оказывается, что условие истинно, то вычислительный процесс идёт по ветви «Да», и выполняется Действие 1. Если же оказывается, что условие ложно, то вычислительный процесс идёт по ветви «Нет», и выполняется Действие 2.

Рисунок 4.1. Блок-схема алгоритма ветвящейся структуры

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

Условный оператор. Операции сравнения. Логические переменные, операции и выражения. Составной оператор.

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

В математической логике есть понятие высказывания – такого утверждения, о котором можно с уверенностью сказать, истинное оно или ложное. Классическим примером высказывания (принимающего, кстати, истинное значение) является утверждение: «Волга впадает в Каспийское море». Естественно, что запись a>b становится высказыванием, как только будут определены значения переменных a и b.

Теперь рассмотрим, что есть простое логическое выражение. Логические выражения, так же, как и математические, состоят из операций и операндов (объектов, над которыми совершаются логические операции). В простом логическом выражении операнды связаны операциями сравнения, или операциями отношений. Таких операций всего шесть: = (равно), < > (не равно), > (больше), >= (больше или равно), < (меньше), <= (меньше или равно). Для вычисления значения логического выражения все входящие в него операнды на данный момент должны быть определены. Дальнейший ход вычислительного процесса заключается в подстановке значений операндов в логическое выражение и проверке истинности поставленного условия. В отличие от математических, логические выражения могут принимать только два значения: “1” или “0” ("Да" или "Нет", "ИСТИНА" или "ЛОЖЬ", “TRUE” или “FALS”). С точки зрения математической логики, логическое выражение есть высказывание. В языке Pascal оно интерпретируется как логическая, или булева (boolean), переменная, которая создаётся самой программой и занимает 1 байт оперативной памяти.

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

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

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

AND – логическое "И" (операция конъюнкции);

OR – логическое "ИЛИ" (операция дизъюнкции);

NOT – логическое "НЕ" (операция отрицания).

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

Поэтому, например, двойное неравенство a<=x<=b, отображающее факт принадлежности переменной Х интервалу [a, b] может быть записано лишь в виде сложного логического выражения. В нём два простых логических выражения, в которых значение переменной X сравнивается сначала с нижней границей отрезка a, а затем с верхней границей отрезка b, связаны логической операцией И:

(Х>=a) AND (Х<=b).

Для истинности этого выражения должны быть истинными обе составные его части. Тот же факт, что Х не принадлежит интервалу [a, b], на языке Pascal записывается так:

(Х<a) OR (Х>b)

или

NOT ((Х>=a) AND (Х<=b)).

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

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

Теперь необходимо рассмотреть ещё одно понятие: составной оператор. По определению, составной оператор – это последовательность двух или более операторов языка Pascal, заключённых между ключевыми словами begin и end, называемых также операторными скобками. Необходимость в введении составного оператора возникла потому, что синтаксис большинства операторов языка Pascal предполагает, что внутри этих операторов может работать только один оператор. Если же алгоритм предполагает использование более одного оператора, то используется составной оператор, который имеет вид:

Begin

< оператор1 >;

< оператор2 >;

........

< операторN >

end;

После последнего оператора N точка с запятой (" ; ") может не ставиться, так как следом идет ключевое слово end.

Теперь мы можем рассмотреть синтаксис и работу условного оператора.

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

Синтаксис условного оператора в языке Pascal:

IF <логическое выражение> THEN <оператор 1> ELSE <оператор 2>;

Операторы 1 и 2 могут быть простыми или составными. Условный оператор работает следующим образом. Сначала вычисляется значение логического выражения. Если результат есть ИСТИНА, то выполняется оператор 1, а оператор 2 пропускается. Если результат есть ЛОЖЬ, то выполняется оператор 2, а оператор 1 пропускается, и компьютер передаёт управление следующему по порядку оператору программы.

Существует укороченная форма условного оператора, в которой часть оператора ELSE <оператор 2> опущена. В этом случае оператор действует следующим образом: если значение логического выражения ИСТИНА, выполняется оператор 1, если ЛОЖЬ, то оператор 1 не выполняется, и компьютер передаёт управление следующему по порядку оператору программы.