- •Оглавление
- •2.6. Модульное программирование
- •2.8. Численные методы анализа
- •2.1. Элементы языка
- •Мантисса e порядок
- •2.2. Операторы языка
- •Input [приглашение ;/,] список_вводимых_переменных
- •Операторы управления
- •If логическое_условие then оператор
- •If логическое_условие goto метка_оператора
- •If логическое_условие then оператор else оператор
- •I f логическое_условие then
- •2.3. Организация ветвлений
- •Input “Укажите х”, X
- •15 ? “Неверно”
- •2.4. Организация циклов
- •Программа к задаче 9
- •Input "Введите числа X и y", X, y
- •2.5. Работа с массивами
- •Input "Введите число вкладчиков и процент ",n,p
- •2.6. Модульное программирование
- •2.7. ОбРаботка Символьных данных
- •Пример. ?instr(”Саша”,”а”),instr(3,”Саша”,”а”) Результат: 2,4
- •2.8. Численные методы анализа
- •Input “Введите левую и правую границы a и в ”, a, b,
- •Input “Введите допустимую погрешность e ”, e
- •2.9. Выявление нажатия клавиш
- •2.10. Работа с графикой
- •2.11. Работа с дисковыми файлами
- •Тесты по курсу
- •Литература
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 с иным радиусом, придется изменить оператор непосредственно в программе. Это очень неудобно, поскольку пользователь программы обычно не имеет квалификации, а часто и возможности изменять что-нибудь в программе. Необходимо сделать так, чтобы результаты вычислений зависели не от текста программы, а только от данных. Для этого имеется оператор чтения данных вида: