Реферат: Модель макроэкономических показателей

--PAGE_BREAK--2.4 Планирование вычислительного процесса

Как видно из графа состояний модели предметной области (рисунок 2.2), ход вычислительного процесса может идти тремя путями. По какой ветви графа будет идти процесс вычислений определяется в зависимости от выбора пользователя. То есть при запуске пакета неизвестно какие модули должны вызываться. Но возможных путей только три, поэтому определим какие модули должны вызываться в каждом из возможных случаев. Для определения последовательности вызываемых модулей воспользуемся алгоритмом “прямой волны” [2, cтр. 105]. Данный метод можно применить, так как несмотря на то, что граф переходов состояний МПО имеет разветвление, выбор ветви определяется пользователем и нет необходимости автоматически выбирать путь на графе. Матрицы входных и выходных данных модулей (Т и R), в которых строки соответствуют обработывающим модулям, а столбцы — данным по таблице 2.1, представлены в таблицах 2.4 и 2.5. Условно известные данные обозначены как “1”, неизвестные — как “ ” (пусто), или “0”.

Таблица 2.4 — Матрица T входных данных обрабатывающих модулей

 Данные

Модули

A

I

cp

X

H

S

FN

ep

N

Ap

Bp

V

R

Y

YE

D

C

DX

DXe

Y(t)

G

Уравнения

1

1

1





































Расчеты







1

1

1

1

1

1

























Данные_график



















1

1

1



















С-гос_пот-реблением



















1

1

1

1

















Таблица 2.5 — Матрица R выходных данных обрабатывающих модулей

Данные

Модули

A

I

cp

X

H

S

FN

ep

N

Ap

Bp

V

R

Y

YE

D

C

DX

Dxe

Y(t)

G

Уравнения



























1

1

1

1









Расчеты



































1

1





Данные_график







































1



С-гос_пот-реблением







































1

1

В первом случае процесс вычислений идет по левой ветви графа переходов состояний МПО. Так как в задачу пакета не входит выбор ветви, а выбор осуществляется пользователем, то подключение модулей Уравнения, Расчеты и Данные_график является взаимоисключающей альтернативой зависит от пользователя. Допустим, что пользователь задал определить нац. доход при постоянных мощностях, то для этого должен вызываться модуль Уравнения. В этом случае должны быть рассчитаны следующие данные: Y, D, YE, C то есть конечное состояние предметной области можно представить вектором Z=(0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0). Предположим, что данные A, I, cp уже заданы пользователем, хотя реально эти данные запрашиваются у пользователя в ходе вычислительного процесса. Тогда начальное состояние предметной области может быть описано вектором S0=(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0).

S0=(1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)

Уравнения®S1=(1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0)

Получен управляющий вектор для построения графика национального дохода.

Во втором случае процесс вычислений будет идти по средней ветви графа переходов состояний МПО. Этот путь выбирается в том случае, если пользователь желает определить величину национального дохода с учетом инвестиций. В этом случае должны быть рассчитаны следующие данные DX и DXe, то есть конечное состояние предметной области можно представить вектором Z=(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0). Предположим, что данные X, H, S, ep, N уже заданы пользователем, хотя реально эти данные запрашиваются у пользователя в ходе вычислительного процесса. Тогда начальное состояние предметной области может быть описано вектором S0=(0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0).

S0==(0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0).

Расчеты®S1=(0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0)

Получен управляющий вектор для построения графика национального дохода с учетом инвестиций.

В третьем случае процесс вычислений будет идти по правой ветви графа переходов состояний МПО. Этот путь выбирается в том случае, если пользователь желает построить модель делового цикла. В этом случае должны быть рассчитаны следующие данные Y(t) и G, то есть конечное состояние предметной области можно представить вектором Z=(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1). Предположим, что данные Ap, Bp, V, R уже заданы пользователем, хотя реально эти данные запрашиваются у пользователя в ходе вычислительного процесса. Тогда начальное состояние предметной области может быть описано вектором S0=(0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0).

S0==(0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0).

Расчеты®S1=(0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1)

Получен управляющий вектор для построения графика делового цикла.

2.5 Обоснование выбора способа внешнего управления пакетом

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

2.6 Определение функций обслуживающих и управляющих модулей

Поскольку приемы визуального событийно-управляемого программирования, используемые в VBA, предполагают широкое использование объектов (форм, меню, элементов управления), функциями обслуживающих модулей пакета является работа с этими объектами (например, формами для ввода пользователем данных и команд на входном языке пакета, различными интерфейсами), контроль допустимости введенных пользователем значений данных, а также общее оформление пакета и предоставление пользователю справочной информации о пакете в целом, так и о текущем состоянии МПО и обеспечение вывода разнообразных сообщений об ошибках выполнения.

Функциями основного управляющего модуля являются:

а) формирование начального состояния МПО

б) вызов обслуживающих и управляющих модулей второго уровня в зависимости от действий пользователя.

Функциями второстепенного управляющего модуля является:

а) формирование последовательности вызовов обрабатывающих и обслуживающих модулей в зависимости от действий пользователя

б) вызов обрабатывающих и обслуживающих модулей

в) преобразование состояния МПО в зависимости от результатов выполнения обрабатывающих и обслуживающих модулей.

2.7 Разработка входного языка пакета

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

Первая группа включает в себя команды для расчета национального дохода: “При условно постоянных производственных мощностях”, “С учетом инвестиций”.

Вторая группа команд включает в себя общие команды для построения моделей делового цикла: “Ввод данных”, “Диаграмма”, “Сохранить”.

Третья группа включает в себя команды для просмотра входных и выходных данных: “Данные”, “Диаграмма”, “Справка”.

Четвертая группа состоит из команды выхода: “Выход”.

При запуске пакета начальная инициализация меню представлены на рисунках Б.1-Б.5 в приложении Б. В первой группе недоступными являются команды “Диаграмма” и “Сохранить”. Эти пункты меню становятся активными (выбираемыми) после ввода данных вручную или из рабочей книги.

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

Кроме основного меню, управление пакетом осуществляется при помощи диалогов. Диалоги представлены на рисунках Б.6-Б.16 в приложении Б.

2.8 Разработка интерфейсов пакета

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

— справочный интерфейс

— информационный интерфейс

— интерфейс управления

— интерфейс ввода-вывода

— внешний интерфейс.

Справочный интерфейс в пакете представлен в виде общей справки по работе пакета и при вводе данных. Общая справка вызывается из главного меню командой “Справка”. Для вывода справки на экран в пакете используется встроенный в MicroSoft Office объект Assistant.

Информационный интерфейс представлен в пакете в виде сообщений о некорректности данных. Сообщения о некорректности входных данных представляют собой сообщения при вводе данных, если вместо числа вводятся строковые символы или если число выходит за пределы диапазона возможных значений.

Сообщения, образующие информационный интерфейс пакета представлены на рисунках Б.17-Б.24 в приложении Б.

Интерфейс управления представлен в пакете в виде меню и диалоговых окон. Возможности вызова конкретных пунктов меню связаны с текущим состоянием МПО, то есть в конкретный момент времени одни пункты меню могут быть доступны, а другие — недоступны. Меню, подменю и диалоговые окна, образующие интерфейс управления пакета, представлены на рисунках Б.1-Б.6 в приложении Б.

Интерфейс ввода вывода реализует в пакете функции:

— предоставление пользователю возможности ввода данных (диалоговые окна)

— отображение введенных данных на листах рабочей книги

— вывод результатов расчетов

— общее оформление листов рабочей книги для обеспечения воспринимаемости информации.

Внешний интерфейс реализован в усеченном виде, то есть пакет может использовать только файлы с соответствующими данными, созданные в приложении Excel, причем имеется рекомендация разработчика создавать файлы таблиц через пакет, чтобы было согласование последовательности данных во внешнем XLS-файле.

2.9 Разработка спецификаций и внутреннее проектирование модулей пакета и информационной базы

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

<img width=«647» height=«372» src=«ref-1_720406369-7043.coolpic» v:shapes="_x0000_s1124 _x0000_s1107 _x0000_s1106 _x0000_s1125 _x0000_s1117 _x0000_s1122 _x0000_s1120 _x0000_s1109 _x0000_s1108 _x0000_s1099 _x0000_s1096 _x0000_s1094 _x0000_s1095 _x0000_s1085 _x0000_s1089 _x0000_s1087 _x0000_s1088 _x0000_s1123 _x0000_s1121 _x0000_s1119 _x0000_s1118 _x0000_s1116 _x0000_s1115 _x0000_s1114 _x0000_s1113 _x0000_s1112 _x0000_s1111 _x0000_s1110 _x0000_s1100 _x0000_s1105 _x0000_s1104 _x0000_s1103 _x0000_s1102 _x0000_s1101 _x0000_s1098 _x0000_s1097 _x0000_s1093 _x0000_s1092 _x0000_s1091 _x0000_s1084 _x0000_s1090 _x0000_s1083 _x0000_s1086 _x0000_s1080 _x0000_s1082 _x0000_s1081 _x0000_s1079 _x0000_s1078 _x0000_s1077"> <img width=«598» height=«467» src=«ref-1_720413412-280.coolpic» v:shapes="_x0000_s1126">
<img width=«609» height=«132» src=«ref-1_720413692-2220.coolpic» v:shapes="_x0000_s1132 _x0000_s1135 _x0000_s1127 _x0000_s1129 _x0000_s1136 _x0000_s1134 _x0000_s1133 _x0000_s1131 _x0000_s1130 _x0000_s1128">  
<img width=«400» height=«179» src=«ref-1_720415912-2621.coolpic» v:shapes="_x0000_s1164 _x0000_s1163 _x0000_s1154 _x0000_s1155 _x0000_s1152 _x0000_s1149 _x0000_s1162 _x0000_s1161 _x0000_s1153 _x0000_s1160 _x0000_s1151 _x0000_s1159 _x0000_s1150 _x0000_s1158 _x0000_s1157"> <img width=«9» height=«25» src=«ref-1_720418533-218.coolpic» v:shapes="_x0000_s1156"> <img width=«10» height=«45» src=«ref-1_720418751-226.coolpic» v:shapes="_x0000_s1144"> <img width=«92» height=«114» src=«ref-1_720418977-631.coolpic» v:shapes="_x0000_s1146 _x0000_s1145"> <img width=«10» height=«16» src=«ref-1_720419608-216.coolpic» v:shapes="_x0000_s1140"> <img width=«92» height=«114» src=«ref-1_720419824-627.coolpic» v:shapes="_x0000_s1141 _x0000_s1142">      


Рисунок 2.3. – Иерархия модулей пакета

Модуль Ввод_исх_данных является обслуживающим модулем, реализующим функции интерфейса ввода-вывода. В его задачи входит предоставление пользователю возможности ввода предложенных параметров. Данный модуль вызывается из главного меню при выборе пользователем пункта “Национальный доход” “При условно постоянных производственных мощностях” “Ввод данных” “Вручную”. Модуль Очистить предназначен для очистки диапазона ячеек, где должна размещаться таблица с данными. Модули Склонность_потреблению, Базисное потребление, Независимый объем инвестиций являются обслуживающими модулями, реализующими функции по вводу входных данных.

Обслуживающие модули SaveToBook1,2,3 реализуют функции внешнего интерфейса. Они предназначены для сохранения введенных пользователем данных для каждого расчета в отдельной рабочей книге. Имя рабочей книги должно запрашиваться у пользователя. Модуль вызывается из меню при выборе пользователем пункта “В рабочую книгу”.

Обслуживающие модули OpenBook1,2,3 реализуют функции внешнего интерфейса и предназначены для считывания данных из других рабочих книг. Имя рабочей книги необходимо запрашивать у пользователя. При открытии книги необходимо проверить, содержит ли книга данные в нужном формате, если содержит, то должно производиться считывание данных в рабочую книгу kursl.xls, иначе пользователю должно сообщаться о том, что данные не найдены. После выполнения этих операций рабочая книга должна быть закрыта. При считывании данных должна производится синтаксическая проверка, если обнаружена ошибка в данных, считывание должно быть прекращено с выдачей соответствующего сообщения. Для реализации этих функций модуль вызывает модуль Massages.

Обслуживающий модуль myhelp реализует функции справочного интерфейса. Модуль вызывается из меню при выборе пользователем пункта “Справка”. Модуль должен обеспечивать вывод справки по всей системе макроэкономических показателей. При реализации модуля используется встроенный объект MicroSoft Office Assistant.

Обслуживающий модуль “Выход” предназначен для закрытия текущего листа и выхода из рабочей книги kurs.xls.

Обслуживающий модуль Вход_данные реализует функции интерфейса ввода-вывода. При вводе данных должен осуществляться синтаксический контроль. Данный модуль вызывается из главного меню при выборе пользователем пункта “Национальный доход” “С учетом инвестиций” “Ввод данных” “Вручную”. Модуль Очистить предназначен для очистки диапазона ячеек, где должна размещаться таблица с данными. Модули Отношение_капил_труд, Норма_накопления, Прирост_предло-жения труда, Шаг дифференцирования и Критерий_сходимости являются обслуживающими модулями, реализующими функции по вводу входных данных.

Модуль Исх_данные является обслуживающим модулем, реализующим функции интерфейса ввода-вывода. В его задачи входит предоставление пользователю возможности ввода предложенных параметров. Данный модуль вызывается из главного меню при выборе пользователем пункта “Динамика делового цикла” “Ввод данных” “Вручную”. Модуль Очистить предназначен для очистки диапазона ячеек, где должна размещаться таблица с данными. Модули Склонность_к_потреблению, Базовое потребление, СпросY0, СпросY1, Фактор_акселерации являются обслуживающими модулями, реализующими функции по вводу входных данных.

Обрабатывающий модуль Уравнения предназначен для расчета национального дохода Y и равновесного национального дохода YE [1,109] по следующим формулам:

Y = cpY0 + A + I  (1)

                                1

YE = (----------) * (I + A)  (2),

                               1-cp

где сp – склонность к потреблению, А – базисное потребление, I – независимый объем инвестиций. Входными данными модуля являются выше приведенные параметры, которые вводятся пользователем. Модуль вызывается из “Ввод_исх_данных”.

Обрабатывающий модуль Расчеты предназначен для расчета темпа изменения отношения «капитал/труд» DX и его равновесного значения Dxe по следующей формуле:

DX = S * FN – N * X  (3),

где S – норма потребления, N – прирост предложения труда, FN – производственная функция, X – очередное значение соотношения «капитал/труд». Входными данными модуля являются выше приведенные параметры. Модуль вызывается из “Вход_данные”.

Обрабатывающий модуль Данные_график предназначен для построения простой модели делового цикла. Входными параметрами модуля являются: A – склонность к потреблению, B – базовое потребление, V – фактор акселерации или коэффициент инвестиций, Y0 – значение спроса на конечную продукцию в момент времени (t-2), Y1 – значение спроса в момент времени (t-1), которые вводятся пользователем. Динамика национального дохода рассчитывается по формуле:

Y(t) = (A + V) * Y1 – V * Y0 + B  (5).

Модуль вызывается из “Исх_данные”.

Обрабатывающий модуль С_гос_потреблением предназначен для построения модели делового цикла с учетом гос. потребления. Входными параметрами модуля являются входные параметры предыдущего обрабатывающего модуля, а также G(t) – переменная государственного потребления, которая расситывается по формуле:

G(t) = (1 + R) * G(t – 1)  (6),

где R – константа, равная темпу роста государственного потребления. Динамика национального дохода с учетом госпотребления рассчитывается по формуле:

Y(t) = (A + V) * Y1 – V * Y0 + B + G(t)  (7).

Модуль вызывается из “Исх_данные”.

Обслуживающий модуль Messages обеспечивает информационный интерфейс пакета. Входным параметром модуля является номер сообщения. Модуль должен вывести сообщение соответствующее входному параметру. Сообщения в соответствии с входными параметрами представлены на рисунках Б.11-Б.29 в приложении Б. Модуль вызывается из OpenBook1,2,3.

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

2.10 Кодирование модулей и информационной базы

Для кодирования модулей пакета был выбран язык программирования Visual Basic for Applications для Excel 97, обеспечивающий широкий спектр возможностей визуального объектно-ориентированного программирования и большие возможности по использованию данных табличного типа.

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

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

    продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по информатике