Операторы перехода и оператор STOP 


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



ЗНАЕТЕ ЛИ ВЫ?

Операторы перехода и оператор STOP



В программе на языке Basic операторы выполняются в порядке возрастания номеров строк. Изменение порядка выполнения операторов производятся с помощью операторов управления. К этой группе операторов относятся операторы перехода, оператор останова, условные операторы и оператор цикла.

В языке Basic существует два вида операторов перехода: оператор безусловного перехода GOTO и оператор перехода по вычислению ON - GOTO.

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

Формат оператора GОТO:

<номер текущей строки> GOTO <номер строки >,

где <номер строки > - это номер строки, к которой осуществляется переход. Номер строки, к которой осуществляется переход в программе, может быть либо больше, либо меньше текущего номера строки.

Оператор ОN - GОТО позволяет осуществить переход к одной из нескольких указанных строк в зависимости от того, какое значение имеет выражение во время выполнения оператора.

Этот оператор имеет следующий формат:

< номер текущей строки > ОN < арифметическое выражение > GOTO <список строк>.

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

Например, оператор

50 ON P GOTO 100, 140, 180

передает управление строке 100, если Р=1; строке 140, если Р=2; строке 180, если Р=3.

Любые другие значения Р (не выходящие за пределы 0-255) приводят к передаче управления на следующий оператор.

Оператор SТОР вызывает прекращение вычислений по программе (останов программы) и выдачу об атом сообщения на терминал.

Формат оператора STOP:

< номер строки > SТОР

Условные операторы

Условные операторы позволяют, в зависимости от результата проверки некоторого условия, выполнить или не выполнить некоторый оператор, а также передать управление другой строке.

Оператор может быть использован в одном из форматов:

1. < номер строки > IF <условие> THEN < номер строки1 >

2. < номер строки > IF <условие> THEN <оператор>

3. < номер строки > IF <условие> THEN <оператор1> ELSE <оператор2>

Условие представляет собой логическое выражение. В случае, когда условие принимает значение “истина”, управление передается оператору с номером строки 1 (1-й вариант формата) или выполняется оператор (операторы), записанный после THEN (2-й вариант формата).

 
 

 


После выполнения оператора управление передается оператору с последующим номером строки. В случае невыполнения условия управление также передается оператору с последующим номером строки.

Отличие 3-го варианта формата оператора от предыдущих состоит в том, что в случае, когда условие принимает значение“истина”, выполняются действия <оператор1>, иначе действия <оператор2>. После этого управление также передается оператору с последующим номером строки.

 
 


Операторы цикла

 

Циклические программы (участки программ) можно записывать, используя операторы IF и GOТО. Но для упрощения процедуры составления циклов и с целью их четкого выделения в программе могут быть использованы специальные операторы FOR … NEXT, WHILE … WEND, DO …LOOP.

Оператор FOR, называемый заголовком цикла, всегда предшествует повторяющейся группе операторов, составляющих так называемое тело цикла.

Формат оператора FOR:

<номер строки> FOR <имя переменной> = <выражение 1> ТО <выражение 2> [ SТЕР <выражение 3>]

Имя переменной в операторе FOR называют управляющей переменной или параметром цикла, а <выражение 1>, <выражение 2> и <выражение 3> представляют собой начальное значение параметра цикла, конечное значение параметра цикла и шаг изменения параметра цикла соответственно. Если " STEP <выражение 3> " опущено, то шаг изменения параметра цикла полагается равным 1.

Во время выполнения оператора FOR вычисляются или задаются параметры цикла (начальное и конечное значения управляющей переменной, величина шага изменения) и присваивается начальное значение управляющей переменной. Тело цикла начинается вслед за оператором FOR и завершается оператором NEXT, который имеет следующий формат:

<номер строки> NEXT [имя переменной]

Здесь [имя переменной] соответствует управляющей переменной в заголовке цикла. При выполнении оператора NEXT производится изменение значения управляющей переменной на величину шага и проверка условия окончания цикла. Цикл повторяется до тех пор, пока значение управляющей переменной не станет строго больше (при положительном шаге изменения) или строго меньше (при отрицательное шаге изменения) конечного значения. Можно выйти из цикла и в том случае, если параметр цикла не достигает конечного значения. Для этого используют операторы условного и безусловного перехода.

При использовании вложенных циклов (циклов в цикле) требуется, чтобы область действия внутреннего цикла полностью находилась в области действия внешнего цикла.

Операторы FOR и NEXTне могут выполняться в операторе IF.

С помощью конструкции WHILE … WEND можно реализовывать выполнение ряда операторов до тех пор, пока выполняется определённое условие.

WHILE Условие

[ Оператор 1]

[ … ]

[ Оператор N]

WEND

До тех пор, пока соблюдается условие, последовательно выполняются операторы от 1 до N. Если условие цикла больше не соблюдается, то выполнение программы продолжается, начиная с оператора, следующего за WEND. Если условие цикла WHILE не выполняется с самого начала, то управление сразу же передаётся оператору, расположенному за WEND.

ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ

Кроме стандартных функций, предназначенных для вычисления математических выражений, в языке Basic допускается употребление функций, определяемых пользователем. Если в программе необходимо несколько раз вычислить одно и то же выражение при различных значениях некоторого параметра, то целесообразно создать "свою" функцию. Описать функцию можно с помощью определяющего оператора DEF, формат которого следующий:

<номер строки> DEF FNА (<аргумент>) = <выражение>

где FN А - имя функции, состоящее из обязательных букв FN и имени произвольной переменной А.

Пример:

10 DEF FNA(X) =SIN(X)^2 -COS(X)^2

Аргумент (Х), употребляемый в описании функции (в операторе DEF), называют формальным параметром функции. Выражение, записываемое в правой части определения функции, может быть произвольным арифметическим выражением, зависящим, как правило, от формального параметра. Однако оно не обязательно должно зависеть от аргумента и может содержать также другие переменные, определенные в программе, которые не являются аргументом, например:

30 DEF FNА(Х) = Х*В + TAN(C/X)

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

10 DEF FNA(Х) = Х^2 + SIN(Х)

20 А = FNA(2.5) + 2*FNA(3)

Формальный параметр Х вначале получает значение 2.5, а затем 3. Фактические параметры могут быть любыми арифметическими выражениями. При обращении к функции сначала вычисляется значение фактического параметра, далее он подставляется вместо формального параметра в описание функции, и вычисляется значение выражения, записанного в правой части определения функции. Это значение является значением указателя функции при данных фактических параметрах.

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

Пример:

Пусть X и Y - натуральные числа. R - остаток от деления X на Y. Выразить R(X,Y), где R функция от X и Y.

В этом примере R(X,Y) - функция двух аргументов:

R = X - INT(X/Y) * Y - остаток от деления X на Y.

Функция должна быть определена следующим образом:

DEF FNR(X,Y) = X – Y * INT(X/Y)

 

ПОДПРОГРАММЫ

Операторы GOSUB и RETURN

Последовательность повторяющихся в программе операторов может быть оформлена в виде подпрограммы. Подпрограмма на языке БЕЙСИК - это часть программы, которая реализует операции, выполнение которых требуется в нескольких точках программы.

Для перехода к подпрограмме используется оператор, имеющий следующий формат:

<номер строки> GOSUB <номер строки подпрограммы>

где <номер строки подпрограммы> - номер строки подпрограммы, содержащий оператор подпрограммы, с которого начинается ее выполнение (точка входа).

При выполнении оператора GOSUB управление передается в точку входа в подпрограмму.

Первая строка подпрограммы может начинаться оператором комментария (оператором REM) или любым выполняемым оператором.

Подпрограмма обрабатывается интерпретатором до тех пор, пока не встретится оператор RETURN, формат которого следующий:

<номер строки> RETURN.

Оператор RETURNобуславливаетвозвратуправления оператору, следующемузаоператором GOSUB.

БЕЙСИК допускает использование в одной программе нескольких подпрограмм. Подпрограммы могут быть вложенными, то есть одна подпрограмма может осуществить вызов другой подпрограммы. Если при выполнении подпрограммы встречается оператор RETURN, то он вызывает передачу управления тому оператору, который следует после оператора GOSUB, произведшего обращение к этой подпрограмме (в точку возврата).

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

Оператор ON - GOSUB

Оператор ON - GOSUB используется (аналогично оператору ON - GOTO) для условной передачи управления одной из нескольких подпрограмм или к одной из нескольких входных точек одной (или нескольких) подпрограмм. Формат оператора:

<номер строки> ON <арифметическое выражение> GOSUB <список номеров строк подпрограммы>

Во время выполнения оператора ON - GOSUB вычисляется значение арифметического выражения и целая часть этого значения (n) используется в качестве указателя на один из перечисленных номеров строк в списке. В результате происходит передача управления подпрограмме, которая начинается номером строки, находящимся в списке на n - ом месте. Оператор RETURN возвращает управление оператору, следующему за оператором ON - GOSUB.

 

ОПЕРАТОРЫ ВВОДА - ВЫВОДА



Поделиться:


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

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