- •Техника программирования на алгоритмическом языке бейсик
- •Операторы языка
- •Операторы управления
- •Организация ветвлений
- •Input “Укажите х”, X
- •2 Print y
- •Input X
- •Input a,b,c
- •Организация циклов
- •Программа к задаче 9
- •Input "Введите числа X и y", X, y
- •Input X
- •Input X
- •Работа с массивами
- •Input "Введите число вкладчиков и процент ",n,p
- •Input X(I,j)
- •Input n
Организация ветвлений
Очень распространенной задачей является программирование процессов с несколькими исходами – ветвящихся процессов.
Задача 1. Для произвольного аргумента Х вычислить значение кусочно-ломаной функции Y(X) (рис. 2).
Одно из возможных решений задачи приведено на рис. 3 и 4. Здесь имена переменных отображены строчными буквами, а ключевые слова – прописными только для наглядности. Как уже указывалось, регистр букв безразличен – в Бейсике они воспринимаются одинаково.
Программа к задаче 1
Input “Укажите х”, X
IF x<0 THEN y=5+x: GOTO 2
IF x<10 THEN y=5: GOTO 2
y=10–0.5*x
2 Print y
END
Рис. 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
Задача 2. Даны три произвольных числа А, В, С. Составить программу, которая анализирует их и, если сумма первых двух чисел не меньше третьего, а второе число больше первого – выдает сообщение ВЕРНО. Если хотя бы одно из условий не выполняется – то сообщение НЕВЕРНО. Иными словами
“ВЕРНО” если А+В>=C и В>A
“НЕВЕРНО” – в противном случае
На рис. 5 и 6 представлено решение (блок-схема и программа), полностью адекватное условию. Однако в некоторых случаях решение удобно искать, преобразовав условие на обратное, т.е.
“НЕВЕРНО” если А+В<C или В<=A
“ВЕРНО” – в противном случае
Это позволяет иногда упростить программирование (рис. 7).
При необходимости выполнять анализ одновременно нескольких условий удобно воспользоваться логическими функциями. Аргументами логических функций являются высказывания, в отношении которых всегда можно сказать, истинны они или ложны. К таким высказываниям относятся математические операции сравнения – равно, больше, меньше и т.д. Так, например, выражение вида Х=Y всегда может быть только истинным или только ложным. Рассмотрим важнейшие логические функции (см. таблицу ниже).
Функция одного аргумента НЕ истинна тогда и только тогда, когда ложен ее аргумент. То есть значение функции всегда обратно аргументу. Поведение функции полностью описывает таблица. В операторе IF функция И обозначается словом NOT. Например, следующие два оператора полностью идентичны
IF X<10 THEN Y=5 IF NOT X>=10 THEN Y=5
Аргумент |
Функция НЕ |
|
Первый аргумент |
Второй аргумент |
Функция И |
Функция ИЛИ | |||
Ложь |
Истина |
|
Ложь |
Ложь |
Ложь |
Ложь | |||
Истина |
Ложь |
|
Ложь |
Истина |
Ложь |
Истина | |||
|
|
|
Истина |
Ложь |
Ложь |
Истина | |||
|
|
Истина |
Истина |
Истина |
Истина |
В качестве примера снова рассмотрим задачу 2 в исходной формулировке. Теперь ее решение сводится практически к одной строке и приведено ниже