ОБЩИЙ ВИД:
IF V < УСЛОВИЕ> V THEN V <Действие 1 > V ELSE V< Действие 2>
Оператор условного перехода работает следующим образом:
ЕСЛИ условие выполняется,
ТО выполняем Действие 1 и выходим их оператора.
ИНАЧЕ выполняем Действие 2 и выходим.
Это полная форма оператора.
Например: Даны два числа. Вывести на печать квадрат большего из них.
РЕШЕНИЕ.
CLS
INPUT “A=“;A
INPUT “B=“;B
IF A>B THEN PRINT A^2 ELSE PRINT B^2
END
Оператор условного перехода можно записать в блочной форме:
IF V условие 1 V THEN
БЛОК ДЕЙСТВИЙ 1
ELSEIF V условие 2 V THEN
БЛОК ДЕЙСТВИЙ 2
........................................
ELSE
БЛОК ДЕЙСВИЙ n
END IF
В этом случае программа из предыдущего примера запишется так:
CLS
INPUT “A=“;A
INPUT “B=“;B
IF A>B THEN
PRINT A^2
ELSE
PRINT B^2
END IF
END
Оператор IF может не иметь конструкции ELSE. Такая форма оператора называется сокращенной.
IF V < УСЛОВИЕ> V THEN V Действие>
Этот оператор выполняется следующим образом:
ЕСЛИ условие выполняется,
ТО выполняем Действие 1 и выходим их оператора.
ИНАЧЕ выходим из команды.
В блочной форме:
IF условие THEN
БЛОК ДЕЙСТВИЙ
END IF
Пример: Дано число. Заменить его значение на корень арифметический из этого числа, если оно больше или равно нулю.
CLS
INPUT “А= “; A
IF A>=0 THEN PRINT А=SQR(A)
PRINT “A=“;a
END
Простые и составные условия.
В условных операторах и в операторе цикла WHILE в качестве условия можно использовать отношения равенства и неравенства: a>0; c<=0 и т.д.
Такие условия называют простыми.
Из простых условий в Бейсике разрешается строить более сложные. Для этих построений существуют определенные правила.
Прежде всего требуется, чтобы все отношения, которые используются при построении, заключались в скобки: (a=b+1), (c>=0), (s>t) и т.д.
|
Далее, пусть А и В — некоторые условия. Рассмотрим связки, которыми они могут быть соединены.
1. А and B (чит. А и В) — это условие соблюдается тогда и только тогда, когда соблюдаются оба условия.
2. A or B (чит. А или В) — это условие соблюдается тогда и только тогда, когда соблюдается хотя бы одно из условий А и В.
3. not A (чит. не А) — это условие соблюдается тогда и только тогда, когда условие А не соблюдается.
При выполнении логических операций необходимо соблюдать следующий приоритет:
1) NOT; 2) AND; 3) OR.
Решение задач.
Задача 1.
Определить, принадлежит ли число Х отрезку [3, 7].
РЕШЕНИЕ.
CLS
INPUT “X=”;X
IF (X<3)or (X>7) THEN
PRINT “Не принадлежит ” 3 7
ELSE
PRINT “Принадлежит “
END IF
END
Задача 2.
Записать условия, которым удовлетворяют точки верхней полуплоскости системы координат:
Y
0 Х
На графике видно, что заштрихованы все точки, координаты Y у которых неотрицательны, следовательно Ответ: Y>=0.
Задача 3.
Дано Х. Вычислить Y, если
Х^3, при -1<=X<=1
Y= 7, в противном случае
Примечание: При вычислении Y нужно проверить знак Х. Сложное неравенство разобьем на 2 простых (Х>=-1) и (X<=1).
-1 1
Т.к. эти условия должны выполняться одновременно, то мы должны связать их связкой and.
Решение.
CLS
INPUT “X=“;X
IF (X>=-1) and (X<=1) THEN Y=X^3 ELSE Y=7
PRINT “Y=“;Y
END
Задача 4.
Для заданной координатами Х и У точки проверить принадлежит ли она квадрату на рисунке:
-2 2
Решение:
CLS
INPUT “X=“;X
INPUT “Y=“;Y
IF (ABS(X)>=2) AND (Y<=4) AND (Y>=0) THEN
PRINT “ ТОЧКА ПРИНАДЛЕЖИТ“
ELSE
PRINT “ТОЧКА НЕ ПРИНАДЛЕЖИТ“
END IF
END
Задача 5.
|
Вычислить значение выражения y= . Значение х ввести склавиатуры.
Решение.
CLS
INPUT “X=“;X
IF (x+1 <0) AND (X=2) THEN
PRINT “При данном значении х функция не определена”
ELSE
Y=SQR (X+1) / (X-2)
PRINT “Значение функции равно “; Y
END IF
END
Задача 6.
Составьте программу, подсчитывающую сколько раз в данный текст входит буква “А”.
ПРИМЕЧАНИЕ: Вспомните задачу 4 из §10.2. В этой задаче мы используем тот же прием, т.е. заведем переменную-”копилку”, в которую будем класть единичку каждый раз, как встретим в слове букву “А”. Таким образом, раз мы должны будем проверить каждый символ текста, то налицо наличие в программе счетного цикла.
Решение.
CLS
INPUT “Введите текст: “; TEXT$
S=0
FOR I=1 TO LEN(TEXT$) STEP 1
IF MID$(TEXT$, I, 1)=“A” THEN S=S+1
NEXT I
PRINT “В текст “; TEXT$; “буква *А* входит “; S; “раз”
END
Рассмотрим работу программы на конкретном примере:
Пусть TEXT$=“МАМА”.
S=0
I=1 копируем первую букву — “М”
“М”=“А”? нет
I=2 копируем вторую букву — “А”
“А”=“А”? да S=S+1
I=3 копируем третью букву — “М”
“М”=“А”? нет
I=4 копируем четвертую букву — “А”
“А”=“А”? да S=S+1
Таким образом после выполнения программы в ячейке S будет лежать число 2.
Например, если TEXT$=“АБРАКАДАБРА”, то ответ будет — 5 раз.
если TEXT$ =“ЧИСЛО”, то ответ: 0 раз.
Задача 7.
Составьте программу, проверяющую является ли заданное слово “перевертышем” (т.е. читается ли слева направо и справа налево).
ПРИМЕЧАНИЕ: Задача перевертывания слова была рассмотрена в § 11.3. Заведем символьную переменную, в которую символ за символом, начиная с последнего перепишем заданное слово, а затем сравним его с исходным. Если они равны, то слово — перевертыш.
|
Решение.
CLS
INPUT ‘“Введите слово: “;B$
A$=“”
FOR I=1 TO LEN(B$) STEP 1
A$=A$+ MID$(B$, I, 1)
NEXT I
IF A$=B$ THEN PRINT “Слово — перевертыш “ ELSE PRINT “Слово не
является перевертышем “
END
Задача 8.
Составьте программу, заменяющую все точки в тексте на запятые.
CLS
INPUT ‘“Введите текст: “;B$
FOR I=1 TO LEN(B$) STEP 1
IF MID$(B$,I,1)=“.” THEN MID$(B$, I, 1)=“,”
NEXT I
PRINT “Преобразованный текст:”; B$
END
Примечание:
Разберем оператор IF MID$(B$,I,1)=“.” THEN MID$(B$, I, 1)=“,”. Выделяем в тексте символ с номером I. Если этот символ — запятая, то выделенный символ заменяем на точку.
Безусловный переход.
Бывают ситуации, когда в программе требуется пережать управление в другое место программы независимо от каких-либо условий. Это осуществляется с помощью оператора безусловного перехода GOTO.
ОБЩИЙ ВИД:
GOTO V метка
где МЕТКА — это набор символов, начинающийся с буквы может содержать любое количество символов (букв и цифр) и заканчивающийся двоеточием.
Задача 1.
Выводить на экран квадраты чисел, вводимых с клавиатуры.
Примечание: Чтобы не произошло зацикливания, необходимо оговорить условие, при котором ввод чисел прекращается.
Решение.
CLS
PRINT “При вводе числа 0 программа закончит работу “
Met1:
INPUT “Введите число: “; A
IF A< >0 THEN PRINT A^2 ELSE END
GOTO Мet1
Если мы введем последовательно числа 7, -2, 0.4, 0, то получим следующий результат: