DIM SHARED x AS INTEGER, B(3,4) AS SINGLE




Подпрограмма определяется как часть программы, к которой можно обращаться из разных точек основной программы любое число раз. При этом подпрограмма каждый раз решает одну и ту же задачу, но с разными значениями исходных данных.

− Возможность применения подпрограмм относит язык программирования к классу процедурных языков программирования.

Подпрограммы в процедурных языках программирования обеспечивают возможность реализации принципов структурного или модульного программирования:

· Программа может быть представлена как структура, состоящая из основной программы и подпрограмм (модульность);

· Каждая подпрограмма отлаживается и действует отдельно, независимо от других;

· Подпрограмма может быть применена в основном модуле программы, в любой другой подпрограмме;

· Одни и те же подпрограммы могут использоваться в разных программах. Поэтому, оказалось целесообразно создавать внешние подпрограммы, которые можно использовать по мере необходимости.

Появилась идея объединять подпрограммы в отдельные пакеты, получившие название библиотеки внешних подпрограмм.

Практически во всех современных системах программирования существует встроенная библиотека стандартных подпрограмм. В её состав входят подпрограммы вычисления значений некоторых элементарных функций (синус, косинус, логарифм, экспонента и т.д.), подпрограммы обработки символьных величин и др.

Встроенная в систему программирования библиотека подпрограмм подключается к любой программе автоматически, в процессе трансляции последней.

Наличие подпрограмм позволяет вести разработку программы от общего к частному. Такой подход называют нисходящим программированием.

При этом сначала создается основная часть (main module).

Затем к нему подключаются подпрограммы решающие конкретные подпрограммы решающие конкретные задачи. К подпрограммам, в свою очередь, могут подключаться другие подпрограммы. И так до тех пор, пока вся программа не окажется реализованной.

Существуют различные виды подпрограмм. В зависимости от того как в них передается управление из основной программы и какие результаты возвращаются, различают два основных типа подпрограмм – функции и процедуры.

Функция отличается от процедуры в основном тем, что результатом её выполнения является одно значение (числовое, логическое, литерное).

Программист, чтобы осуществить вычисление, может создать функцию, дать ей имя, и она будет работать аналогично встроенной функции языка (SIN, COS, и др.). К такой функции можно будет обращаться с разными задаваемыми значениями. Так же как встроенные функции, она не будет работать без аргумента.

Процедура по своим свойствам похожа на операторы языка программирования. Основная программа передаёт ей управление, и далее выполняются команды находящиеся в коде процедуры. Процедура позволяет получать сложный результат в виде многих значений.

2.

Область действия переменных и констант

Большинство современных программ структурировано и построено по модульному принципу.

Когда из main module вызывается подпрограмма, в неё переходит не только управление, но и данные. В коде программы данные содержатся в виде констант, переменных и массивов. В модульном программировании переменные различаются как локальные и глобальные.

Если данные доступны во всех компонентах программы, то они называются глобальными (или совместно-используемыми). Если данные доступны (видны) в пределах одного модуля, то они считаются локальными.

Область доступности (видимости) данных определяется способом их объявления.

Глобальная переменная (массив) в QB объявляется в основной части программы (главном модуле) комбинацией операторов DIM и SHARED.

Пример: Объявить как глобальную переменную Х с типом INTEGER и матрицу B(3,4) с типом SINGLE.

DIM SHARED x AS INTEGER, B(3,4) AS SINGLE

Переменные и массивы, объявленные только оператором DIM, или не объявленные вовсе, будут локальными.

В QB можно объявить переменные ограниченной видимости. Такая переменная будет видна в определённой подпрограмме и в основном модуле. Для этого переменную нужно объявить в подпрограмме одним оператором SHARED, без DIM.

3.

Применение подпрограмм, относящихся к функциям, осуществляется разными способами:

1). Функции в составе тела программы:

Описание нестандартной функции пользователя однострочным оператором DEF.

Пример: Использовать однострочную функцию пользователя FNY(x), где X – формальный параметр. Выражение для расчета функции a * ex, интервал значений X – [A, B], шаг H.

DEF FNY(x) = a * EXP(x) ' объявление функции пользователя INPUT “A, B, H”; A, B, H FOR x=A TO B+H/10 STEP H Y = FNY(x) PRINT “x = ”; x, “y = ”; y NEXT x END

Описание нестандартной функции пользователя многострочным оператором DEF.

Пример: Вычислить таблицу значений функции.

для значений X = {1,2,3,4,5}

DEF FNF(x) IF x < - 3.14159 THEN FNF = x/3.10159 + 1 ELSE IF x < = 3.14159 THEN FNF = SIN(x) ELSE FNF = - x/3.14159 – 1 END IF N = 5: DIM x(N), y(N) FOR i = 1 TO N INPUT x(i): Y(i) = FNF(x(i)) PRINT “x= ”; x(i), “y= ”; y(i) NEXT i END

2). Функции вне тела программы:

Применение оператора GOSUB…RETURN

Задание: Найти значение математического выражения

·! в математике обозначается факториал – произведение натуральных чисел от 1 до … включительно.

· В заданном выражении три раза приходится вычислять факториал, т.е. производить одни и те же действия с разными количествами натуральных чисел.

Описать вычисление факториала можно в подпрограмме, присвоив ей название, например FACT. Затем нужно будет из основной программы трижды с разными параметрами обратиться к подпрограмме.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: