- •1. Простейшие Операторы языка
- •2. Операторы управления
- •3. Организация ветвлений
- •Input X
- •Input a,b,c
- •Input g
- •4. Организация циклов
- •5. Операторы циклов
- •Программа к задаче 5.2
- •Input "Введите числа X и y", X, y
- •Input X
- •Input X
- •6. Работа с массивами
- •7. ОбРаботка Символьных данных
- •Пример. ?instr(”Саша”,”а”),instr(3,”Саша”,”а”) Результат: 2,4
- •Input "введите число X"; X
- •Контрольные задания
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
Аргумент |
Функция НЕ |
|
Первый аргумент |
Второй аргумент |
Функция И |
Функция ИЛИ |
Ложь |
Истина |
|
Ложь |
Ложь |
Ложь |
Ложь |
Истина |
Ложь |
|
Ложь |
Истина |
Ложь |
Истина |
|
|
|
Истина |
Ложь |
Ложь |
Истина |
|
|
Истина |
Истина |
Истина |
Истина |
В качестве примера снова рассмотрим задачу 3.2 в исходной формулировке. Теперь ее решение сводится практически к одной строке и приведено ниже