Оператор вызова 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)