Basic вводный курс

       

Условный переход



Условный переход

Мало того, что условный переход подразумевает выполнение тех или иных команд в зависимости от проверяемого условия, так Бейсик предоставляет нам еще и несколько вариантов действий.
Начнем с классической конструкции:

IF ... THEN ... ELSE
Или по-русски:
ЕСЛИ ... ТОГДА ... ИНАЧЕ

В записи условия можно использовать следующие символы:

  • = (равно);
  • > (больше);
  • < (меньше);
  • о или >< (не равно);
  • <= или =< (меньше или равно);
  • >= или => (больше или равно).

Мне кажется, что уже что-то должно быть понятно из самой конструкции условного оператора. Но раскроем его смысл на примере следующей программы. Допустим, в некоторой стране живут люди, говорящие только правду. Но при этом и у них есть вредные привычки, и некоторые из них курят. Для продажи сигарет сделаны автоматы, которые запрашивают возраст покупателя и реагируют на это двумя различными способами в зависимости от названной правдиво величины.

CLS
INPUT "Как Вас зовут"; N$
INPUT "Сколько Вам полных лет"; S
IF S<18 THEN ?"Вам еще рановато курить, ";N$ ELSE ?"Минздрав
России предупреждает — курение опасно для вашего здоровья!"

Программа запрашивает имя, потом возраст (все это уже не вызывает у нас никаких затруднений), а вот потом вступает в дей ствие условный оператор. Если возраст s меньше 18, то выводится надпись, что курить еще рановато (а чтобы не было очень обидно, обращается по имени). Иначе (т. е. если возраст больше либо равен 18) автомат продает сигареты, но предупреждает об опасности курения.
Еще один маленький пример. Вычислим корень квадратный из х.

CLS
INPUT "Введите любое число"; X
? "Корень квадратный из Х="; SQR(X)

Запускаем программу. Вводим число 4. Ответ 2. Вводим 121. Ответ 11. Вводим -9. Аварийное прерывание программы и сообщение об ошибке "Неверный вызов функции". Что такое? А все потому, что корень квадратный вычисляется только из положительного числа. Вот программа и "ругается". Но мы же умные, добавим в программу условный оператор, и будет она работать для любых чисел.

CLS
1:INPUT "Введите любое число";Х'
IF X>=0 THEN ? "Корень квадратный из X ="; SQR (X) ELSE ?"Корень квадратный из отрицательного числа вычислять отказываюсь. Дайте положительное число!"
:GOTO 1

Теперь программа анализирует введенное значение и, в случае его положительности, вычисляет корень, а в случае отрицательности в легкой форме раздражается и просит у пользователя другое число.
И еще пример с графикой. Предположим, мы настолько дружественны к пользователю, что не говорим ему: "Вот, посмотри, какая картинка!", а предлагаем некий выбор. Для первого раза из двух возможностей.

SCREEN 9
INPUT "Введите 1, если хотите увидеть солнце и любую другую цифру, если ничего не хотите"; X
IF X=l THEN CIRCLE (320, 175), 50, 2: PAINT(320, 175), 14, 2 ELSE ?"Спасибо за внимание!"

Программа запрашивает у пользователя цифру (причем в случае ввода буквы просит осуществить ввод заново). Если это цифра 1,
то рисуется желтый круг, в любом другом случае появляется надпись "Спасибо за внимание!".
Поупражняемся.
114. Напишите программы, которые в зависимости от введенного числа либо вычисляют функцию, либо выдают сообщение, что функция не определена:



Содержание раздела