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

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

Поупражняемся.

114. Напишите программы, которые в зависимости от введенного числа либо вычисляют функцию, либо выдают сообщение, что функция не определена:

Иллюстрированный самоучитель по Basic, вводный курс › Алгоритмы, графика, символы и строки › Условный переход

Иллюстрированный самоучитель по Basic, вводный курс › Алгоритмы, графика, символы и строки › Условный переход

115. Напишите программу для вычисления функции:

Иллюстрированный самоучитель по Basic, вводный курс › Алгоритмы, графика, символы и строки › Условный переход

116. Напишите программу, определяющую четность или нечетность введенного с клавиатуры целого числа.

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

118. По четырехзначному номеру года, запрошенному с клавиатуры определите номер столетия (например, для 1492 г. – ответ XV век, для 1812 г. – XIX век). Учесть, что началом века считается первый, а не нулевой, год. (То есть, 2000-й год, из астрономии – последний год XX века).

Выше мы рассмотрели полную форму условного оператора, когда в зависимости от истинности или ложности условия выполняются те или иные действия, после чего программа переходит к выполнению следующей за условным оператором команды.

Существует также неполная форма условного оператора. Она выглядит так:

IF условие THEN
команды,_выполняемые_в_случае_истинности_условия

В этом случае программа проверяет условие, и в случае его истинности выполняет команды, указанные после служебного слова then. Если же условие ложно, то программа переходит к выполнению следующей за условным оператором команды.

Например, программу автомата по продаже сигарет можно модифицировать при помощи сокращенного варианта условного оператора:

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

Здесь появляется новый оператор end, выполнение которого в любом месте программы приводит к ее остановке.

Возможен еще также составной условный оператор, когда после служебных слов then или else вновь следует условный оператор, когда выполнение тех или иных действий зависит не от одного, а от нескольких условий.

Например, допустим, что Преображенский полк гренадеров набирали только из тех новобранцев, рост которых был не менее 180 см, а вес – не менее 80 кг. Программа этого процесса выглядела бы следующим образом:

CLS
INPUT "Как Вас зовут?"; N$
INPUT "Каков Ваш рост в см"; R
INPUT "Каков Ваш вес в кг"; М
IF R >=180 THEN IF M >=80 THEN?"Вы – достойный кандидат в гренадеры,
";N$ ELSE? N$; ", к сожалению, вы в гренадеры не годитесь"

Здесь условный оператор сначала проверяет соответствие кандидата по росту, а затем еще и по весу, и только в случае выполнения обоих условий выдается сообщение о пригодности кандидата.

При использовании составных условных операторов надо быть очень осторожным, чтобы не запутаться самому в then и else. Есть правило, по которому else относится к ближайшему слева от него then. В рассматриваемом случае первый условный оператор, который проверяет рост, относится к сокращенной форме, у него нет else, а второй является полным.

Отсюда получается такой казус, что если кандидат сразу не проходит по росту, то на экране вовсе не появится никакого сообщения, потому что программа должна перейти к следующей за условным оператором команде, а ее нет. Чтобы разобраться в этом, выполните упражнение. Вообще, лучше не злоупотреблять составными условными операторами, а разбивать их на несколько простых или использовать сложные условия, о которых мы поговорим чуть ниже.

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