КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Операторы языкаОператоры языка описывают алгоритмические действия, которые необходимо выполнить для решения задачи. Программа представляет собой последовательность таких операторов. Каждый оператор помещается в строке, длина которой не превышает 255 байт. Все операторы можно разбить на выполняемые и невыполняемые. Выполняемые операторы служат для выполнения определенных операций или изменения порядка выполнения операторов в программе. К невыполняемым операторам относятся: оператор конца программы END, объявления массивов DIM, комментария RЕМ. Выполнимые операторы могут быть вычислительными и невычислительными. В QBASIC используются блочные операторы, состоящие из групп операторов. Оператор присваивания. Спомощью оператора присваивания (= или LET) какой-либо переменной присваивается значение, например: F%= 5 ST$=”QWERTY “ LET 1=(A+B+C)/C Let может быть опущен. Оператор безусловного перехода СОТО.Оператор безусловного перехода нарушает нормальное выполнение программы и переводит его строку с указанной меткой. Современный стиль программирования не рекомендует использование этого оператора, т. к. он затрудняет чтение и отладку. Блочные операторы.К блочным операторам относятся: • условный оператор IF/THEN/ELSE/END IF; • оператор выбора SELECT CASE; • оператор цикла FOR... TO; оператор цикла DO LOOP [{WHILE I UNTIL}]; • операторы цикла DO WHILE/UNTIL LOOP и WHILE WEND; • процедурные блоки SUB и FUNCTION. Условный оператор IF/THEN/ELSE/END IF. Условный оператор позволяет исполнять те или иные действия в зависимости от выполнения логического условия. Условный оператор может иметь вид: IF F THEN <оператор 1>:<оператор 2>:<оператор М> или IF F THEN <оператор 1> <оператор 2> … <оператор М> ENDIF
IF F THEN <оп. 1>:..:<оп.. M>ELSE<оператор Х>:...<оператор У> или IF F THEN <оператор 1> <оператор 2> … <оператор М> ELSE <оператор Х> … <оператор У> ENDIF В первом случае, при истинности логического условия F, выполняется последовательность операторов 1...М. Ели условие ложно, ничто не выполняется. Во втором случае, при истинности логического условия F, также выполняется последовательность операторов 1...М, в противном случае - последовательность операторов Х...У. Например, чтобы определить, является ли введенные 3 числа А, В, С углами треугольника, нужно записать: If (А > 0) AND (В > 0) AND (С > О) AND (А + В + С = 180) THEN PRINT "ЯВЛЯЮТСЯ УГЛАМИ ТРЕУГОЛЬНИКА" ELSE PRINT "HE ЯВЛЯЮТСЯ УГЛАМИ ТРЕУГОЛЬНИКА" ENDIF Оператор выбора SELECT CASE.С помощью оператора CASE можно выбрать любой вариант из допустимых значений переменной. Он имеет следующую структуру: SELECT CASE параметр CASE значение параметра I <оператор 1> CASE значение параметра 2 <оператор 2>; Р1: <оператор N> CASE значение параметра X <оператор Х> CASE ELSE <оператор L> END SELECT Если при выборе альтернативы необходимо выполнение нескольких операторов, то нужно записать их в одной строке через двоеточие, либо каждый в своей строке. Например, чтобы определить, введена ли как символьная переменная цифра, можно записать: SELECT CASE A$ CASE “0” ТО “9” PRINT "ЦИФРА" CASE ELSE PRINT "HE ЦИФРА" END SELECT Конструкция CASE ELSE не обязательна и может, быть опушена. Оператор цикла FOR... TO.Оператор безусловного цикла имеет следующую структуру: FOR X=A ТО В STEP С <Тело цикла> NEXT X где X - переменная цикла, которая должна быть числом; А - начальное значение переменной цикла; В - конечное значение переменной цикла; C - шаг, изменения переменной цикла. Цикл выполняется заданное число раз. Оператор цикла DO LOOP [{WHILE | UNTIL}]. Этот оператор называется циклом с постусловием, т. к. проверка условия осуществляется после каждого выполнения тела цикла, DO <операторы> LOOP [{WHILE | UNTIL} условие] Цикл выполняется до тех пор, пока условие не станет истинным. Например, проверка на то, чтобы задать длину последовательности, осуществляется следующим образом: DO PRINT "ВВЕДИТЕ ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N = " INPUT N% LOOP UNTIL N% >0 Цикл выполняется до тех пор, пока пользователь не введет положительное число. При использовании UNTIL цикл выполняется до тех пор, пока не выполнится условие, а при использовании WHILE цикл выполняется только при выполнении условия и заканчивается, если условие нарушается. Операторы цикла DO WHILE/UNTIL LOOP и WHILE WEND. Эти циклы называются циклами с предусловием, т. к. проверка проводится до начала очередной операции: О [{WHILE UNTIL}condition] <тело цикла> LOOP или WHILE <условие> <тело цикла> WEND Цикл WHILE выполняется, пока условие истинно. Как только условие нарушается, выполнение цикла завершается. Если используется UNTIL, то выполнение происходит до тех пор, пока условие не станет истинным. Например, та же проверка вводимой длины последовательности может быть задана как INPUT N% WHILE N% <=0 PRINT "ВВЕДИТЕ ДЛИНУ ПОСЛЕДОВАТЕЛЬНОСТИ N = " INPUT N% WEND Обратите внимание, что до первого входа цикл переменной N% уже должно быть присвоено какое-либо значение! Процедурные блоки SUB и FUNCTION. В QBASIC можно объявлять и использовать подпрограммы. При вызове подпрограммы (функции или процедуры) выполнение основной программы приостанавливается, и управление передается в подпрограмму. По окончании работы подпрограммы управление возвращается основной программе. Основное, не формальное, различие между процедурой и функцией состоит в том, что процедура только выполняет какую-либо законченную последовательность действий, не возвращая результата работы в основную программу, а функция и выполняет действия, и возвращает результат. Например, вызов функции М = MIN (X, Y) вернет в основную программу значение наименьшего из двух чисел, и это значение будет присвоено переменной М. Функция может быть объявлена следующим образом: FUNCTION имя функции [(список параметров)] [STATIC] <операторы> имя функции = выражение <операторы> END FUNCTION где имя функции - имя функции и тип данных, которые она возвращает (%, &, !, # or $); список параметров - список переменных, с помощью которых функция вызывается с указанием типов в этих переменных: переменная [()] [AS тип ] [, переменная[0] [AS тип]]... тип (INTEGER, LONG, SINGLE, DOUBLE, STRING и т. д.). STATIC - объявляет, что локальные переменные данной функции сохраняются между вызовами самой функции. Можно объявлять функции и по-другому. Главное, чтобы вызовы функции в программе следовали после ее объявления. DEF FN имя функции [(список параметров)] <операторы> FNимя функции = выражение <операторы> [EXIT DEF] <операторы> END DEF Считается, что второй способ объявления функций более традиционен. Процедура объявляется следующим образом: SUB имя подпрограммы [(список параметров)] [STATIC] <операторы> END SUB.
|