Язык Qbasic. Краткий справочник
Язык Qbasic. Краткий справочник
Здесь мне хочется коротко представить наиболее часто используемые операторы Бейсика, снабдив их краткими комментариями (табл. П1—П10). Полная справка по языку имеется в его оболочке, где вы легко можете найти полные сведения о том или ином операторе с наглядными примерами.
Коды ASCII
Коды ASCII
Стандартные и расширенные ASCII-коды опубликованы уже в сотнях книг, посвяшенных программированию. Более того, вы уже можете написать программу, выводящую их на экран. К тому же эти коды есть в справочной системе нашего Бейсика. Но все равно хочется почему-то иметь их перед глазами.
Недолго думая, я взял их из вышеупомянутой системы при помощи клавиши <Print Screen>, и вот — пользуйтесь, кому интересно (Рисунок П1, П2).
П1. Стандартные коды (0—127)
Рисунок П1. Стандартные коды (0—127)
П2. Расширенные коды (128—255)
Рисунок П2. Расширенные коды (128—255)
Сообщения об ошибках и их коды
Сообщения об ошибках и их коды
Коды сообщений об ошибках приведены в табл. ПИ. Для наиболее распространенных ошибок даются комментарии.
П1. Числовые функции
Таблица П1. Числовые функции
Функция | Описание |
ABS | Возвращает абсолютное значение (модуль) аргумента |
ATN | Арктангенс (в радианах) |
CDBL | Переводит числовое выражение в значение с двойной точностью |
CINT | Округление |
CLNG | Округление числового выражения до длинного (4 байта) целого значения |
COS | Косинус |
CSNG | Переводит числовое выражение в значение с одинарной точностью |
ЕХР | Экспонента ех |
FIX | Округление выражения с плавающей запятой до его целой части |
INT | Возвращает наибольшее целое, меньшее либо равное числовому выражению |
LOG | Натуральный логарифм числового выражения |
RND | Случайное число одинарной точности между 0 и 1 |
SCN | Возвращает значения знака числового выражения (1, если выражение положительное; 0, если равно 0 и —1, если отрицательно) |
SIN | Синус |
SQR | Корень квадратный |
TAN | Тангенс |
П2. Функции графики и экрана
Таблица П2. Функции графики и экрана
Функция | Описание |
CIRCLE | Рисунок ание окружностей и эллипсов |
CLS | Очистка текстовой и графической областей экрана |
COLOR | Установка цветов экрана |
CSRLIN | Возвращает текущую позицию строки курсора |
DRAW | Рисунок ание объектов при помощи набора специальных команд |
GET | Сохранение в памяти графической прямоугольной области экрана |
LINE | Рисунок ание отрезка прямой линии, прямоугольников со сторонами, параллельными экрану |
LOCATE | Перемещение курсора в указанную позицию |
PAINT | Закрашивание замкнутого контура |
PALETTE | Изменение установок атрибутов цвета |
PALETTE USING | Изменение атрибутов цвета пользователем |
PCOPY | Копирование одной страницы видеопамяти в другую |
PRESET | Рисунок ание точки цветом фона |
Вывод данных на экран или в файл | |
PRINT USING | Осуществляет форматированный вывод данных на экран или в файл |
PSET | Рисование точки |
PUT | Вывод на экран образа, сохраненного оператором GET |
SCREEN | Установка режима и характеристик экрана |
VIEW | Определяет размер и положение области просмотра, в которую может быть выведена графическая информация |
VIEW PRINT | Устанавливает на экране границы области просмотра текста |
WIDTH | Изменение числа строк и столбцов, видимых на экране |
WINDOW | Определяет логическое пространство для текущей графической области просмотра |
WRITE | Запись данных на экран или в последовательный файл |
П4. Операторы и функции для работы с файлами
Таблица П4. Операторы и функции для работы с файлами
Оператор, функция | Описание |
CLOSE | Закрывает один или несколько файлов или устройств |
FIELD | Отводит место под переменные в буфере файлов прямого доступа |
FILEATTR | Возвращает информацию об открытом файле |
GET | Считывает из файла в буфер прямого доступа или в переменную |
INPUT # | Считывает данные из файла |
IOCTL | Посылает управляющую строку драйверу устройства |
LINE INPUT # | Считывает строку до 255 символов с клавиатуры или из файла |
LOCK | Ограничивает или закрывает доступ к файлу при работе в сети |
OPEN | Открывает файл или устройство |
PRINT # | Записывает данные в файл |
PRINT # USING | Записывает отформатированные данные в файл |
PUT | Записывает содержимое переменной или буфера прямого доступа в файл |
RESET | Закрывает все открытые файлы и устройства |
SEEK | Устанавливает позицию файла для последующей записи или считывания |
UNLOCK | Снимает ограничения, наложенные последним оператором LOCK |
WRITE # | Записывает данные в последовательный файл |
П5 . Переменные
Таблица П5 . Переменные
Конструкция | Описание |
CLEAR | Закрывает все файлы, освобождает буферы файлов, очищает все общие переменные, устанавливает числовые переменные и массивы в ноль, устанавливает строковые переменные в ноль и инициализирует стек. Кроме того, CLEAR может изменять размер стека |
CONST | Описывает одну или несколько символьных переменных |
DATA | Указывает значения данных для последующего считывания оператором READ |
INPUT | Считывает входные данные с клавиатуры или из файла |
LET | Присваивает значение выражения переменной |
RANDOMIZE | Инициализирует генератор случайных чисел |
READ | Считывает данные, указанные в операторе DATA |
RESTORE | Восстанавливает считанные значения в операторе DATA |
SWAP | Обменивает значения двух переменных |
П6. Массивы
Таблица П6. Массивы
Конструкция | Описание |
DIM | Оператор объявления массива |
ERASE | Для статических массивов каждому элементу присваивается ноль. Для строкового — определяются строки нулевой длины. Для динамического — освобождает память, используемую массивом |
OPTION BASE | Устанавливает нижнюю границу индекса массива |
REDIM | Описывает или изменяет размер динамического массива |
П7. Циклы
Таблица П7. Циклы
Оператор | Описание |
DO ... LOOP | Повторяет блок операторов, пока условие верно, или пока оно не станет верным |
END | Заканчивает программу, процедуру или блок |
FOR ... NEXT | Цикл с параметром, с заранее известным числом повторений |
WHILE ... WEND | Выполняет блок операторов, пока указанное условие верно |
П8. Подпрограммы и функции
Таблица П8. Подпрограммы и функции
Оператор | Описание |
CALL | Передает управление в процедуру типа SUB |
DECLARE | Описывает процедуру типа FUNCTION или SUB |
DEF FN | Определяет функцию |
FUNCTION | Определяет процедуру FUNCTION |
GOSUB | Переходит в подпрограмму и возвращается из нее |
ON GOSUB | Выполняет переход к одной из нескольких подпрограмм в зависимости от выражения |
RETURN | Возвращает из подпрограммы в основную программу |
SUB | Определяет процедуру SUB |
П9. Звуки и музыка
Таблица П9. Звуки и музыка
Оператор | Описание |
BEEP | Генерирует звуковой сигнал через встроенный динамик |
ON PLAY GOSUB | Обращение к подпрограмме, когда число нот в музыкальном буфере меньше определенного числа |
PLAY | Воспроизводит музыкальные ноты |
SOUND | Генерирует звук через встроенный динамик |
П10. Строковые функции
Таблица П10. Строковые функции
Функция | Описание |
CHR$ | Возвращает ASCII-код первого символа в строковом выражении |
| DATE? | Возвращает текущую системную дату |
INSTR | Возвращает позицию первого вхождения подстроки в строку |
LCASES | Переводит все символы строковой переменной в строчные буквы |
LEET$ | Возвращает указанное число символов слева строки |
LEN | Возвращает длину строковой переменной в символах |
MID$ | Возвращает указанное число символов из середины строковой переменной, начиная с указанной позиции |
RIGHT$ | Возвращает указанное число символов справа строки |
SPACE$ | Возвращает строку пробелов |
STRING$ | Возвращает строку указанных символов |
UCASE$ | Переводит все символы строковой переменной в прописные буквы |
П11. Сообщения об ошибках
Таблица П11. Сообщения об ошибках
Код | Сообщение об ошибке |
1 | NEXT без FOR Для окончания цикла NEXT нет соответствующего заголовка FOR. Количество FOR и NEXT должно совпадать |
2 | Синтаксическая ошибка Оператор содержит грамматическую ошибку в написании ключевого слова или ошибку в пунктуации, либо есть непарные скобки или другие нарушения правил синтаксиса языка Бейсик |
3 | RETURN без GOSUB Для оператора возврата из подпрограммы RETURN нет соответствующего обращения к подпрограмме GOSUB |
4 | Нет данных В операторе DATA нет данных. Посчитайте количество данных в операторе DATA и количество считываний из него оператором READ. Посмотрите внимательно, не поставили ли вы при перечислении данных в каком-нибудь месте точку вместо запятой |
5 | Неверный вызов функции Возникает чаще всего при попытке извлечения квадратного корня из отрицательного числа или применения графических операторов без включения графического режима SCREEN. Вообще же подобное сообщение возникает при попытке вызова функции с недопустимым параметром |
6 | Переполнение Числовая переменная или строковая константа выходят за пределы допустимого диапазона. Проверьте и измените значение в случае необходимости |
7 | Не хватает памяти |
8 | Метка не определена Оператор GOTO или GOSUB пытаются осуществить переход на несуществующую метку |
9 | Индекс вне режима Сообщение возникает при работе "с массивами, когда индекс какого-либо элемента массива превышает его объявленный в операторе DIM размер, а также в том случае, когда массив занимает в памяти объем более 64 Кбайт |
10 | Повторяющееся определение |
11 | Деление на ноль Выражение в знаменателе после подстановки соответствующих переменных и вычислений, видимо, обращается в ноль |
12 | Ошибка в режиме управления |
13 | Ошибка ввода |
14 | В строке нет места |
16 | Слишком сложная строковая формула |
17 | Невозможно продолжить |
18 | Функция не определена Возможно, используемая функция не определена оператором DEF FN, или допущена ошибка при определении или вызове функции |
19 | Нет RESUME |
20 | RESUME без ошибки |
24 | Устройство в тайм-ауте |
25 | Ошибка устройства |
26 | FOR без NEXT Для заголовка цикла FOR нет соответствующего окончания цикла NEXT. Количество FOR и NEXT должно совпадать |
21 | Нет бумаги |
29 | WHILE без WEND Для ключевого слова WHILE нет соответствующего слова WEND |
30 | WEND без WHILE Для ключевого слова WEND нет соответствующего слова WHILE |
33 | Повторяющаяся метка При расстановке меток допущен повтор одной и той же метки в разных местах программы |
35 | Подпрограмма не определена Сообщение возникает при попытке обращения к несуществующей подпрограмме |
37 | Ошибка счетчика аргументов |
38 | Массив не определен Попытка работать с элементами массива, который не был объявлен оператором DIM |
40 | Необходима переменная |
50 | Переполнение FIELD |
51 | Внутренняя ошибка Чаще всего неверная работа компьютера, реже — смысловые ошибки программы, не сразу различимые на первый взгляд. Часто требуется ручная прокрутка программы |
52 | Плохое имя файла/плохой номер Имя файла не соответствует требованиям DOS |
53 | Файл не найден При попытке обращения к файлу указано неправильное его имя или путь к нему |
54 | Плохой режим файла |
55 | Файл уже открыт Попытка повторного открытия файла или удаления открытого файла |
56 | Оператор FIELD активен |
57 | Ошибка в/вв устройства |
Ошибка устройства ввода/вывода, с которой не справляется DOS. Попробуйте посмотреть, все ли в порядке с аппаратной частью, т. е. внешними устройствами компьютера | |
58 | Файл уже существует Попытка сохранить файл под именем уже существующего на диске файла |
59 | Неверная длина записи |
61 | Диск заполнен Диск, на который производится запись файла, не имеет достаточно места для этого. Надо освободить дисковое пространство, удалив что-нибудь менее важное |
62 | Ошибка: введен конец файла |
63 | Неверный номер записи |
64 | Плохое имя файла Имя файла не соответствует требованиям DOS |
67 | Слишком много файлов |
68 | Устройство недоступно В дисководе нет диска или он испорчен |
69 | Переполнение буфера коммуникации Попытка копирования в буфер слишком большого обьема информации |
70 | Нет разрешения |
71 | Ошибка формата диска В дисководе нет диска или он испорчен |
72 | Ошибка диска В дисководе нет диска или он испорчен |
73 | Недоступная возможность |
74 | Переименование через диски |
75 | Ошибка доступа к пути/файлу |
76 | Путь не найден При попытке обращения к файлу указано неправильное его имя или путь к нему |
ПЗ. Операторы выбора и перехода
Таблица ПЗ. Операторы выбора и перехода
Оператор | Описание |
GOTO | Безусловный переход на метку |
IF ... THEN ... ELSE | Переход в зависимости от истинности или ложности проверяемого условия |
SELECT CASE | Переход в зависимости от значения выражения |