Этап. Разработка пользовательского интерфейса 4 страница

Вычислить уровень инфляции, которая вычисляется по формуле: R=цены текущего периода-цены прошлого периода/цены прошлого периода*100%, если известны: a - цены текущего периода; b - цены прошлого периода; где R-уровень инфляции.
Подсчитать скорость обращения денег (v) в кругообороте дохо­дов, которая вычисляется по формуле: V=P*S/M где M=38526000 - предложение денег; P=12865.7 - средняя цена товаров; S=2976 - общий объём товаров.
Подсчитать средние общие издержки фирмы, используя формулы: A=F+V, F=T/Q, V=N/Q где А - средние общие издержки фирмы; F - средние постоянные; V - средние переменные; T - сумма постоянных издержек; N - сумма переменных издержек; Q - количество произведенной продукции.
Вычислить темп инфляции этого года по формуле: T=(IN-IP)*100/IP где IN - индекс цен этого года=113.6; IP - индекс цен прошедшего года=118.3; Ответ должен быть в процентах.
Вычислить показатель ценовой эластичности спроса Ep, исполь­зуя следующую формулу: Ep=(Q1-Q2)/(P1-P2), где Q1,Q2 - величина спроca (%); P1, P2 - прирост цены (%).

 

Продолжение таблицы 14

Рассчитать валовые издержки по формуле: TC=FC+VC где TC - валовые издержки; FC – постоянные издержки; VC - переменные издержки. Рассчитать прибыль фирмы по формуле: P=C-((A+Z1+Z2)/B) где A – амортизация; B – продукция; C – цена; P – прибыль; Z1 - постоянные издержки; Z2 - переменные издержки.
Какой доход получит владелец акции, если ее номинальная сто­имость составляет 250 р., цена приобретения - 1000 р., а диви­денд - 100 р. Y=(D*100)/P где Y-доход на акцию; D-дивиденд; P-цена приобретения.

 

2.8 Условный оператор

 

Условный оператор VBA позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор – это средство ветвления вычислительного процесса.

В VBA существует 2 типа условного оператора: линейный и блочный.

1 Линейный условный оператор используется для того, чтобы выполнить какой-либо один оператор, если некоторое условие будет истинным.

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

Структура безальтернативного условного оператора (сокращенный вариант):

If <условие> Then <оператор 1>

Структура альтернативного условного оператора (полный вариант):

If <условие> Then <оператор 1> Else <оператор 2>

где

If, Then, Else - зарезервированные слова (если, то, иначе);

<условие> - произвольное выражение логического типа;

<оператор 1>, <оператор 2> - любые операторы языка VBA.

Работа. Вначале вычисляется условное выражение <условие>. Если результат есть True (истина), то выполняется <оператор 1>, а <оператор 2> пропускается. Если результат есть False (ложь), наоборот, <оператор 1> пропускается, а выполняется <оператор 2>.

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

Структура безальтернативного блочного оператора (сокращенный вариант)

If <условие> Then

<оператор1>

<оператор2>

…………….

<оператор n>

End If

где

End If - указывает на окончание блока оператора If.

Структура альтернативного блочного оператора:

If <условие> Then

<оператор1>

<оператор2>

…………….

<оператор n>

Else

<оператор1>

<оператор2>

…………….

<оператор n>

End If

Пример 1.

Постановка задачи. Создать в стандартном модуле пользовательскую процедуру вычисления уравнения вида ax2 + bx + c = 0.

Технология выполнения задания:

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

a, b, c Î R

Результат: х1, х2 Î R.

2 Набрать в стандартном модуле проекта следующую пользовательскую процедуру:

Private Sub yravnenie ()

a = InputBox("a=", a)

b = InputBox("b=", b)

c = InputBox("c=", c)

d = b ^ 2 - 4 * a * c

If d >= 0 Then

x1 = (-b + Sqr(d)) / (2 * a)

x2 = (-b - Sqr(d)) / (2 * a)

MsgBox (x1)

MsgBox (x2)

Else

MsgBox ("Решений нет")

End If

End Sub

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

Альтернативный блочный оператор If применяется в тех случаях, когда при выполнении условия необходимо осуществить один набор программных операторов, а при невыполнении – другой.

Операторы IF могут быть вложенными друг в друга. Такое вложение операторов применяется, если нужно проверить какое-либо условие при другом условии, которое является истинным.

Формат вложенного оператора If:

If <условие1> Then

If <условие2> Then

<оператор1>

<оператор2>

…………….

<оператор n>

Else

<оператор1>

<оператор2>

…………….

<оператор n>

End If

End If

Пример 2.

Постановка задачи. Создать в стандартном модуле пользовательскую функцию нахождения максимального среди трех заданных чисел y1 = a+2*b; y2 = a*b+c; y3 = c2 + 1.

Технология выполнения задания:

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

a, b, c Î R

Результат: Max Î R.

2 Набрать в стандартном модуле проекта следующую пользовательскую функцию:

Function Max(a,b,c)

y1 = a+2*b

y2 = a*b+c

y3 = c^2+1

If y1 > y2 Then

If y1 > y3 Then y = y1 Else y = y3

Else

If y2 > y3 Then y = y2 Else y = y3

End If

End Function

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

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

В VBA предусмотрена конструкция для работы с несколькими операторами If. Эти операторы применяются в случаях, когда необходимо рассмотреть еще несколько условий в дополнение к исходному. Для этого служит конструкция: If…Then…ElseIf. В отличие от вложенных операторов конструкция с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие принимает значение False.

Формат записи:

If <условие1> Then

<оператор1>

ElseIf <условие2> Then

<оператор2>

Else

<.оператор3>

EndIf

Пример 3.

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

 

Таблица 15 - Правила расчета комиссионных

Объем продаж за неделю, р. Комиссионные, %
От 0 до 9999
От 10000 до 19999
От 20000 до 39999
Более 40000

Технология выполнения задания:

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

Продажи Î Z.

Результат: Комиссионные Î R.

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

Function Комиссионные (Продажи)

If Продажи <= 9999 Then

Комиссионные = Продажи * 0.08

ElseIf Продажи <= 19999 Then

Комиссионные = Продажи * 0.1

ElseIf Продажи <= 39999 Then

Комиссионные = Продажи * 0.12

Else

Комиссионные = Продажи * 0.14

End If

End Function

3 Вычислить.

Лабораторная работа № 2

Программирование алгоритмов разветвляющейся структуры

Цель: приобретение навыков программирования алгоритмов разветвляющейся структуры с помощью пользовательской подпрограммы-процедуры, где на определенном этапе производится выбор очередного выполняемого оператора в результате анализа некоторых условий. Индивидуальные варианты лабораторной работы № 2 представлены в таблицах 16, 17 (2 часа)

 

Таблица 16

№ В Варианты индивидуальных заданий
Разработать процедуру пользователя, вычисляющую значение функции
a=2.85, b=1.56, x=0.63
a=12.5, b=0.03, x=5.256
a=8.7, b=-5.2, x=8.1

 

 

Продолжение таблицы 16

x=1.204, a=0.8
a=3.08, x=-0.004
a=16.01, b=18.1, x=5.93

 

Продолжение таблицы 16

a=7.02, b=16.02, x=1.085
x=2.4, a=2.65, b=4.24, c=1.83
a=0.36, b=1.18, x=1.16
x=0.12, a=0.111, b=0.348

 

Продолжение таблицы 16

x=-0.37

Таблица 17

№ В Варианты индивидуальных заданий
Разработать экономическую функцию пользователя
Вычислить надбавку к зарплате сотрудника предприятия в зависимости от стажа его работы. Значения рассчитать по формулам: Стаж работы = (Текущая дата – Дата поступления на работу)/365. Результат округлить до целого. Значение зарплаты подобрать самостоятельно. Надбавка =
Вычислить годовой подоходный налог с физических лиц. Принята следующая налоговая сетка:
Доход % налога
от: до:
12%
18%
25%
и выше 35%

 

Менеджеру по продажам необходимо разработать функцию, позволяющую рассчитывать комиссионные. Процент комиссионных зависит от объема проданного товара и начисляется по следующему правилу, представленному в таблице
Объем продаж за неделю, р. Комиссионные, %
От 0 до 29 999
От 30 000 до 59 999 4,5
От 60 000 до 119 999 6,8
Свыше 120 000 7,4

 

Вычислить сдельную зарплату работника, а также сумму налога и сумму на руки. Значения рассчитать по формулам: <зарплата> = <обработано деталей> * <стоимость работы> - <деталей брака>*<стоимость детали>. Налог исчисляется в зависимости от зарплаты: если она выше 5000 р. – налог составляет 20%, если нет – 13%.
Стоимость работы:
Стоимость детали:

 

 

Продолжение таблицы 17

Вычислить эффект мультипликатора (M) по формуле M=Q/D, где Q - объем производства; D - национальный доход. В зависимости от результата вывести на экран следующие сообщения: для получения высоких результатов необходимо повысить объёмы производства (M=1); необходимо снизить объём национального дохода (M<1); вы добились успехов: эффект мультипликатора работает (M>1).
Вычислить зарплату с учетом увеличивающегося подоходного налога и числа детей. Значения рассчитать по формулам: <сумма обложения>=<доход>-<детей>*<миним.зарплата> <налог>=<процент налога>*<сумма обложения>. <сумма на руки> = <сумма обложения> – <налог> Процентная ставка налога
Доход, р. % налога
от 0 до 1 999
от 2000 до 3 999
от 4000 до 5 999
от 6000 до 9 999
свыше 10 000

 

Составить программу, позволяющую произвести расчет зарп­латы медсестры кардиологического отделения с окладом 1 категории по единой тарифной сетке, при условии, что если количество отработанных часов (t) равно 160, то z=1345.5*160-(s+k-75900)*12%-1%-1%-5.4%, иначе z=1345.5*t-(s+k-75900)*12%-1%, где z - зарплата; s - оклад; к - уральский коэффициент.
Банковский процент зависит от величины вклада следующим образом:
Процент 10% 12% 14% 17% 20%
Вклад до 10000 от 10000 до 20000 от 20000 до 30000 от 30000 до 40000 свыше 40000

 

 

 

Продолжение таблицы 17

С помощью мультипликатора Кейнса рассчитать величину ин­вестиций в данный период. k=1/(1-mc), если mc=1, то k=1/ms I=K/MS, где I - инвестиции; ms - склонность к сбережениям: ms = (s2-s1)/(y2-y1), (s2-s1) - изменение величины сбережений; y2-y1 - изменение величины дохода; k - мультипликатор Кейнса: k =1/ms =1/(1-mc); mc - склонность к потреблению: mc =(c2-c1)/(y2-y1); (c2-c1) - изменение расходов на потребление.
Рассчитать годовой экономический эффект G, G = [(S1+E*K1)-(S2+E*K2)]*O, если цена реализации единицы продукции в новом варианте - P2 равна цене реализации единицы продукции в базисном варианте - P1, иначе G = [(S1+E*K1)-(S2+E*K2)+(P2-P1)]*O, где S1, S2 - себестоимость единицы продукции по базисному и новому варианту; K1, K2 - удельные капитальные вложения в базисном и новом варианте; E - нормативный коэффициент эффективности капитальных вложений; O - объём применений результатов научных исследований.
Определить цену продажи 10000 единиц продукции, если известны затраты на их производство; причем, если себестоимость 1 единицы < 600 рублей, то надбавка составит 300 рублей, если себестоимость 1 единицы продукции будет >= 600 рублей, то продавать будут на 400 рублей дороже. Формула: себестоимость 1 единицы = общая сумма затрат/кол-во единиц, где S - себестоимость 1 единицы; Z - затраты; Zp - цена продажи 1 единицы.
Некоторым категориям жильцов положена скидка при оплате квартплаты: инвалидам – 70%, участникам войны – 50%, многодетным – 25%. Номинальная квартплата известна. Вычислить квартплату.
На фирме производство характеризуется следующими показа­телями а = 167, р = 12, б = 1654, с1 = 165, т = 154, ц = 176 натуральных еди­ниц. Однако произошло сокращение производства. Если к1 меньше 1, тогда прибыль рассчитать по формуле: р = ц-((а+с1+т)/(б*к1)), в противном случае правительством повышаются нормы амортизован­ных списаний, следовательно прибыль рассчитывается по формуле: р = ц-((а*р+с1+т*k1)/(k1*б)).

 

 

Продолжение таблицы 17

Выполнить расчеты по страхованию дома от пожара на садовом участке. Страховой взнос равен 3% от стоимости кирпичного дома. Если дом деревянный, страховка составляет 5% при наличии в непосредственной близости (на расстоянии до 20 м) водоема. Если ближайший водоем находится на расстоянии до 400 м – страховка деревянного дома увеличивается до 7%, если до 2000 м – до 10%, если более – до 15%.
На фирме производство характеризуется следующими показателями: С - цена единицы продукции, С=100000; А - амортизационные отчисления, А=200; з.пост - постоянные затраты, з.пост = 50; з.пер - переменные затраты, з.пер = 100; В - выпуск продукции, В = 100. Рассчитать прибыль производства П, если при коэффициенте сокращения производства k=0.7 П = С-(А+з.пост+з.пер*k)/k*В, иначе П = С-(k*А+з.пост+0.7*з.пер)/0.7*В
Определить минимальную стоимость билета для пассажира, следующего на заданное расстояние, стоимость билета с учетом выбранного вида вагона и поезда. Перемещение на скором поезде увеличивает стоимость билета на 20%, размещение в плацкартном вагоне – на 25%, а в купейном – на 35%. Далее следует установить окончательную стоимость билета. Его стоимость может быть снижена, если пассажир следует на дальнее расстояние. При длине маршрута от 500 до 1500 км скидка составляет 5% от полной стоимости билета, при расстоянии до 5000 км – 7%, если расстояние больше – 10%.
Найти значение кредита в рублях, который может выдать банк заемщику. Для ежемесячного дохода от $100 кредит может составить 1000% от заработка, для дохода от $500 – 3000%, для дохода от $1000 – 6000% и от $3000 – 7000%.
Расчет с постоянными клиентами-покупателями, которым товар отпускается в кредит. Вычислить величину кредита, которая зависит от его длительности. При сроке свыше 5-и дней – это 2% от исходной стоимости, свыше 10-и – 4%, свыше 15-и и еще по 1% за каждый день после 15-го. При задержке в оплате свыше 20-го дня должно появляться слово «Звонить».
Расчет страхования имущества от кражи, пожара и протечки. Клиент может застраховаться на любую Страховую сумму, для чего делает Страховой взнос в размере 10% от страховой суммы, если имущество страхуется от пожара, 8% - если от протечки, 7% - от кражи. Страховка от кражи снижается на 1% при наличии стальной двери и еще на 2%, если в подъезде имеется вахтер.

 

Продолжение таблицы 17

Расчет страхования жизни. Клиент может застраховаться на любую Страховую сумму, для чего делает Взнос в размере, зависящем от возраста застрахованного (до года – 10% от страховой суммы, от года до пяти – 8%, от пяти до 20 лет – 5%, от 20 до 45 лет -3%, от 45 до 50 лет – 5%, от 50 до 65 лет – 8%. Лица старше 65 лет вносят 10% и еще по одному проценту за каждый год после 65-ти лет.

 

2.9 Оператор выбора (переключатель)

 

С помощью оператора выбора VBA можно выбрать вариант из любого количества вариантов. Параметром, по которому осуществляется выбор, служит ключ выбора.

Структура оператора выбора:

Select Case <ключ_выбора>

Case Значение_1

<Оператор1>

список выбора
Case Значение_2

<Оператор2>

.…………………

Case Значение_n (константа)

<Оператор n>

End Select

где

Select, Case, End - зарезервированные слова VBA (выбирать, случай,

конец);

<ключ_выбора> - переключатель варианта (некоторое выражение);

<список_выбора> - одна или более конструкций вида: <константа_выбора>

<оператор>;

Значение_n - <константа_выбора>того же типа,

что и выражение <ключ_выбора>;

<операторы> - произвольные операторы VBA, выполняемые

при совпадении Значения_n и значения

ключа_выбора.

Работа оператора выбора.

Вначале вычисляется значение выражения <ключ_выбора>,а затем в последовательности операторов <список_выбора>отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за End Select.

В операторе Select Case можно использовать операции отношения. Для этого надо включить в выражение ключевое слово Is или ключевое слово To.

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

Ключевое слово To задает диапазон значений.

Пример 1.

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

Технология выполнения задания:

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

х ÎZ.

2 Набрать в стандартном модуле проекта следующую пользовательскую процедуру:

Sub DemoSelect ()

Dim x As Integer

x = InputBox ("введите целое число")

Select Case x

Case 8 To 10

MsgBox ("Отлично")

Case 6 To 7

MsgBox ("Хорошо")

Case 4 To 5

MsgBox ("Удовлетворительно")

Case Is < 4

MsgBox ("Неудовлетворительно")

End Select

End Sub

3 Запустить подпрограмму-процедуру.

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

Лабораторная работа № 3

Программирование алгоритмов ветвлений со многими вариантами

Цель: приобретение навыков программирования алгоритмов ветвлений со многими вариантами с помощью пользовательской подпрограммы-функции, позволяющей выбрать необходимый вариант из любого предложенного количества вариантов. Индивидуальные варианты лабораторной работы № 3 представлены в таблице 18 (2 часа)

 

Таблица 18

№ В Варианты индивидуальных заданий
Разработать функцию пользователя, позволяющую выбрать вариант из любого количества вариантов
С клавиатуры вводятся цифры (от 1 до 7). Составить программу, выводящую на экран название дня недели соответственно введенной цифре. Если введенная цифра меньше 1 или больше 7, то выводится надпись «нет соответствия».
     

 

Продолжение таблицы 18

C клавиатуры вводятся числа (от 1 до 12). Составить программу, выводящую на экран название месяца соответственно введенному числу. Если число меньше 1 или больше 8, то выводится надпись "нет соответствия".
С клавиатуры вводится число (n>0). Составить программу, выводящую на экран надпись: "…эти порядки существовали n лет". Слово лет должно изменяться на год, года в соответствии с правилами русского языка.
С клавиатуры вводится числа (от 1 до 25). Составить программу, выводящую на экран название возрастной категории соответствующей данному числу: 0-1 грудной возраст 2-3 ясельный 4-6 дошкольный 7-10 младший школьный 11-16 подростковый 17 допризывной 18 призывной 25 студенческий.
С клавиатуры вводятся числа (от 0 до 99). Составить программу, выводящую на экран название региона России, соответствующее заданному числу: 56 – Оренбургская область; 77 – Московская обл. и т.д. Если число отсутствует в списке, то вывести надпись “нет данных”.
С клавиатуры вводятся числа (от 0 до 99). Составить программу, выводящую на экран название страны по международной классификации (штрих-код): 01-03 – США + Канада, 46 – Россия и т.д.
Составить программу определения названия специальности Финансово-экономического факультета по ее числовому коду. Например, 351200 – Налоги и налогообложение и т.д.
Составить программу, выводящую на экран характеристики компьютеров относящихся к n-ому поколению. Число n вводится при помощи клавиатуры.
Составить программу, выводящую на экран сроки выполнения лабораторной работы в зависимости от её номера.
С клавиатуры вводятся числа (от 0 до 10). Составить программу, выводящую на экран английские названия, соответствующие вводимому числу.
Составить программу, сопоставляющую арабским цифрам – римские. Предусмотреть вариант отсутствия соответствия.
Составить программу, выводящую на экран названия знаков зодиака, в соответствии с вводимым номером месяца. Если вводимое число не принадлежит диапазону 0 – 12, то вывести надпись “нет знака”.

 

Продолжение таблицы 18

Расположить районы Оренбургской области в алфавитном порядке и пронумеровать их. Составить программу, выводящую на экран название района, в зависимости от введенного числа.
Написать программу, определяющую время суток по вводимому с клавиатуры часу, 8 – утро, 21 – вечер и т.д.
Для числа k напечатать фразу: “Мы нашли k грибов” согласовав окончание слова “гриб” с числом k.
Составить программу, выводящую на экран названия телеканалов. 1 – ОРТ, 2 – РТР и т.д.
Составить программу, выводящую название ноты в соответствии с ее порядковым номером.
Составить программу, выводящую на экран номера телефонов экстренного вызова 01, 02 и т.д.
Напишите программу-модель анализа пожарного датчика в помещении, которая выводит сообщение «пожароопасная ситуация», если температура (в вашей модели она будет вводиться с клавиатуры) в комнате превысила 600 0С.
Составить программу, выводящую расшифровку телефонных кодов городов России в зависимости от введенного числа n.

 

2.10 Операторы цикла

 

В VBA существуют два основных типа циклов – циклы со счетчиком (параметрические) и циклы с условием (итерационные).

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

Циклы с условием применяются тогда, когда некоторые действия в программе должны повторяться до тех пор, пока выполняется определенное условие.