Найти тему

Программирование на Бейсике. Условный оператор

Условный оператор или, точнее, оператор условного перехода – один из важнейших в программировании. Он позволяет регулировать направление, в котором будет двигаться выполнение программы. Как в той сказке: «Налево пойдешь, смерть свою встретишь. Направо пойдешь, коня потеряешь…».

К примеру, в ходе программы переменная «а» принимает какое-то значение. И нам нужно узнать, положительное ли значение хранится в переменной. И если значение положительное (больше нуля), то мы предпримем какое-нибудь действие. Например, выведем на экран сообщение, что a>0.

В Бейсике это можно записать так:

IF a > 0 THEN PRINT “a > 0”

Подобная запись в одну строку делается только в случае, когда у нас есть конкретный вопрос и конкретный ответ – как в описанном случае. Вопрос: значение переменной «а» больше нуля? Ответ: да, выведи «а > 0».

Если же мы хотим, к примеру, не только вывести сообщение, но и произвести еще какое-то действие (а может, и не одно), то запись в одну строку не пройдет. Для этого существует «расширенная» конструкция:

IF a > 0 THEN
PRINT “Hello”
PRINT “a > 0”
END IF

Таким образом у нас выведется на экран две строки.

Получается, с «IF» начинается блок условного оператора, а с помощью «END IF» он заканчивается.

Теперь давайте рассмотрим пример, в котором если переменная содержит положительное число, то выводится одно сообщение, а если отрицательное – то другое. Для этого в условном операторе предусмотрено слово «ELSE» - т.е. «иначе»:

IF a > 0 THEN
PRINT “a > 0”
ELSE
PRINT “a < 0”
END IF

Иными словами, мы говорим: если a > 0, выводим «a > 0», иначе выводим «a < 0».

Есть еще третий вариант, когда вариантов больше двух. Тогда необходимо пользоваться дополнительным «иначе если», причем он должен располагаться до «ELSE»:

IF a > 0 THEN
PRINT “a > 0”
ELSEIF a < 0 THEN
PRINT “a < 0”
ELSE
PRINT “a = 0”
END IF

В этом примере мы разобрали все три возможных варианта: если число больше нуля, если меньше нуля и если равно нулю. В коде не нужно спрашивать, равно ли нулю. Достаточно задать два вопроса из трех. Оставшийся вариант оформляется через «ELSE». Соответственно, если вариантов будет четыре, то блок условного оператора будет состоять из одного «IF», двух «ELSEIF» и одного «ELSE».

Давайте оформим все это, наконец, в законченного вида программу:

Приведенный пример условия – очень простой. Часто условия бывают довольно сложные. Например, нужно что-то сделать, если значение переменной больше нуля, но меньше 10. В таком случае код примет такой вид:

IF a > 0 AND a < 10 THEN

Слово «AND» переводится как «и». То есть мы говорим: если переменная «а» больше нуля и переменная «а» меньше десяти.

Есть еще одно слово, встречающееся часто – «или». Например, нам нужно что-то сделать, если переменна «а» или меньше -10, или больше 10. Так как в природе нет такого числа, которое меньше -10 и одновременно больше 10, приходится использовать не «и», а «или»:

IF a < -10 OR a > 10 THEN

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

Например, нам даны 2 числа, которые обозначают оценки ученика. Если одна пятерка, и одна четверка, или обе четверки, то ученик – хорошист. В коде это можно выразить так:

IF (a1 = 5 AND a2 = 4) OR (a1 = 4 AND a2 = 5) OR (a1 = 4 AND a2 = 4) THEN

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

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

1.

IF a1 = 5 THEN
IF a2 = 5 THEN PRINT “Otlichnik”
END IF

То есть по-русски это можно прочитать так: если а1 = 5, тогда если а2 = 5, тогда выведи сообщение «отличник».

2.

IF a1 = 5 AND a2 = 5 THEN

А здесь по-русски получается следующее: если а1 = 5 и а2 = 5, тогда…

Понятное дело, что применение сложного условного выражения с применением «AND» позволяет значительно сократить код. К тому же, такой код легче читается и воспринимается. Но часто возникают случаи, что условия настолько сложные, что без применения нескольких условных операторов, вложенных друг в друга, ничего не получится.

Для закрепления данной темы рекомендуем выполнить как можно больше задач.

Комменты приветствуются, за палец вверх - отдельное спасибо. Удачи!

------------------------------

Список уроков Программирование на Бейсике для начинающих

Следующий урок Циклы

Предыдущий урок Работа с символами, строкой, текстом

------------------------------

Задания

1. Дано целое число.

  • Если оно положительное, то прибавить к нему 1, иначе не изменять.
  • Если оно положительное, то прибавить к нему 1, иначе отнять 2.
  • Если оно положительное, то прибавить к нему 1, если отрицательное – отнять от него 2, а если равно нулю – заменить его на 10.

Вывести результат на экран.

2. Даны три целых числа. Вывести количество положительных чисел в этом наборе.

3. Даны четыре целых числа. Вывести количество положительных и отрицательных чисел в этом наборе.

4. Даны два целых числа.

  • Вывести большее из них.
  • Вывести их в порядке возрастания.
  • Вывести порядковый номер меньшего числа.

5. Даны три целых числа.

  • Найти наименьшее из них.
  • Найти сумму двух наибольших из них.
  • Если введенные числа упорядочены по возрастанию, то удвоить их.

6. Даны три целых числа, причем два из них (только два) должны быть одинаковыми.

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

7. На числовой оси расположены три точки: A, B и C. Определить, какая точка из B и C ближе к точке A. Вывести эту точку и расстояние от нее до A.

8. Дана координата точки, не лежащей на осях X и Y. Вывести номер координатной четверти, в которой находится точка.

9. Даны координаты трех вершин прямоугольника, стороны которого параллельны осям координат. Найти координату четвертой вершины.

10. Даны три оценки, значением от 3 до 5. Если все оценки равны 5, то вывести «Otlichnik». Если оценки ученика равны 4 или 5, то вывести «Horoshist». Если есть тройка/тройки, то вывести «Troechnik».

11. Дан номер года в четырехзначном виде. Определить, является ли год високосным. Если високосный, то вывести «Yes», иначе – «No».

Високосные года определяются следующим условием: он делится на 4 без остатка, за исключением тех, которые делятся на 100 без остатка и одновременно не делятся на 400.

Например, високосными годами являются: 1200, 2000, 2004, 2020. Не являются високосными: 1300, 1999, 2010.