Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Операторы безусловного перехода

Поиск

 

Синтаксическая структура оператора безусловного перехода:

 

GOTO <нсi>,

 

где GOTO – ключевое слово “ИДТИ К”; угловая скобка содержит номер строки, которой передается управление без всякого условия.

В строке может использоваться либо один, либо последним.

 

Пример. 50 GOTO 120

 

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

 

 

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

 

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

Имеется 3 синтаксических конструкции IF: IF-THEN, IF-THEN-ELSE и IF-THEN-IF. Последняя конструкция выделена, так как до версии GB она была запрещена.

Синтаксические структуры выглядят следующим образом:

а) IF <условие> THEN ;

б) IF <условие> THEN  ELSE ;

в) IF <условие> THEN IF <условие> THEN ;

 

где IF – ключевое слово «если»; THEN – служебное слово «тогда»; оператор может быть любым, что позволяет использовать конструкцию в); нс – номер строки; ELSE – служебное слово «иначе».

В QB и TB может использоваться и «нс», и метка как в виде цифры или символа(символов), после которой ставится «:».

В каждой из конструкций IF сначала вычисляется заданное условие: TRUE или FALSE. Если «истина», то выполняется конструкция после THEN; если «ложь», то управление передается на следующую строку (в программе для конструкции а) или управление передается конструкции после ELSE.

С помощью конструкции в) можно программировать сдвоенные неравенства.

Пример: Запрограммировать выражение a<b<c.

Решение: IF a < b THEN IF b < c THEN…

Зная логические функции, это неравенство можно запрограммировать проще: IF a<b AND b<c THEN…

 

Пример.

70 IF A > B THEN IF A < D THEN 120

80 X = A * 3 - C

120 X = A

 

Оператор в строке 120 выполняется только при условии попадания А в зону: B<A<D; в противном случае выполняется оператор в строке 80.

Оператор IF может записываться с другими операторами в строке, но если в его составе есть операторы безусловного перехода (GOTO, GOSUB, <нсj>), то он должен быть в строке последним.

В языке БЭЙСИК имеется оператор для организации нескольких ветвлений из одной точки программы. Это арифметический оператор ON

 

 

Оператор ON

 

Оператор ON означает «переключатель». Этот оператор удобно использовать для передачи управления в «к» точек программы пользователя. Его синтаксическая структура:

 

ON <E> ,

 

где ON – ключевое слово переключатель; E – арифметическое выражение, которое должно принимать последовательность целых значений 1, 2, 3, …, k.

Переключатель может передавать управление либо через GOTO в разные точки программы, либо через GOSUB к различным подпрограммам.

В зависимости от значения, которое принимает арифметическое выражение, управление передается к порядковому номеру записанных строк нс1…нсk, в соответствии со значением Е.

Основная задача пользователя задать арифметическое выражение Е, которое еще называют переключающим.

Работу оператора ON можно проиллюстрировать на задаче решения квадратного уравнения в общем виде.

Пример. Дано квадратное уравнение . Известно, что корни квадратного уравнения зависят от значения (вернее знака) дискриминанта D, который может быть больше нуля, равен нулю или меньше нуля. Предлагается выбрать в качестве Е следующие выражения:

 

E = SGN(D) + 2.

При D < 0 E = 1;

   D = 0 E = 2;

   D > 0 E = 3.

 

Таким образом, выполнено условие для арифметического выражения. Тогда фрагмент программы может быть следующим:

30 ON SGN(D) + 2 100,200,300

100 PRINT “Корни комплексные сопряженные”

200 PRINT “Корни действительные равные”

300 PRINT “Корни действительные разные”

Значения параметров строк 100,200,300 взяты произвольно, но их порядковые номера 1,2,3.

 

 



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 113; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.179.120 (0.005 с.)