- •Общая характеристика языка
- •Элементы языка qbasic
- •Ключевые слова
- •Синтаксические соглашения
- •Комментарии
- •Арифметические выражения.
- •Строковые выражения
- •Типы данных
- •Стандартные типы данных.
- •Константы и переменные. Константы.
- •Переменные.
- •Присвоение значений переменным.
- •Ввод/вывод.
- •Вывод на экран.
- •Очистка экрана.
- •Ввод с клавиатуры.
- •Input "Введите, пожалуйста, высоту :"; height!
- •Input "Введите, пожалуйста, ширину :"; breadth!
- •Input "Введите, пожалуйста, длину :"; length!
- •Форматированный вывод на экран.
- •Позиционирование курсора.
- •Вывод пробелов.
- •Функция табуляции.
- •Остановка программы.
- •Управляющие операторы.
- •Оператор безусловного перехода.
- •Условия .
- •Оператор условного перехода в программе.
- •Цикл while.
- •Цикл do.
- •Оператор выбора select case.
- •Input "Задать число "; zahl%
- •Input "Ввести число "; zahl%
- •Логические операции.
- •Input "Ввести число 1, zahl1%
- •Input "Ввести число 2", zahl2%
- •Логическое и (and) .
- •Логическое или (or) .
- •Input "Введите число 1", zahl1%
- •Input "Введите число 2", zahl2%
- •Логическое отрицание (not).
- •Input "Введите число " zahl%
- •Обработка строк
- •Определение длины строки.
- •Получение символов кода ascii.
- •Input "Ввести ascii-значение ", ascii%
- •Функция вычисления экспоненты.
- •Input "Задать аргумент функции ",х!
- •Вычисление натурального логарифма.
- •Input "Задать аргумент функции ",х!
- •Преобразование к типу integer.
- •Input "Задать число ";х!
- •Выделение целой части числа.
- •Извлечение квадратного корня.
- •Определение знака числа (функция сигнатуры).
- •Преобразование числа в строку.
- •Массивы в qbasic.
- •Функции и процедуры, определенные пользователем. Собственные функции.
- •Input "Ввести аргумент: ", argument!
- •Input "Ввести степень корня: ", wurz%
- •Собственные процедуры.
- •Установка цветов экрана.
- •Работа с файлами. Введение и основные функции.
- •Input "Фамилия : ", nachnameS
- •Input "Заглавие : ", stichwortS
- •Работа с адресами в справочнике.
- •Обработка ошибок.
- •Input "Введите, пожалуйста, число ",а!
- •Input "Введите, пожалуйста, число ",а1
- •Графические возможности Basica
- •Переход в графический режим экрана
Собственные процедуры.
В процедурах, как и в функциях, под одним именем процедуры объединяются логически самостоятельные фрагменты программы. Для начала рассмотрим пример:
'Программа, иллюстрирующая понятие процедуры PRINT "A"
PRINT "В"
PRINT "B1"
PRINT "B2"
PRINT "С"
PRINT "В"
PRINT "B1"
PRINT "B2"
PRINT "erf"
PRINT "B"
PRINT "B1"
PRINT "B2"
PRINT "ugh"
'Конец программы
Программа носит чисто иллюстративный характер, однако полезна для внесения ясности в представление о процедурах. Можно заметить, что некоторые фрагменты программы часто повторяются.
Такие повторения необоснованно удлиняют программу и затрудняют работу с ней. Процедуры позволяют объединять под одним именем повторяющиеся фрагменты программы. Процедуру, как и функцию, можно вызвать из главной программы. Задайте в программе команду "SUB beispiel" и получите пустой шаблон процедуры:
SUB beispiel
END SUB
Внесите туда операторы, которые повторяются в главной программе.
SUB beispiel
PRINT "В"
PRINT "B1"
PRINT "B2"
END SUB
Теперь достаточно из главной программы вызвать процедуру там, где это требуется. Таким образом, получаем новый вариант программы в таком виде:
beispiel
PRINT "C"
beispiel
PRINT "erf"
beispiel
PRINT "ugh"
Другие операторы.
Обработка даты компьютера.
С помощью функции DATE$ можно определить текущую системную дату или изменить ее.
Пример:
DIM datS
PRINT DATE$
dat$ = DATE$
DATE$="17-02-1992"
PRINT "Предшествующая дата: "; datS:
'последующая дата: ";DATES
Обработка компьютерного времени.
С помощью функции ТIМЕ$ можно определить текущее системное время или изменить его.
Пример:
DIMtlmS
PRINT TIME$
Tim$=TIME$
TIME$-"12:12:00""
PRINT "Предшествующее время:"; tlm$;последующее время: ";TIME$
Обмен значениями.
Оператор SWAP позволяет выполнить обмен значениями между двумя переменными одного типа.
Пример:
'Программа для демонстрации SWAP
DIMa%,b%,aS,bS
а%=1
b%=4
a$= "А"
b$="B"
SWAPa%,b%
SWAP aS, bS
PRINT "a%-"; a%, "b%-"; b%, "aS-"; aS, "bS"; bS
Опрос клавиатуры.
С помощью функции INKEY$ во время выполнения программы можно узнать, какая клавиша была только что нажата. Эта функция возвращает строковое значение, которое может быть пустой строкой (") либо состоять из одного или двух символов. Если значение функции — пустая строка, то это означает, что никакие клавиши не нажимались; если возвращается один символ, то это символ, только что набранный на клавиатуре.
Пример 1:
'INKEY$ для программных прерываний
CLS
PRINT "Для продолжения нажать любую клавишу"
DO WHILE INKEY$-""
LOOP
PRINT "Спасибо!"
'Конец программы
Пример 2: Функция INKEY$ интересна тем, что она может опрашивать специальные и функциональные клавиши. Коды клавиатуры можно узнать либо в справочной системе QBASIC, либо использовать следующую программу:
'Коды клавиш
DIM taste$
DO
CLS
PRINT "Нажать любую клавишу"
DO
TASTE$=INKEY$
LOOPWHILEtaste$=""
PRINT "Код клавиши: "; taste$
PRINT "Длина кода клавиши: "; LEN(taste$)
PRINT "Опросить еще одну клавишу? (Y)"
DO
Taste$-INKEY$
LOOP WHILEtaste$-"" LOOP UNTIL UCASTS(taste$)< > "Y"
Из этого примера видно, что специальные клавиши отличаются тем, что их коды состоят из двух символов.