Оператор вызова BASIC-процедур - CALL
Операторы работы с библиотеками пользователя.
Оператор объявления BASIC-процедур - DECLARE (BASIC)
Назначение: Объявляет ссылки к BASIC-процедурам и вызывает проверку типов аргументов.
Синтаксис:
DECLARE {FUNCTION | SUB}<имя> [ ( [ <список параметров> ] ) ]
Аргумент | Описание |
<имя> | Имя процедуры; оно ограничено 40 символами. Имя процедуры-функции FUNCTION может сопровождаться маркером типа (%, &, !, #, $) для возвращаемой величины |
<список параметров> | Список параметров используется при вызове процедуры, определяет только количество и тип аргументов |
Оператор объявления процедур на языках семейства Microsoft - DECLARE
Назначение: Объявляет вызываемые последовательности внешних процедур, написанных на других языках программирования семейства Microsoft.
Синтаксис 1:
DECLARE FUNCTION<имя> [CDECL] [ALIAS ''< альтернативное имя>''] [ ( [ <список параметров> ] ) ]
Синтаксис 2
DECLARE SUB<имя> [CDECL] [ALIAS "<альтернативное имя>"] [( [ <список параметров> ] ) ]
Элемент | Описание |
FUNCTION | Указывает, что внешняя процедура возвращает значение; может использоваться в составе арифметических выражений |
SUB | Указывает, что внешняя процедура вызывается аналогично BASIC-процедуре |
<имя> | Имя, используемое в BASIC-программе для вызова процедуры; длина до 40 символов; имя процедуры-функции может включать маркер типа (%, &, !, #, $) для .возвращаемой величины. |
CDECL | Указывает, что процедура использует порядок размещения аргументов, свойственный языку С; ключевое слово CDECL указывает на передачу аргументов справа налево, а не слева направо, как принято в среде языка BASIC |
ALIAS | Указывает, что процедура имеет другое имя в .OBJ-файле или библиотеке; если отсутствует ключ ALIAS, то имя процедуры отображается строчными буквами, маркер типа удаляется, а в начале имени добавляется символ подчеркивания, и именно это имя используется при поиске библиотек и внешних файлов; если за ключомCDECL следует ключ ALIAS, то используется указанное альтернативное имя. |
Синтаксис аргумента <список параметров>
[ {BYVAL SEG} ] <переменная> [AS <тип>]
[ , [ {BYVAL SEG} ] <переменная> [AS <тип>] ] ...
Элемент | Описание |
BYVAL | Указывает, что параметр передается значением, а не ссылкой; передача ссылкой принята по умолчанию; ключ можно применять только для числовых параметров типа INTEGER, LONG, SINGLE, DOUBLE; при использовании BYVAL текущий аргумент преобразуется к типу, указанному в операторе DECLARE, непосредственно перед передачей параметра |
SEG | Указывает, что параметр передается адресом сегмента |
<переменная> | Имя, допустимое для переменных языка BASIC; существенным является тип переменной; если переменная - массив, то в скобках можно указать его размерность (в частности, чтобы обеспечить совместимость с прежними версиями языка) |
AS <тип> | Указывает тип переменной: INTEGER, LONG, SINGLE, DOUBLE, STRING, ANY - или имя структуры; можно указывать также и маркер типа (%, &, !, #, $) или принимать его по умолчанию; при объявлении внешних процедур, написанных на других языках, можно указать тип ANY, и это приведет к тому, что проверка типа не выполняется; нельзя использовать тип ANY для аргумента, передаваемого значением |
Если не используются ключи BYVAL и SEG, то аргументы передаются смещением.
Оператор вызова BASIC-процедур - CALL
Назначение: Передает управление подпрограмме SUB на языке BASIC.
Синтаксис 1: CALL<имя> [ ( <список аргументов> ) ]
Синтаксис 2:<имя> [ ( <список аргументов> ) ]
Аргумент | Описание |
<имя> | Имя ограничено длиной в 40 символов. Имя должно быть объявлено в операторе SUB, если процедура размешается в этом же модуле |
<список аргументов> | Переменные или константы, передаваемые в процедуру. Аргументы в списке отделяются за--пятыми. Аргументы, передаваемые ссылкой, могут быть изменены при выполнении процедуры |
Если <список аргументов> включает переменную массива, то массив указывается именем, за которым следуют пустые скобки.
2. Описание практической части работы:
2.1. Цели лабораторной работы: Изучить возможность подключения библиотек пользователя, работающих в среде qbx.exe.
2.2. Постановка задачи: В соответствии с вариантом задания рассчитать значение функции на интервале х от 0 до 360 град., используя возможность подключения функций из библиотеки пользователя.
2.3. Порядок выполнения работы:
2.3.1. Ознакомиться с теоретической частью.
2.3.2. Получить задание у преподавателя.
2.3.3. Выполнить работу.
2.3.4. Оформить отчет:
2.3.4.1. Содержание отчета:
1. Цель работы - краткая формулировка поставленной цели.
2. Порядок выполнения - определяются действия, необходимые для выполнения данной работы.
3. Постановка задачи - формулирование задачи в соответствии с индивидуальным заданием.
4. Решение поставленной задачи:
4.1. Математическое описание решения поставленной задачи содержит описание связей между параметрами с использованием принятых в математике обозначений.
4.2. Описание логической структуры программы (алгоритм решения) содержит:
- краткое описание схемы программы,
- алгоритм решения (по ГОСТ ) - рисунок,
- краткое описание используемых операторов языка программирования (при необходимости).
4.3. Описание программы содержит:
- название файла, его размер,
- текст программы (или фрагмент для решения конкретной, наиболее важной части задания).
4.4. Результат работы программы:
- значения, полученные в результате выполнения программы
- анализ полученных результатов.
Выводы - отвечают на поставленную цель.
2.4. Контрольные вопросы:
1. Какие программы помещают в библиотеки ?
2. Есть ли в языке Basic Microsoft стандартные библиотеки и что в них содержится ?
3. Для чего нужна библиотека пользователя ?
4. Можно ли в Basic Microsoft использовать одновременно несколько библиотек ?
5. Как вызываются функции и подпрограммы из библиотеки пользователя ?
6. Может ли имя переменной совпадать с именем процедуры, размещенной в подключенной библиотеки ?
7. Каким оператором вызывается подпрограмма из библиотеки ?
8. Может ли библиотечный файл быть в виде текстового файла, написанного на языке Basic Microsoft и как его подключить ?
9. Что содержит файл с расширением .мак ?
10. можно ли объединить несколько библиотек в одну ?
Таблица
Задания
n | Функция y(x) | n | Функция y(x) |