Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР(информатика) / Бейсик (курс 'Информатика') №6.doc
Скачиваний:
13
Добавлен:
14.03.2016
Размер:
523.78 Кб
Скачать

3. Организация ветвлений

Очень распространенной задачей является программирование процессов с несколькими исходами – ветвящихся процессов.

Задача 3.1. Для произвольного аргумента X вычислить значение кусочно-ломаной функции Y(X) (рис. 3.1).

Возможные решения задачи приведены на рис. 3.2 и 3.3. Здесь имена переменных отображены строчными буквами, а ключевые слова – прописными только для наглядности. Как уже указывалось, регистр букв безразличен – в Бейсике они воспринимаются одинаково.

Здесь используется помеченный оператор (2 PRINT y). Необходимость в этом возникла вследствие потребности перейти к печати от операторов IF, минуя оператор y=10-0.5*x. В данном случае метка может быть любым числом, а не только 2. Замечание. В блок-схеме, на связях имеющих очевидное направление, стрелки можно не указывать.

Отметим, что практически любая задача может быть запрограм­мирована различными способами. Например, здесь возможно и такое решение.

Input X

IF x<0 THEN y=5+x: PRINT y: END

IF x<10 THEN y=5: PRINT y: END

y=10-0.5*x: PRINT y

Задача 3.2. Даны три произвольных числа A, В, С. Составить программу, которая анализирует их и, если сумма первых двух чисел не меньше третьего, а второе число больше первого – выдает сообщение ВЕРНО. Если хотя бы одно из условий не выполняется – то сообщение НЕВЕРНО. Иными словами

ВЕРНО” если A+В>=C и В>A

“НЕВЕРНО” – в противном случае

На рис. 3.4 и 3.5 представлено решение (блок-схема и программа), полностью адекватное условию. Однако в некоторых случаях решение удобно искать, преобразовав условие на обратное, т.е.

НЕВЕРНО” если A+В<C или В<=A

“ВЕРНО” – в противном случае

Это позволяет иногда упростить программирование (рис. 3.6).

При необходимости выполнять анализ одновременно нескольких условий удобно воспользоваться логическими функциями. Аргументами логических функций являются высказывания, в отношении которых всегда можно сказать, истинны они или ложны. К таким высказываниям относятся математические операции сравнения – равно, больше, меньше и т.д. Так, например, выражение вида X=Y всегда может быть только истинным или только ложным. Рассмотрим важнейшие логические функции (см. таблицу ниже).

Функция одного аргумента НЕ истинна тогда и только тогда, когда ложен ее аргумент. То есть значение функции всегда обратно аргументу. Поведение функции полностью описывает таблица. В операторе IF функция И обозначается словом NOT. Например, следующие два оператора полностью идентичны

IF X<10 THEN Y=5 IF NOT X>=10 THEN Y=5

Аргумент

Функция

НЕ

Первый

аргумент

Второй

аргумент

Функция

И

Функция

ИЛИ

Ложь

Истина

Ложь

Ложь

Ложь

Ложь

Истина

Ложь

Ложь

Истина

Ложь

Истина

Истина

Ложь

Ложь

Истина

Истина

Истина

Истина

Истина

Из функций двух аргументов для нас важны И и ИЛИ. Функция И истинна тогда и только тогда, когда истинны все ее аргументы (в программах обозначается словом AND). Функция ИЛИ (OR) истинна тогда, когда истинен хотя бы один из ее аргументов. Если нет скобок, функции вычисляются в такой последователь­ности: НЕ, И, ИЛИ.

В качестве примера снова рассмотрим задачу 3.2 в исходной формулировке. Теперь ее решение сводится практически к одной строке и приведено ниже