Иллюстрированный самоучитель по Basic, вводный курс

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

Оператор выбора

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

Конструкция оператора несколько тяжеловесна, но ничего страшного в ней нет.

Она выполняет один из нескольких блоков операторов в зависимости от значения выражения.

SELECT CASE тест_выражение CASE список_выражений1
[блок_ операторов_1]
[CASE список_выражений2
[блок операторов_2]}
[CASE ELSE
[блок_операторов_n]} END SELECT

Здесь тест_выражение – любое числовое или строковое выражение; список_выражений1, список_выражений2 – ОДНО ИЛИ несколько выражений для сравнения с параметром тест_выражение.

В выражении ключевое слово is должно стоять перед любым знаком отношения. блок_операторов_1, блок_операторов_2, блок_ операторов_n – один или несколько операторов в одной или нескольких строках.

Аргументы списка выражений могут принимать любую из следующих форм или их комбинацию и должны разделяться запятыми:

  • выражение [, выражение]…
  • выражение ТО выражение
  • IS оператор_отношения выражение

Здесь выражение – любое числовое или строковое выражение, совместимое с параметром тест_выражение\ знак_отношения – один из знаков отношения <, <=, >, >=, <> или =.

Рассмотрим пример:

CLS
INPUT "Введите уровень риска (1-5): "; RISK SELECT CASE RISK CASE IS >= 5
PRINT "Максимальный риск, шансов на возвращение практически нет."
PRINT "Пишите завещание." CASE 2 ТО 4
PRINT "Высокий риск, шансов на возвращение немного."
PRINT "Проверьте снаряжение, оружие и припасы." CASE 1
PRINT "Риск отсутствует, возврат гарантирован."
PRINT "В Вас отсутствует дух авантюризма, это слишком скучно."
END SELECT

Еще пример. По заданному номеру дня недели требуется напечатать его название:

CLS
INPUT "Введите номер дня недели"; N SELECT CASE N CASE 1
? "Понедельник" CASE 2
? "Вторник"
END SELECT

Ну что ж, теория без практики суха. Задания.

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

135. В восточных календарях принят 60-летний цикл, состоящий, в свою очередь, из пяти 12-летних подциклов. Под-циклы обозначались цветом: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крысы, быка, тигра, кролика (зайца или кота), дракона, змеи, лошади, овцы (барана или козы), обезьяны, петуха, собаки и свиньи. Создайте программу с использованием операторов выбора, запрашивающую номер года нашей эры и печатающую его название по восточному календарю. Для проверки: 1966 г. – год красной лошади, 1984 г. – зеленой крысы.

136. Усложненный вариант предыдущего задания. Теперь требуется определить не только название введенного с клавиатуры года, но и год наступления "светлого будущего", до которого вы, безусловно, доживете! Делаем это поэтапно. Вот примерный словесный алгоритм. После введения исходного четырехзначного года с клавиатуры вам необходимо выделить составляющие его цифры и записать их в переменные А1, А2, аз и А4. (Если в номере года есть нули, то в соответствующие переменные записать 4.) Затем необходимо взять от них синусы по модулю.

Из полученных значений выделить по две цифры после запятой и сложить их. Если сумма больше либо равна 10, то сложить еще раз. Должно получиться 4 цифры, из которых надо составить четырехзначное число. Это и будет номер года наступления светлого будущего. Осталось определить его название по восточному календарю и вывести результаты на экран. Для проверки: при исходном годе 1986 годом светлого будущего будет 3589.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.