Главная

Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Описание программы Visual Basic для вычисления значения и построения графика финансового показателя


Разработка интерфейса приложения

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

Разработанное приложение на Visual Basic должно обеспечить выполнение следующих функций:

· Выбор варианта отображения результатов вычисления финансового показателя: расчет численного значения финансового показателя; построение графика зависимости значений финансового показателя (показателей) от заданного параметра с активизацией необходимых для работы элементов управления.

· Задание исходных параметров для расчета значения финансового показателя и построения графика.

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

· Расчет и вывод значения финансового показателя.

· Построение графика изменения финансового показателя во времени.

При построении графика функции должно обеспечиваться автоматическое масштабирование окна отображения графика соответственно задаваемой области определения и области значений графика финансового показателя. (Ось Y графика начинается с 0).

Пример формы обеспечивающий решение перечисленных задач представлен на рис. 1.

Для ввода и отображения значений показателей на форме используются элементы управления TextBox (mText1, mText2, mText3, mText4, mText5, mText6, mText7, mText8). Каждый элемент управления снабжается поясняющим текстом. Для отображения поясняющего текста используется элемент управления метка (mLabel1, mLabel2, mLabel3, mLabel4, mLabel5, mLabel6, mLabel7, mLabel8, mLabel9, mLabel10 ).

Для построения графика функции используется элемент управления PictureBox (Picture1). Элементы управления сгруппированы по назначению с помощью элементов управления Frame (Frame1, Frame2, Frame4).

Для управления процессом вычислений используются элементы управления CommandButton – командные кнопки (Command1, Command2, Command3, Command4).

Имена и типы используемых объектов управления:

mText1 - объект типа TextBox (текстовое окно) для задания суммы кредита; mText2 - объект типа TextBox (текстовое окно) для задания процентной ставки; mText3 - объект типа TextBox (текстовое окно) для задания срока кредита; mText4 - объект типа TextBox (текстовое окно) для задания суммы кредита; mText5 - объект типа TextBox (текстовое окно) для задания процентной ставки; mText6 - объект типа TextBox (текстовое окно) для задания срока кредита; mText7 - объект типа TextBox (текстовое окно) для задания шага построения графика; mText8 - объект типа TextBox (текстовое окно) для вывода результатов расчета показателя;

Frame1 - объект типа Frame (рамка) для группировки объектов, используемых для задания параметров расчета показателя ("Расчет показателя");

Frame2 - объект типа Frame (рамка) для группировки объектов, используемых для задания параметров графика ("Построение графика");

Command1 - объект типа CommandButton (командная кнопка) для активизации фрейма "Расчет показателя" (кнопка " Расчет показателя ");

Command2 - объект типа CommandButton (командная кнопка) для активизации фрейма "Построение графика" (кнопка "Построение графика");

Command3 - объект типа CommandButton (командная кнопка) для вызова процедуры расчета показателя (кнопка "ОК");

Command4 - объект типа CommandButton (командная кнопка) кнопка "ОК", для вызова процедуры построения графика (кнопка "ОК");

Picture1 - объект типа PictureBox для вывода графика;

mLabel1, mLabel2, mLabel3, mLabel4, mLabel5, mLabel6, mLabel7, mLabel8, mLabel9 – поясняющие метки;

mLabel10 – метка для вывода наращенной суммы при построении графика.

mText8 – элемент управления “TextBox” для вывода наращенной суммы.



Рис.1

 

Экранная форма работает по следующей логике:

· при запуске программы на форме должны быть активными (доступными) командные кнопки «Построение графика», «Расчет показателя», рамки с элементами для ввода исходных данных должны быть недоступны;

· при нажатии кнопки «Расчет показателя» становится активным фрейм «Расчет показателя», фрейм «Построение графика» блокируется;

· при нажатии кнопки «Построение графика» становится активным фрейм «Построение графика», фрейм «Расчет показателя» блокируется.

· Проверка введенных исходных данных необходимых для расчета и расчет показателя производится после нажатия кнопки «ОК» во фрейме «Расчет показателя»;

· текстовое окно «Наращенная сумма» всегда недоступно для редактирования, но доступно для копирования данных;

· Проверка введенных исходных данных необходимых для построения графика и построение графика производится в элементе PictureBox после нажатия кнопки «ОК» во фрейме «Построение графика»;

· При вводе данных в текстовые окна осуществляется проверка:

· на не пустоту данных (ввод всех необходимых данных для расчета во все окна ввода, при ошибке выводится сообщение);

· осуществляется проверка на ввод только числовых данных

· проверка на допустимость введенных данных с точки зрения логики расчета показателя. (Например: положительность, принадлежность допустимому диапазону значений и т. д.)

Проверка исходных данных для расчета

Проверка исходных данных должна производится до начала вычислений. Цель проверки – не допустить выполнение расчета показателя или построения графика на основе неправильных по условию задачи исходных данных.

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

Таким образом, проверка исходных данных введенных пользователем должна обязательно включать два этапа:

· Проверка введенных данных на соответствие числовому формату

· Проверка введенных данных на допустимость значения введенного числа

Например:

Разработать приложение для расчета значения наращенной суммы платежа по кредиту по формуле сложных процентов при выплате процентов 1 раз в год. Построить график зависимости наращенной суммы (S) от срока платежа (n).

Расчетная формула: S=P*(i +1)^n.

Исходные данные:

P – первоначальный размер кредита,

i - проценты по кредиту,

n – число лет наращения.

Условия на допустимость значений:

По смыслу задачи первоначальный размер кредита не может быть отрицательным. P>=0.По смыслу задачи величина процентной ставки задается в долях (0.1 = 10 % ) и то же не может быть отрицательной. i>=0По смыслу задачи срок платежа должен быть положительным n>0.По смыслу задачи при построении графика функции величина шага построения графика должна быть положительной и не может превышать периода времени, для которого строится график. Step_t >0 и Step_t<n

При этом по условию задачи все перечисленные параметры могут быть дробными.

P = 100,5 $ ; I = 12.5 %; N=1.5 года

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

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

Для проверки введенного набора символов числовому формату в языке программирования Visual basic используется встроенная функция IsNumeric (). Функция возвращает значение типа Boolean показывающее может ли значение параметра быть в принципе преобразована в число или нет.

Функция имеет синтаксис:

IsNumeric(выражение)

Аргумент “выражение” может иметь тип Variant или String содержащий числовое или строковое значение. Функция возвращает значение True если введенное значение может быть преобразовано к числовому или False, если не может.

Функция IsNumeric проверяет правильность введенного числа в строгом соответствии с форматом числа, установленным для компьютера. Формат числа задается с помощью региональных настроек «Язык и стандарты» панели управления компьютера.

То есть если разделителем между целой и дробной частью числа установлена “ , “ то и дробным числом будет считаться только число введенное с “ , “ .

Например:

1,3456e2 = 134,56 – число

1.23 – не число

Если на компьютере установлен разделитель “ , “ , а вводится число с точкой , то «1.2» не будет считаться числом. Поэтому при вводе исходных данных всегда необходимо использовать разделитель, определенный в настройках компьютера.

Если выражение expression прошло проверку функцией IsNumeric() , то есть IsNumeric(expression) = true , то его можно преобразовать к числовому значению с помощью встроенной функций CSng ().

 

Пример проверки параметра P на допустимость введенного значения.

Данные вводятся в элемент Text1.text Проверенное значение в переменной P.

If mText1.Text = "" Then

MsgBox "Сумма кредита не задана.", vbExclamation + _ vbOKOnly,"Проверка исходных данных"

mText1.SetFocus

Exit Sub

End If

' проверка на число

If Not IsNumeric(mText1.Text) Then

MsgBox "Сумма кредита - не число.<" & mText1.Text & ">", _

vbExclamation + vbOKOnly, "Проверка исходных данных"

mText1.SetFocus

Exit Sub

End If

Расчет значения показателя

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

Количество параметров подпрограммы – функции должно соответствовать количеству параметров, которое требуется для вычисления значения финансового показателя в соответствии с вариантом задания. Выбор типов параметров функции должен производится в соответствии с физическим смыслом параметров в решаемой задаче. Например: величина кредита может быть дробным числом, следовательно, для хранения его значения может использоваться тип single и не может использоваться тип integer.

Подпрограмма-функция должна использоваться и для расчета значения показателя ( 1 - я часть задания и для вычисления значений показателя при построении график функции).

В подпрограмме-функции присутствует обработка ситуации возникновения ошибки при вычислении.

При возникновении ошибки в пределах строк программы расположенных между

On error goto err1 … On error goto 0

программа не прерывается вызовом стандартного сообщения об ошибке, а управление передается оператору с меткой err1. По коду ошибки, который узнается по свойству Err.Number определяется тип ошибки и выводится диагностическое сообщение.

Public Function s (ByVal p As Double, ByVal i As Double, _

ByVal n As Double) As Double

Const Msg As String = "Ошибка при вычислении показателя !"

' Функция для расчета финансового показателя

On Error GoTo err1 ' в случае ошибки - перейти на метку err1

s = p * (1 + i) ^ n ' функция наращения при сложных _

‘процентах

On Error GoTo 0

Exit Function ' выйти из функции

err1: 'обработка ошибки

If Err.Number = 6 Then ' если ошибка - переполнение, _

‘ вывести на экран сообщение

MsgBox Msg, , "Переполнение"

Err.Clear ' очистка поля ошибки

Else

MsgBox Msg & Err.Number

Err.Clear

End If

' очистка формы

Picture1.Cls 'очистка PictureBox

Frame1.Enabled = False 'фрейм недоступен

Frame2.Enabled = False 'фрейм недоступен

End Function

 

 

Принципы построения приближенного графика

График функции на заданном отрезке изменения аргумента может быть построен приближенно путем замены настоящего графика функции - ломаной линией приблизительно соответствующей графику функции. Ломаная линия соединяет ряд точек (X;Y) причем координаты, точек рассчитываются путем изменения с заданным шагом значений аргумента функции (ось Х) и вычисления соответствующих им значений функции Y= F(X) .

 

Рис.2.

Рисование отрезков ломаной линии в программе возможно либо непосредственно на форме, где расположены элементы управления, или внутри элемента управления PictureBox.

 

Рис.3

 

Предварительно, перед рисованием графика необходимо задать систему координат для элемента PictureBox. Система координат нужна для указания расположения точек и линий графика внутри области построения PictureBox. (См. Рис 3.) Система координат должна быть такой, что бы внутри элемента управления PictureBox целиком поместился график функции и оси координат. (См. Рис. 4)

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

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

Максимальное значение координаты вертикальной оси Y должно быть равно максимальному значению функции, которое она принимает на отрезке построения графика (обозначим его maxFx), минимальное значение оси Y должно быть равно 0, так как все показатели, используемые в заданиях курсовой работы не отрицательные.

Максимальное значение на оси X должно быть равно максимальному значению аргумента (правый край области построения А) , минимальное - минимальному значению аргумента ( левый край области построения B). (См.Рис.4)

 

 

Рис.4

 

Рис.5

 

Что бы иметь возможность создания собственной системы координат свойство PictureBox1.ScaleMode должно быть равно = 0 – User пользовательская система координат (устанавливается на этапе проектирования с помощью окна свойств элемента Picture Box).

Для задания направления и размеров шкалы осей координат используется метод Piture1.Scale. Метод Scale имеет следующий синтаксис:

object.Scale (x1, y1) - (x2, y2)

Например: для графика, указанного на рисунке, метод задания системы координат будет иметь вид Picture1.scale (a;maxFx)-(b;0)

Для рисования отрезков прямой используется метод Line

Синтаксис метода рисования линии следующий:

object.Line [Step] [(x1, y1) ] [Step] - (x2, y2), [color], [B][F]

Например: для рисования отрезка начиная с текущей точки до точки с координатами (x1;y1) метод line будет иметь вид:

Picture1.Line - (x1,y1)

Цвет линии задается значением параметра color. Текущей точкой называется точка, где располагается воображаемое перо после рисования фигуры. Первоначально перо располагается в начале координат. Для перемещения текущей точки в точку с заданным координатами без рисования линии используются свойства Picture1.CurrentX, Picture1.CurrentY.

Для рисования точек используется метод PitureBox1.Pset

Синтаксис метода рисования Pset:

object.PSet [Step] (x, y), [color]

Например: для рисования точки с координатами (x1;y1) необходимо вызвать метод:

Picture1.Line (x1,y1)

Цвет точки задается значением параметра color.

Для задания толщины линии или точки используется свойство Picture1.DrawWidth. Для задания толщины равной 6 ед. необходимо присвоить перед вызовом метода рисования Picture1. DrawWidth = 6.

Для задания цвета рисования используется встроенная функция RGB(red, green, blue). Функция возвращает после вызова значения кода цвета. Значения параметров red, green, blue могут быть 0-255 и указывают интенсивность красного, зеленого или голубо цвета, смешением которых производится рисование.


 

Вычисление максимума функции

Рассмотрим метод нахождения максимума функции на заданном отрезке.

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

x min
x max
F(x)
x
b
a  

Рис.6

Рассмотрим метод последовательного перебора для поиска максимума функции F(x) на отрезке [a,b].

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

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

Схема алгоритма представлена на рисунке.

1. Начальное значение аргумента maxX выбирается произвольно изнутри исследуемого отрезка [a,b] и присваивается переменной maxX. maxFx=F(X). Выбирать maxX вне отрезка [a,b] нельзя, так как значение функции при данном Х может оказаться больше любого значения функции внутри отрезка значений аргумента [a,b].

2. Вычисляется значение аргумента X из отрезка и значение функции Y=F(x)

3. Сравнивается значение maxFx<Y . Если maxFx<Y верно, то maxFx=Y, maxX= X, в противном случае П.4

4. Вычисляем новое Х=Х+ step

5. Если X<b то П.2

 

Рис.7

Минимум функции ищется аналогично. При вычислении максимума и минимума на отрезке монотонной функции важно проверить наличие максимума/минимума на концах отрезка. Если шаг приращения аргумента не укладывается целое число раз на отрезке [a,b] то точка b останется не проверенной (шаг задавать кратным).

' начальное значение выбираем произвольное

maxfx = s(p, i, 0) ' максимальное значение функции _

‘(до их вычисления)

For st = 0 To n Step step_t ' вычислим максимальное значение

‘ функции

If maxfx < s(p, i, st) Then ' вычислим максимальное

‘значение функции

maxfx = s(p, i, st) '

maxx=st

End If '

Next st

Цикл For используется для пошагового расчета значений аргумента исследуемой функции. Каждая получившаяся точка (X,Y) , где X=st, Y=f(St) сравнивается со значением максимума функции найденным на предыдущем шаге.

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

Установка системы координат

После вычисления значений максимального значения функции на отрезке (переменные maxFx) с помощью метода Scale можно задать систему координат для рисования графика. Значения координат не должны превышать диапазон значений числа типа Single языка программирования VB. Для этого достаточно лишь ограничится проверкой допустимости значений параметров Scale и в случае нарушения условий вывести сообщение об ошибке, прекратив построение графика функции.

Допустимый диапазон значений для типа Single.

-3.402823E38 to -1.401298E-45 и 1.401298E-45 to 3.402823E38

В данном случае это условие относится к значению переменной maxfx.

'проверяем на принадлежность диапазону значений

'0 и 1.401298E-45 to 3.402823E38

If (maxfx >= 1.401298E-45 And maxfx <= 3.402823E+38) or _

maxfx = 0 Then

' все в порядке

maxfx = CSng(maxfx)

Else

MsgBox "Значение максимума функции не принадлежит” & _

“ допустимому диапазону!" & maxfx, vbCritical, ""

Exit Sub

End If

После проверки на допустимость значений создаем систему координат.

Picture1.Scale (CSng(0), CSng(maxfx))-(CSng(n), CSng(0))

Рисование осей координат

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

'устанавливаем толщину линии 6

Picture1.DrawWidth = 6 ' толщина точки равна 6

' рисуем ось X

Picture1.Line (0, 0)-(n, 0), RGB(0, 255, 0)

' рисуем ось Y

Для задания цвета линии используем функцию RGB. Интенсивность красной составляющей цвета 0, интенсивность зеленой 255 (т.е. максимум), интенсивность синей – 0. Получаем ярко зеленый цвет.

Рисование ломаной линии графика

Для рисования ломаной линии изображающей график функции необходимо выбрать толщину линии и установить начальную точку, с которой будет выполняться рисование. Координаты начальной точки будут (0, f(0)), т. к. график функции строится с начального момента времени.

'Устанавливаем толщину линии и

‘координаты начала рисования ломаной линии

Picture1.DrawWidth = 1 ' толщина точки равна 1

Picture1.CurrentX = 0 ' задание координат пера

Picture1.CurrentY = s(p, i, 0) ' задание координат пера

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

' рисование ломаной линии графика

For st = 0 To n Step step_t

Picture1.DrawWidth = 5 ' толщина точки равна 5

' рисование точек построения графика

Picture1.PSet (Picture1.CurrentX, Picture1.CurrentY)

Picture1.DrawWidth = 1 ' толщина точки равна 1

Picture1.Line -(st, s(p, i, st)) ' рисование графика

Next st

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

' дорисовываем график до конечной точки ( если интервал "шаг построения" укладывается не целое число раз

Picture1.Line -(n, s(p, i, n)) ' рисование графика

перед завершением процедуры рисования графика функции.

После завершения построения графика рассчитываем значение максимума функции и отображаем его на форме.

' выводим максимальное значение функции на экран

mLabel10.Caption = s(p, i, maxX) ' значение метки

‘- сумма наращенного платежа

Текст программы приведен в примере отчета курсовой работы.

Пример выполнения задания :

Задание

Разработать приложение для расчета значения наращенной суммы платежа по кредиту по формуле сложных процентов при выплате процентов один раз в год. Построить график зависимости наращенной суммы (S) от срока платежа (n).

 

Расчетная формула:

 

S=P*(i+1)^n.

Вводимые параметры:

P – первоначальный размер кредита;

i – проценты по кредиту;

n – число лет наращения.

 

Пример разработанного приложения

(описание экранной формы и назначения элементов управления)

 

Для выполнения данного задания была создана форма:

Рис.8

 

Command1 - объект типа CommandButton (командная кнопка) для активизации фрейма "Расчет показателя" (кнопка " Расчет показателя ");

Command2 - объект типа CommandButton (командная кнопка) для активизации фрейма "Построение графика" (кнопка "Построение графика");

Command3 - объект типа CommandButton (командная кнопка) для вызова процедуры расчета показателя (кнопка "ОК");

Command4 - объект типа CommandButton (командная кнопка) кнопка "ОК", для вызова процедуры построения графика (кнопка "ОК");

Picture1 - объект типа PictureBox для вывода графика;

mLabel1, mLabel2, mLabel3, mLabel4, mLabel5, mLabel6, mLabel7, mLabel8, mLabel9 – поясняющие метки;

mLabel10 – метка для вывода наращенной суммы при построении графика.

mText8 – элемент управления “TextBox” для вывода наращенной суммы.

Форма работает по следующей логике:

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

· при нажатии кнопки «Расчет показателя» становится активным фрейм «Расчет показателя» и его содержимое;

· при нажатии кнопки «Построение графика» становится активным фрейм «Построение графика» и его содержимое.

· вывод результата расчета показателя производится в текстовое окно «Сумма платежа» после нажатия кнопки «ОК» во фрейме «расчет показателя»;

· текстовое окно «Наращенная сумма» недоступно для редактирования, но доступно для копирования данных;

· вывод графика производится в элемент PictureBox после нажатия кнопки «ОК» во фрейме «Построение графика»;

· при повторном построении графика производится очистка элемента PictureBox от предыдущего построенного графика.

 

При вводе данных в текстовые окна осуществляется проверка:

· на наличие данных (ввод всех необходимых данных для расчета во все окна ввода, при ошибке выводится сообщение);

· осуществляется проверка на ввод только числовых данных

· проверка на допустимость введенных данных с точки зрения логики расчета показателя. (Например: положительность, принадлежность допустимому диапазону значений и т. д.)

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

В модуле кода формы, в разделе объявления общих переменных «General», объявляются переменные для хранения параметров финансового показателя при выполнении расчетов в программе.

 

Процедуры обработки событий

(описание программного кода приложения)

Примечание: Количество и тип переменных выбирается в соответствии с вариантом задания и физическим смыслом, который параметры играют в формуле расчета финансового показателя.

 

Option Explicit

Dim p As Double ' первоначальная сумма

Dim i As Double ' ставка наращения

Dim n As Double ' срок ссуды


‘ Функция для расчета значений финансового показателя

Public Function s(ByVal p As Double, ByVal i As Double, _

ByVal n As Double) As Double

Const Msg As String = "Ошибка при вычислении показателя !"

' Функция для расчета финансового показателя

On Error GoTo err1 ' в случае ошибки - перейти на метку err1

s = p * (1 + i) ^ n ' функция наращения при

‘сложных процентах

On Error GoTo 0

Exit Function ' выйти из функции

err1: 'обработка ошибки

If Err.Number = 6 Then ' если ошибка - переполнение,

‘вывести на экран сообщение

MsgBox Msg, , "Переполнение"

Err.Clear ' очистка поля ошибки

Else

MsgBox Msg & Err.Number

Err.Clear

End If

' очистка формы

Picture1.Cls 'очистка PictureBox

Frame1.Enabled = False 'фрейм недоступен

Frame2.Enabled = False 'фрейм недоступен

End Function


‘кнопка с именем Command1 используется для

‘активизации рамки frame1

‘и подготовки формы к вводу исходных данных

‘для расчета показателя

Private Sub Command1_Click()

'После нажатия кнопки "Расчет показателя" становится

‘доступным фрейм "Расчет показателя",

‘остальные элементы формы становятся недоступными.

Frame1.Enabled = True 'фрейм доступен

Frame2.Enabled = False 'фрейм недоступен

mText1.SetFocus 'курсор переводится в

‘текстовое окно Text1

mText8.Text = "" 'очистка текста строки результата

End Sub


‘кнопка с именем Command2 используется

‘для активизации рамки frame2

‘и подготовки формы к вводу исходных данных

‘для построения графика

Private Sub Command2_Click()

'После нажатия кнопки "Расчет показателя" становится

‘доступным фрейм "Расчет показателя",

‘остальные элементы формы становятся недоступными.

Frame1.Enabled = False 'фрейм доступен

Frame2.Enabled = True 'фрейм недоступен

mText4.SetFocus 'курсор переводится в текстовое

‘окно Text1

mText8.Text = "" 'очистка текста строки результата

End Sub


‘кнопка с именем Command3 используется для

‘проверки введенных исходных данных

‘ для расчета и выполнения расчета показателя

Private Sub Command3_Click()

'проверка проверка исходных данных

'Проверка на пустоту

If mText1.Text = "" Then

MsgBox "Сумма кредита не задана.", vbExclamation + _

vbOKOnly, "Проверка исходных данных"

mText1.SetFocus

Exit Sub

End If

' проверка на число

If Not IsNumeric(mText1.Text) Then

MsgBox "Сумма кредита - не число.<" & mText1.Text & ">", _

vbExclamation + vbOKOnly, "Проверка исходных данных"

mText1.SetFocus

Exit Sub

End If

p = CDbl(mText1.Text)

' проверка на допустимость значения параметра

If p < 0 Then

MsgBox "Сумма кредита - должна быть неотрицательна .", _

vbExclamation + vbOKOnly, "Проверка исходных данных"

mText1.SetFocus

Exit Sub

End If

‘аналогично организуется проверка задаваемых пользователем

‘значений для других показателей mText2.Text,mText3.Text

'Проверка исходных данных закончена

mText8.Text = CStr(s(p, i, n)) ' в текстовое окно передать

‘результаты расчета показателя

End Sub


‘кнопка с именем Command4 используется для проверки

‘введенных исходных данных для расчета и выполнения

‘построения графика

Private Sub Command4_Click()

Dim maxfx As Double

Dim maxX As Double

Dim step_t As Double

Dim st As Double

'проверка исходных данных

If mText4.Text = "" Then

MsgBox "Сумма кредита не задана.", vbExclamation + vbOKOnly, _

"Проверка исходных данных"

mText4.SetFocus

Exit Sub

End If

If Not IsNumeric(mText4.Text) Then

MsgBox "Сумма кредита - не число.<" & mText4.Text & _

">", vbExclamation + vbOKOnly, "Проверка исходных данных"

mText4.SetFocus

Exit Sub

End If

p = CDbl(mText4.Text)

‘ аналогично организуется проверка для других параметров

‘расчета mText5.Text, mText6.Text

If Not IsNumeric(mText7.Text) Then

MsgBox "Шаг графика - не число.<" & mText7.Text & _

">", vbExclamation + vbOKOnly, "Проверка исходных данных"

mText7.SetFocus

Exit Sub

End If

step_t = CDbl(mText7.Text)

'Проверка исходных данных закончена

Picture1.Cls ' очистка элемента PictureBox

'зададим систему координат формы

'для чего найдем максимальное значение принимаемое

'функций на отрезке

' начальное значение выбираем произвольное

maxfx = s(p, i, 0) ' максимальное значение функции

‘ (до их вычисления)

For st = 0 To n Step step_t ' вычислим максимальное

‘значения функции

If maxfx < s(p, i, st) Then ' вычислим максимальное

‘значение функции

maxfx = s(p, i, st) '

maxx=st

End If '

Next st

'задание пользовательской системы координат в окне изображения

'проверяем на принадлежность диапазону значений

'0 и 1.401298E-45 to 3.402823E38

If (maxfx >= 1.401298E-45 And maxfx <= 3.402823E+38) Or _

maxfx = 0 Then

'все в порядке

maxfx = CSng(maxfx)

Else

MsgBox "Значение максимума функции не принадлежит” & _

“ допустимому диапазону!" & maxfx, vbCritical, ""

Exit Sub

End If

'создание системы координат

Picture1.Scale (CSng(0), CSng(maxfx))-(CSng(n), CSng(0))

' Рисуем оси координат

'устанавливаем толщину линии 6

Picture1.DrawWidth = 6 ' толщина точки равна 6

' рисуем ось X

Picture1.Line (0, 0)-(n, 0), RGB(0, 255, 0)

' рисуем ось Y

Picture1.Line (0, 0)-(0, maxfx), RGB(0, 255, 0)

'Устанавливаем толщину линии и координаты начала рисования ломаной линии

Picture1.DrawWidth = 1 ' толщина точки равна 1

Picture1.CurrentX = 0 ' задание координат пера

Picture1.CurrentY = s(p, i, 0) ' задание координат пера

' рисование ломаной линии графика

For st = 0 To n Step step_t

Picture1.DrawWidth = 5 ' толщина точки равна 5

' рисование точек построения графика

Picture1.PSet (Picture1.CurrentX, Picture1.CurrentY)

Picture1.DrawWidth = 1 ' толщина точки равна 1

Picture1.Line -(st, s(p, i, st)) ' рисование графика

Next st

' дорисовываем график до конечной точки ( если интервал "шаг по

‘ строения" укладывается не целое число раз

Picture1.Line -(n, s(p, i, n)) ' рисование графика

' выводим максимальное значение функции на экран

mLabel10.Caption = s(p, i, maxX) ' значение метки –

‘сумма наращенного платежа

mLabel10.Visible = True ' метка видима

End Sub


'При загрузке формы обе рамки становятся недоступными.

Private Sub Form_Load()

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

Frame1.Enabled = False 'фрейм недоступен

Frame2.Enabled = False 'фрейм недоступен

End Sub


Private Sub mText1_KeyPress(KeyAscii As Integer)

'После нажатия кнопки "Enter" производится перевод курсора в ‘следующее текстовое окно.

If KeyAscii = 13 Then ' если нажата клавиша Enter

mText2.SetFocus ' перевести курсор в текстовое окно

End If

End Sub


Private Sub mText2_KeyPress(KeyAscii As Integer)

'После нажатия кнопки "Enter" производится перевод курсора в следующее текстовое окно.

If KeyAscii = 13 Then ' если нажата клавиша Enter

mText3.SetFocus ' перевести курсор в текстовое окно

End If

End Sub


Процедуры обработки событий keyPress для элементов управления mtext3,mtext4,mtext5,mtext6,mtext7 аналогичны mText2_KeyPress.

 

 

Работа приложения

(примеры форм с результатами расчетов и графиком)

 

Расчет показателя:

 

Рис.9

 

Построение графика:

 

 

Рис.10

 

Пример окна сообщения о ошибке:

 

 

Рис.11

 

Описание расчета инвариантной сметы расходов с помощью электронных таблиц Excel

Задание

1. Составить расчет инвариантной сметы расходов на ремонт квартиры.

2. Построить диаграмму структуры расходов по смете.

3. Разработать два сценария для расчета расходов при изменении цен на материалы и расценок на выполнение работ.

4. Подобрать параметры для расчета возможных размеров цен при заданной величине расходов.

5. Составить план погашения кредита на расходы по смете и рассчитать будущую стоимость расходов.

Расчет инвариантной сметы расходов на ремонт квартиры

Составить смету на ремонт квартиры на основе следующих данных:

· объект ремонта;

· работы и расценки;

· цены материалов и нормы расхода.

Состав исходных данных, использованных в примере, приведен ниже.

Рис.12

 

 

Расчет сметы состоит из трех расчетов:

 

· Расчет объема работ;

· Расчет потребности и стоимости материалов;

· Расчет стоимости работ.

 

Ниже приводятся эти расчеты (См. Рис. 13).

 

Рис.13

 

Объем работ рассчитывается инвариантно, т.е. при помощи функции “ЕСЛИ” в зависимости от количества комнат:

=ЕСЛИ(B26=1;B4*C4;B4*C4+B5*C5);

=ЕСЛИ(B27=1;2*d4*(B4+С4);2*(B4+C4)*D4+2*(B5+C5)*D5).

 

Расчет потребности и стоимости материалов рассчитывается по следующим формулам (См. Рис. 14):

Материал Потребность Стоимость
Обои, м =C27*C14 =B30*B15
Клей, кг =C27*C16 =B31*B16
Краска, кг =C26*C17 =B32*B17
Грунтовка, кг =C27*C20 =B33*B20
Бетонит =C27*C21 =B34*B21
Итого материалов   =СУММ(C30:C34)

Рис.14

Расчет стоимости работ приведен ниже (См. Рис. 15).

 

Рис.15


Стоимость ремонта рассчитывается в зависимости от вида ремонта: 1 – стандартный ремонт, 2 – евроремонт.

 

Формулы расчета приведены ниже (См. Рис. 16).



Работы

Последнее изменение этой страницы: 2016-08-11

headinsider.info. Все права принадлежат авторам данных материалов.