Б) Разветвляющиеся алгоритмы

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

Пример 2: Напишите алгоритм замены стержня в шариковой ручке (по учебнику математики Л.Г. Петерсон 2 класс).

Решение:

1. Есть ли запасной стержень?

2. Если да. Перейти к пункту 4

3. Если нет. Купить новый стержень

4. Развинтить ручку

5. Вынуть пустой стержень

6. Вставить полный стержень

7. Завинтить ручку.

 

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

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

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

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

Пусть b 1, b 2 – условия. Составное условие b 1 и b 2 истинно, если соблюдается вместе и b 1, и b 2. Условие b 1 или b 2 истинно, если соблюдается, по крайней мере, одно из условий b 1 или b 2. Перед условием можно написать частицу не. Тогда, например, условие не b 1 истинно, если b 2 – ложно, и наоборот. В условиях могут присутствовать связки: исклили (исключающее или), импл (импликация, обозначаемая знаком É или ®) и экв (эквивалентность, тождество, обозначаемая º, «, ~). Например, условие b 1 исклили b 2 ложно, если оба условия b 1, b 2 либо соблюдаются, либо не соблюдаются; условие b 1 импл b 2 всегда истинно, кроме случая, когда b 1=истина, а b 2 =ложь. Значением условия b 1 экв b 2 будет истина при совпадении значений b 1 и b 2.

Альтернатива. Определим команду (безусловного) перехода. Так называется простая команда вида иди к метка, где метка – какое-либо имя или номер команды, которой будет передано управление данной командой перехода. Команда «ветвление» имеет две формы: полную и сокращенную. Полная команда ветвления в записи псевдокодом и блок-схемой имеет вид:

если условие

то

серия 1

Иначе

серия 2

конец - если

 

 

Работает она следующим образом: сначала проверяется, соблюдается ли условие. Если оно соблюдается, то выполняется серия 1, и на этом работа команды заканчивается. Если же условие не соблюдается, то выполняется серия 2, после чего работа команды завершается. Команды серий реализуются подряд, каждая по своим правилам.

Сокращенная команда «ветвление» имеет вид:

если условие

то

серия

Конец-если

   

 

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

Команды «ветвление» можно писать «в линию»:

Если условие то серия 1 иначе серия 2 конец-если

Если условие то серия конец-если

Многозначное ветвление (Выбор). Часто приходится выбирать из нескольких возможностей. Такую ситуацию (многозначное ветвление) можно описать вложенными друг в друга командами ветвления или (что бывает короче) – командой выбора. Она в записи псевдокодом и блок-схемой имеет вид:

выбор выражение

список значений 1 выполнять серия 1

список значений 2 выполнять серия 2

список значений k выполнять серия k

иначе выполнять серия 0

Конец-выбор

 

Эта команда работает следующим образом: сначала определяется значение выражения, если оно принадлежит списку значений i (i=1,2,…k), то выполняются команды серии i, и на этом работа всей команды завершается. В противном случае (значение не принадлежит ни одному списку значений), работают команды серии 0, указанной после слова иначе.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: