Расчет макроэкономических индексов цен
Оценивая работу в целом, необходимо отметить качественное оформление пояснительной записки, так как все части логически связаны между собой и грамотно изложены. Также разработанная программа показывает способность автора к простому изложению сложных экономических задач, имеющих дальнейшую возможность использования и обработки в табличном процессоре Excel. Программа имеет простой интерфейс… Читать ещё >
Расчет макроэкономических индексов цен (реферат, курсовая, диплом, контрольная)
Министерство образования и науки Российской Федерации ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ АКАДЕМИКА С.П. КОРОЛЕВА (НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)» (СГАУ).
Факультет экономики и управления.
Кафедра математических методов в экономике.
Курсовая работа.
по дисциплине «Программирование».
на тему «Расчет макроэкономических индексов цен» .
Выполнила студентка.
Швардыгулина А.Ф.
Руководитель Семенов В.В.
Самара 2013.
Задание на курсовую работу.
Составить алгоритм и написать программу, вычисляющую макроэкономические индексы цен, получаемых с помощью подстановки данных в три формулы:
1. Индекс Ласпейреса.
2. Индекс Пааше.
3. Индекс Фишера где q0 — объем потребления в базисном периоде, р1 и р0 - цены текущего и базисного периода,.
q1 — объем потребления в текущем периоде.
Также программа может импортировать в Excel данные по текущим и базисным периодам.
- Введение
- Постановка задачи
- Организация диалога
- Описание алгоритма решения задачи
- Текст программы
- Руководство оператора
- Заключение
- Список литературы
Подсчет макроэкономических индексов в настоящее время неотъемлемая часть экономики. С помощью них можно проанализировать различные показатели макроэкономических цен. Индексы, используемые в данной курсовой работе, основаны на взвешивании цен двух периодов (базисного и текущего) по объемам потребления благ в одном из периодов. Примерами таких индексов являются индекс Ласпейреса, идентифицируемый с индексом потребительских цен, индекс Пааше, идентифицируемый с дефлятором, и индекс Фишера.
Для разработки приложения была выбрана среда программирования Delphi 7, представляющая широкие возможности для конструирования программных модулей различного направления.
Постановка задачи.
Необходимо разработать приложение, автоматизирующее процесс нахождения необходимых индексов вида:
1. Индекс Ласпейреса.
2. Индекс Пааше (Дефлятор).
3. Индекс Фишера.
Программа должна поддерживать ввод количества видов продукции, ввод данных по двум периодам (текущий и базисный) в табличной форме, где q0 — объем потребления в базисном периоде, р1 и р0 - цены текущего и базисного периода, q1 — объем потребления в текущем периоде. Также результаты выводятся на экран и возможно импортирование в Excel. Программу необходимо реализовать в среде Delphi 7 в виде приложения, ориентированного на рядового пользователя.
программа алгоритм индекс цена.
Организация диалога.
Программа реализована в виде 4 форм и 1 диалогового окна.
1. Main Form (Расчет ценовых индексов) (Рис. 1,2,3). Это главная форма, на которой расположены:
· Панель инструментов, включающая в себя 5 вкладок (TMenuItem);
· 5 кнопок (TButton);
· Таблица (TStringGrid) (Скрыта до введения количества продукции);
Рисунок 1. Главная форма..
Рисунок 2. Построение таблицы..
Рисунок 3. Расчет и форматирование таблицы..
С помощью панели инструментов, можно экспортировать данные таблицы в Excel (Рис.4), вызвать справку, прочесть «О программе», а также закрыть программное обеспечение. Кнопки служат для введения начальных данных, формата таблицы с последующим введением основных данных, а так же выполнению основного алгоритма программы, расчета индексов Лайспереса, Пааше (он же дефлятор) и Фишера.
Рисунок 4. Диалоговое окно сохранения..
2. Form 2 (Продукция) (Рис.5). Это форма, на которой расположено:
· Текст (TLabel);
· Поле ввода (TEdit);
· Кнопка (TButton);
Рисунок 5. Форма " Продукция" ..
На данной форме вводится количество товара, по значению которого строиться таблица на главной форме, умножая это число на 2 (2*n), создавая тем самым для каждого вида товара два столбца (Цена, Объем).
3. Form 3 (О программе) (Рис.6). Третья форма служит небольшим информационным источником об авторе программы и цели, для которой была написана это программа. При нажатии «Ok», она закрывается. На ней имеются:
· Текст (TLabel);
· Кнопка (TButton);
· Изображение (TPicture);
Рисунок 6. Форма " О программе" ..
4. Form 4 (Справка) (Рис.7). Это форма является небольшой инструкцией по работе в программе. В ней последовательно изложены шаги, как правильно работать в данном ПО. На ней расположен только текст (TLabel), закрытие осуществляется нажатие на Крестик.
Рисунок 7. Форма " Справка" ..
Описание алгоритма решения задачи.
Для решения поставленной задачи, необходимо организовать ввод данных, обработку их и вычисление индексов по формулам расчета (Лайспереса, Пааше (Дефлятор) и Фишера), для отображения их в таблице и последующим экспортированием данных в табличный процессор Excel, с вызовом диалогового окна. Приводятся блок-схемы алгоритмов (Рис. 8,9,10, 11,12):
Рисунок 8. Блок-схема алгоритма Лайспереса..
Рисунок 9. Блок-схема алгоритма Пааше..
Рисунок 8. Блок-схема алгоритма Фишера..
Рисунок 8. Блок-схема алгоритма экспорта в Excel..
Рисунок 8. Блок-схема диалогового окна сохранения..
Текст программы.
Программа содержит четыре модуля: Unit1 (Главная Форма), Unit2, Unit3, Unit4.
В первом модуле - Unit1 (Главная Форма) описано 10 процедур и 2 функции:.
1. Procedure FormCreate — создание формы, центрирование;
2. Procedure N2Click — клик по кнопке «Выход» ;
3. Procedure btn1Click — клик по кнопке «Количество продукции» ;
4. Procedure btn2Click — клик по кнопке «Отформатировать таблицу» ;
5. Procedure Excel2Click — клик по кнопке «Сохранить в Excel» ;
6. Procedure N4Click — клик по кнопке «Помощь» — > «О программе» ;
7. Procedure btn3Click — клик по кнопке «Индекс Лайспереса» ;
8. Procedure btn4Click — клик по кнопке «Индекс Пааше» ;
9. Procedure btn5Click — клик по кнопке «Индекс Фишера» ;
10. Procedure N5Click — клик по кнопке «Помощь» — > «Справка» ;
11. Function RefToCell — функция ссылки на ячейку в Excele (позволяет точно перенести ячейки из Delphi в Excel);
12. Function SaveAsExcelFile — функция экспортирования из Delphi в Excel.
unit Unit1;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, StdCtrls, Menus, Grids, ComObj;
type.
TForm1 = class (TForm).
btn1: TButton;
mm1: TMainMenu;
Excel2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N2: TMenuItem;
strngrd1: TStringGrid;
dlgSave1: TSaveDialog;
btn2: TButton;
btn3: TButton;
btn4: TButton;
btn5: TButton;
procedure FormCreate (Sender: TObject);
procedure N2Click (Sender: TObject);
procedure btn1Click (Sender: TObject);
procedure btn2Click (Sender: TObject);
procedure Excel2Click (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure btn3Click (Sender: TObject);
procedure btn4Click (Sender: TObject);
procedure btn5Click (Sender: TObject);
procedure N5Click (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Form1: TForm1;
m, n, i: integer;
Excel: Variant;
X: array [1.20,1.20] of integer;
const EXCEL_FILE_EXT = '. xls';
implementation.
{$R *. dfm}.
uses Unit2, Unit3, Unit4;
procedure TForm1. FormCreate (Sender: TObject);
begin.
Form1. Position: = poScreenCenter;
strngrd1. Hide;
end;
procedure TForm1. btn1Click (Sender: TObject);
begin.
Form1. Hide;
Form2. Show;
end;
procedure TForm1. N2Click (Sender: TObject);
begin.
Close;
end;
procedure TForm1. btn2Click (Sender: TObject);
var x, y, w, MaxWidth: Integer;
begin.
with Form1. strngrd1 do.
ClientHeight: = RowCount + 5;
with Form1. strngrd1 do.
begin.
for x: = 0 to ColCount — 1 do.
begin.
MaxWidth: = 0;
for y: = 0 to RowCount — 1 do.
begin.
w: = Canvas. TextWidth (Cells [x, y]);
if w > MaxWidth then.
MaxWidth: = w;
end;
ColWidths [x]: = MaxWidth + 5;
end;
end;
end;
function RefToCell (ARow, ACol: Integer): string;
begin.
Result: = Chr (Ord ('A') + ACol — 1) + IntToStr (ARow);
end;
function SaveAsExcelFile (AGrid: TStringGrid; ASheetName, AFileName: string): Boolean;
const.
xlWBATWorksheet = - 4167;
var.
XLApp, Sheet, Data: OLEVariant;
i, j: Integer;
begin.
Data: = VarArrayCreate ([1, AGrid. RowCount, 1, AGrid. ColCount], varVariant);
for i: = 0 to AGrid. ColCount — 1 do.
for j: = 0 to AGrid. RowCount — 1 do.
Data [j + 1, i + 1]: = AGrid. Cells [i, j];
Result: = False;
XLApp: = CreateOleObject ('Excel. Application');
try.
XLApp. Visible: = False;
XLApp. Workbooks. Add (xlWBatWorkSheet);
Sheet: = XLApp. Workbooks. WorkSheets [1];
Sheet. Name: = ASheetName;
Sheet. Range [RefToCell (1, 1), RefToCell (AGrid. RowCount,.
AGrid. ColCount)]. Value: = Data;
try.
XLApp. Workbooks. SaveAs (AFileName);
Result: = True;
except.
end;
finally.
if not VarIsEmpty (XLApp) then.
begin.
XLApp. DisplayAlerts: = False;
XLApp. Quit;
XLAPP: = Unassigned;
Sheet: = Unassigned;
end;
end;
end;
procedure TForm1. Excel2Click (Sender: TObject);
begin.
dlgSave1. Execute;
if SaveAsExcelFile (strngrd1, `Сводная таблица', dlgSave1. FileName) then.
ShowMessage (`Данные успешно экспортированы! ');
end;
procedure TForm1. N4Click (Sender: TObject);
begin.
Form3. Show;
end;
procedure TForm1. btn3Click (Sender: TObject);
var i: Integer;
Pl, Il, Zl: Extended;
begin.
Il: =0;
Zl: =0;
i: =1;
while (i<=2*n) do.
begin.
Il: =Il+StrToInt (strngrd1. Cells [i, 2]) *StrToInt (strngrd1. Cells [i+1,1]);
Zl: =Zl+StrToInt (strngrd1. Cells [i, 1]) *StrToInt (strngrd1. Cells [i+1,1]);
i: =i+2.
end;
Pl: = Il/Zl;
strngrd1. Cells [1,3]: = FloatToStr (Pl);
end;
procedure TForm1. btn4Click (Sender: TObject);
var i: Integer;
Pp, Ip, Zp: Extended;
begin.
Ip: =0;
Zp: =0;
i: =1;
while (i<=2*n) do.
begin.
Ip: =Ip+StrToInt (strngrd1. Cells [i, 2]) *StrToInt (strngrd1. Cells [i+1,2]);
Zp: =Zp+StrToInt (strngrd1. Cells [i, 1]) *StrToInt (strngrd1. Cells [i+1,2]);
i: =i+2.
end;
Pp: = Ip/Zp;
strngrd1. Cells [2,3]: = FloatToStr (Pp);
end;
procedure TForm1. btn5Click (Sender: TObject);
var Pf, Pl, Pp: Extended;
Label LA;
begin.
if (strngrd1. Cells [1,3] ='Лайспереса') or (strngrd1. Cells [2,3] ='Дефлятор') then.
begin.
if messagedlg (`Сначала посчитайте индекс Лайспереса и Дефлятор! ',.
mtconfirmation, [mbOK], 0) = mrOK then.
goto LA;
end;
if (strngrd1. Cells [1,3] ='') or (strngrd1. Cells [2,3] ='') then.
begin.
if messagedlg (`Сначала посчитайте индекс Лайспереса и Дефлятор! ',.
mtconfirmation, [mbOK], 0) = mrOK then.
goto LA;
end;
Pl: = StrToFloat (strngrd1. Cells [1,3]);
Pp: = StrToFloat (strngrd1. Cells [2,3]);
Pf: = Sqrt ((Pl*Pp));
strngrd1. Cells [3,3]: = FloatToStr (Pf);
LA:
end;
procedure TForm1. N5Click (Sender: TObject);
begin.
Form4. Show;
end;
end.
Во втором модуле - Unit2 описаны 3 процедуры:.
1. Procedure FormCreate — создание формы, центрирование;
2. Procedure btn1Click — клик по кнопке «Ok» ;;
3. Procedure FormClose — клик по крестику;
unit Unit2;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, StdCtrls;
type.
TForm2 = class (TForm).
lbl1: TLabel;
edt1: TEdit;
btn1: TButton;
procedure FormCreate (Sender: TObject);
procedure btn1Click (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Form2: TForm2;
implementation.
{$R *. dfm}.
uses Unit1, Unit3;
procedure TForm2. FormCreate (Sender: TObject);
begin.
Form2. Position: = poScreenCenter;
edt1. Clear;
end;
procedure TForm2. FormClose (Sender: TObject; var Action: TCloseAction);
begin.
Form2. Hide;
Form1. Show;
end;
procedure TForm2. btn1Click (Sender: TObject);
var i, c, o: Integer;
Label LA;
begin.
if edt1. Text='' then.
begin.
if messagedlg (`Введите количество видов продукции! ',.
mtconfirmation, [mbOK], 0) = mrOK then.
goto LA;
end;
n: =StrToInt (edt1. Text);
if (n<0) or (n=0) then.
begin.
if messagedlg (`Введите положительное количество видов продукции! ',.
mtconfirmation, [mbOK], 0) = mrOK then.
goto LA;
end;
Form1. strngrd1. ColCount: =2*n+1;
Form1. strngrd1. RowCount: =4;
Form1. strngrd1. Cells [0,0]: ='№';
c: =1;
o: =1;
for i: =1 to 2*n do.
if i mod 2 = 1 then begin.
Form1. strngrd1. Cells [i, 0]: ='Цена' + IntToStr (c);
Inc (c);
end else begin.
Form1. strngrd1. Cells [i, 0]: ='Объем' + IntToStr (o);
Inc (o);
end;
Form1. strngrd1. Cells [0,1]: ='Введите базисный год';
Form1. strngrd1. Cells [0,2]: = 'Введите текущий год';
Form1. strngrd1. Cells [0,3]: = 'Индексы цен';
Form1. strngrd1. Cells [1,3]: ='Лайспереса';;
Form1. strngrd1. Cells [2,3]: ='Дефлятор';
Form1. strngrd1. Cells [3,3]: ='Фишера';
Form1. strngrd1. Align: =alClient;
Form1. strngrd1. Show;
Form2. Hide;
Form1. Show;
LA:
end;
end.
В третьем модуле - Unit3 описано 2 процедуры:.
1. Procedure btn1Click — клик по кнопке «Ok» ;
2. Procedure FormCreate — создание формы, центрирование;
unit Unit3;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, StdCtrls, jpeg, ExtCtrls;
type.
TForm3 = class (TForm).
Image1: TImage;
lbl1: TLabel;
lbl2: TLabel;
btn1: TButton;
procedure btn1Click (Sender: TObject);
procedure FormCreate (Sender: TObject);
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Form3: TForm3;
implementation.
uses Unit1, Unit2, Unit4;
{$R *. dfm}.
procedure TForm3. btn1Click (Sender: TObject);
begin.
Form3. Close;
end;
procedure TForm3. FormCreate (Sender: TObject);
begin.
Form3. Position: = poScreenCenter;
end;
end.
В четвертом и последнем модуле - Unit4 не описано ни одной процедуры, т.к. там информационное окно содержащий текст, закрыть форму можно кликнув на Крестик.
unit Unit4;
interface.
uses.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,.
Dialogs, StdCtrls;
type.
TForm4 = class (TForm).
Label1: TLabel;
private.
{ Private declarations }.
public.
{ Public declarations }.
end;
var.
Form4: TForm4;
implementation.
uses Unit1, Unit2, Unit3;
{$R *. dfm}.
end.
Руководство оператора.
Приложение разработано для операционной системы MS Windows.
Никакое дополнительное ПО или устройства для работы программы не требуется. Для работы приложения необходим только исполняющий файл.
(Project1. exe или Расчет макроэкономических индексов цен. exe). Двойной клик по названию файла или ярлыку запускает программу.
Дальнейшая работа в приложении осуществляется с помощью кнопок, полей ввода и переключателей:
Поля для ввода количества продукции защищены от введения отрицательных значений и значения «нуль». Кнопка «Индекс Фишера» сработает только после того, как будут посчитаны другие индексы и внесены в соответствующие ячейки таблицы, защищены от пустых значений.
Для завершения работы с программой необходимо закрыть все дополнительные форму кнопкой «Ok» или кликом на Крестик, в случае отсутствия такой кнопки. Выйти из главной формы, можно нажатием кнопки «Выход» на панели инструментов или нажатием на Крестик.
Заключение.
Разработанное в данной курсовой работе приложение является полностью законченным программным продуктом и может быть использовано самостоятельно или как компонент другой информационной системы.
Программа ориентирована на рядового пользователя — экономиста, с минимальными знаниями в области экономики, но не обладающего специальными знаниями в области информационных технологий и математики.
1. В. Д. Богатырев, А. Ю. Ситникова. Экономическая теория для бакалавров менеджмента: учебно-методический комплекс дисциплины, Самара: Изд-во Самар. гос. аэрокосм. ун-т, 2008. — 256 с.
2. А. Б. Закалюкин, С. В. Колосов. Программирование в среде Delphi, Минск. 1998.
3. http://delphisources.ru/.
Рецензия на курсовую работу.
студентки 2-го курса факультета «Экономики и управления».
Швардыгулиной А.Ф.
на тему «Расчет макроэкономических индексов цен».
Содержание курсовой работы полностью соответствует изложенному заданию и отвечает требованиям оформления текстовых документов. Работа содержит пояснительную записку и разработанную автором в среде программирования Delphi 7 программу. Использованная автором тема не вызывает сомнения в актуальности, так как в настоящее время подсчет макроэкономических индексов является неотъемлемой частью экономики.
Программа легко позволяет на практике рассчитать необходимые показатели, а также имеет возможность экспортирования данных в Excel. Пояснительная записка содержит: введение, 5 основных частей, заключение и список использованной литературы. Для более наглядной демонстрации рабочей программы представлены экранные формы, приводится блок-схема.
Таким образом, представленная работа показывает способности автора систематизирования материала и программирования сложных экономических задач, а также владение приемами работы в инструментальной среде программирования Delphi 7.
К недочетам работы следует отнести возможность использования небольшого объема данных, период времени может быть увеличен для более наглядного представления положения в экономике.
Предложенное пожелание нисколько не влияет на проделанную работу, так как она соответствует всем требованиям, и заслуживает отличной оценки.
Рецензент: Шлыкова М.П.
__________________________.
" 30″ апреля 2013 г. (подпись).
Рецензия на курсовую работу.
студентки 2-го курса факультета «Экономики и управления».
Швардыгулиной А.Ф.
на тему «Расчет макроэкономических индексов цен».
Рецензируемая работа полностью соответствует изложенному заданию и отвечает требованиям по оформлению курсовых работ. Предоставленная работа содержит разработанную автором в среде программирования Delphi 7 программу и пояснительную записку. Актуальность выбранного раздела экономики обусловлена тем, что расчет ценовых индексов показывает качественное изменение цен в рассматриваемых явлениях.
Программа имеет простой интерфейс, удобные элементы управления, а также возможность импорта данных в Excel. Пояснительная записка содержит введение, постановку задачи, описание алгоритма решения задачи, текст программы, руководство оператора и заключение. Также для наглядного представления программы приводится блок-схема, реализующая методы решения.
Оценивая работу в целом, необходимо отметить качественное оформление пояснительной записки, так как все части логически связаны между собой и грамотно изложены. Также разработанная программа показывает способность автора к простому изложению сложных экономических задач, имеющих дальнейшую возможность использования и обработки в табличном процессоре Excel.
В качестве недочетов работы можно отметить, что в пояснительной записке нет ссылок на приведенные материалы, а также в перечне использованной литературы не полностью перечислены реквизиты источников.
Отмеченные недочеты работы не снижают ее высокого уровня. В целом, работа соответствует всем требованиям, предъявляемым к курсовой работе, и заслуживает отличной оценки.
Рецензент: Семенов В.В.
_____________________.
" 30″ мая 2013 г (подпись).