Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Попов_1.doc
Скачиваний:
6
Добавлен:
25.04.2019
Размер:
668.16 Кб
Скачать

2.2. Операторы языка

Оператор является основной единицей программы и выполняет какое-то элементарное действие. Во многих версиях Бейсика операторы в программе нумеруются. В QBasic, однако, сплошная нумерация не обязательна. При задании форматов операторов будем символами [ ] будем ограни­чивать необязательную часть оператора.

ОПЕРАТОР ПРИСВАИВАНИЯ. Формат оператора:

переменная=выражение

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

Примеры операторов: Z=2, А=3.5+EXP(8), S=X^4+Y/2.

Присваивание не является равенством в обычном смысле. Справа и слева от знака “=” можно указывать одну и ту же переменную, например: М=М+2, X=X/3. Эти выражения следует понимать как реализацию так называемых рекуррентных соотношений, то есть новое содержимое ячейки М будет равно старому, увеличенному на 2 и новое Х будет равно старому, деленному на 3. По обе стороны равенства могут стоять переменные разных типов. Но если слева от знака равенства – целочисленная переменная, а справа получено вещественное число, то его дробная часть будет отброшена. Например, если А= 2, то после вычислений в операторе М%=А*0.2+0.5 получим не М%=0.9, а М%=0.

Часто возникает необходимость в перестановке значений переменных. Так, если нужно поменять значения Х и Y, следует записать три оператора: A=X, X=Y, Y=A. Здесь понадобилась дополнительная “тран­зитная” перемен­ная А, в которой временно запоминается значение Х.

Оператор

SWAP переменная1, переменная2

позволяет выполнить обмен значений сразу.

Например: SWAP X,Y

ОПЕРАТОРЫ МАССОВОГО ПРИСВАИВАНИЯ

Следующая пара операторов позволяет в компактной форме осуществить множественные присваивания переменным

DATA список констант

READ список переменных

Здесь оператор DATA содержит перечень значений, а READ – имена переменных, которые последовательно получат эти значения. Например, операторы

DATA 125.6, –12, Петров

READ x, y%, name$

эквивалентны следующим: x=125.6, y%=–12, name$=“Петров”.

Использование этих операторов экономит время разработчика и сокращает размер программы.

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

ОПЕРАТОР ВЫВОДА. Для просмотра и анализа результатов вычислений необходимо вывести их на внешний носитель – бумагу или экран дисплея. Для этой цели используется следующий оператор.

PRINT [список,_выводимых_переменных]

или ? [список,_ выводимых_переменных]

Здесь вопросительный знак может заменять слово PRINT, что экономит время ввода программы. Например, оператор:

PRINT a, m читается так – “Печатать переменные А, М”.

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

В оператор могут включаться не только переменные, но константы и целые выражения. Например если Х=12, а Y=100, то применение оператора

? “СУММА=” x+y

даст следующий результат: СУММА=112

При выводе данных имеет значение, какой разделительный знак использован для перечислении переменных. Если используется точка с запятой или пробел, следующая переменная будет выведена непосредственно за предыдущей. Если запятая – следующая переменная будет выведена с начала следующей зоны вывода. Бейсик разделяет каждую строку вывода на зоны по 15 символов. Это означает, что первое выводимое значение займет колонки с 1 по 15, второе – с 16 по 30, третье с 31 по 45 и т.д.

Если необходимо управлять положением и разрядностью выводимых данных, следует использовать оператор

PRINT USING шаблон; список,_выводимых_переменных

Здесь шаблон содержит символы, определяющие эти параметры. Символ “#” в шаблоне указывает на то, что в этой позиции будет выведена цифра. Символ “.” определяет место десятичной точки. Например, положим, что Х=2539.23745. Оператор

PRINT USING “######.##”; x

выведет число 2539.24, которому предшествуют два пробела поскольку под целую часть числа отводиться 6 позиций. Дробная часть округляется до двух разрядов.

Перечисленные операторы предназначены для вывода данных на экран. При необходимости вывода на принтер используются следующие их модификации

LPRINT список, выводимых переменных

LPRINT USING шаблон; список,_выводимых_переменных

Управлять местоположением выводимых данных можно с помощью следующих функций

TAB(столбец)

SPC(число_пробелов)

Здесь: столбец – номер столбца, начиная с которого осуществляется вывод переменной, число пробелов – количество пробелов, пропускаемых в текущей строке от вывода предыдущей переменной.

Пример: PRINT TAB(10); x; TAB(30); y; SPC(8); z$

Эти функции могут применяться также и с операторами PRINT, LPRINT.

Для позиционирования экранного вывода в соответствующую строку и столбец экрана можно использовать оператор

LOCATE номер_строки, номер_столбца

Пример: LOCATE 8,25

PRINT x

здесь переменная Х будет выведена в позицию 8, 25 независимо от позиции предыдущего вывода.

ОПЕРАТОР ВВОДА. Исходные данные, обрабатываемые программой, можно задавать оператором присваивания. Пусть нужно вычислить площадь круга S=2ПR2. Если задать непосредственно в программе значение радиуса окружности, например оператором R=5, то программа будет вычислять площадь только такой окружности. Если нужно вычислить значение S с иным радиусом, придется изменить оператор непосредственно в программе. Это очень неудобно, поскольку пользователь программы обычно не имеет квалификации, а часто и возможности изменять что-нибудь в программе. Необходимо сделать так, чтобы результаты вычислений зависели не от текста программы, а только от данных. Для этого имеется оператор чтения данных вида: