Оператор условного перехода.




ОБЩИЙ ВИД:

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, то получим следующий результат:

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: