|
Ветвление в алгоритмах и программах.Date: 2015-10-07; view: 474. Разветвляющий алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий. Во многих случаях требуется, чтобы при одних условиях выполнялась одна последовательность действий, а при других - другая.
Вся программа состоит из команд (операторов). Команды бывают простые и составные (команды, внутри которых встречаются другие команды). Составные команды часто называют управляющими конструкциями. Этим подчеркивается то, что эти операторы управляют дальнейшим ходом программы. Рассмотрим запись условного оператора на языке Basic. Простая форма оператора выглядит следующим образом: IF <УСЛОВИЕ> THEN <ОПЕРАТОР> или IF <УСЛОВИЕ> Если условие справедливо, то программа выполняет тот оператор, который стоит после ключевого слова THEN(или серию операторов от ключевого слова THENдо END IF), и дальше руководствуется обычным порядком действий. Если уловие не справедливо, то оператор, стоящий после THEN(или серия операторов от THENдо END IF) не выполняется, и программа сразу переходит к обычному порядку действий. Условия - еще один тип логических выражений. В них используются следующие операторы сравнения:
Справа и слева от знака сравнения должны стоять величины, относящиеся к одному типу. В результате сравнения получается логическая величина, имеющее значение ИСТИНА (TRUE) или ЛОЖЬ (FALSE). Пример: Предыдущие конструкции позволяли обойти или выполнить серию оператор в зависимости от справедливости условия. Это еще не было ветвлением. Чтобы вычисления могли разветвляться по нескольким направлениям, служит конструкция IF...THEN...ELSE...END IF. IF <УСЛОВИЕ> THEN Если условие справедливо (ИСТИНА), то выполняются <операторы 1> (стоящие между THEN и ELSE), а <операторы 2> (стоящие между ELSE и END IF) будут пропущены. IF - если, THEN - тогда, ELSE - иначе. Если в комнате темно, тогда надо включить свет. Если пойдет дождь, тогда надо взять зонтик, Пример: Проверить, равно ли введенное число некоторому значению, и в случае равенства выдать на экран сообщение о равенстве чисел. REM сравнить число со каким-то значением После запуска программы проверяется равно ли введенное значение семи или нет. Если равно, то на экран выводится сообщение 'Числа равны'. Пример: Определить большее из двух чисел, вывести его на экран, затем - увеличить его в двое и вывести результат на экран. REM определить большее из двух чисел... Сначала программа запрашивает оба числа, затем проверяет условие a>b. Если условие верно, то на экран выводится число a, затем это число удваивается. Иначе на на экран выводится число b, затем число b удваивается. В завершении на экран выводится удвоенное значение большего числа. Обратите внимание: программа имеет один недостаток - не учитывается тот случай, когда введенные числа равны. Исправим это, использовав вложение одного условия в другое. REM определить большее из двух чисел... В этой программе два условных оператора, первым проверяется условие равенства чисел и, в случае его выполнения, будет выдано сообщение о равенстве чисел, если числа не равны, то проверяется второе условие... Пример: Решение квадратного уравнения. REM Решение квадратного уравнения Структура "Выбор". Структура IF...позволяет выбрать между двумя вариантами. Если требуется осуществить выбор между большим числом вариантов, то это можно организовать используя лишь структуру IF... Но можно (что чаще проще) и с помощью структуры "Выбор". Эта структура имеет вид: SELECT CASE <Выражение> Выражение, заданное после ключевых слов SELECT CASE, сравнивается с определенными значениями - условиями и если они истинны, то выполняется соответствующая серия команд. Если не одно условие не истинно, то выполняется серия команд между CASE ELSE и END SELECT. Пример: Выдать словесное значение числа REM Преобразование чисел в слова В данном примере введенное число сравнивается с числами от 1 до 10 и если наше число равно одному из этих чисел, то на экран выводится словесное значение числа. Если это не так на экран выводится сообщение: "это число не могу перевести".
|