Использование функции (пример)

Составить таблицу начисления премии по итогам работы сети 4 магазинов за три месяца по следующему правилу:

-если продукции продано на сумму меньше чем 20 тыс. руб. то премия не начисляется.

-если продукции продано на сумму от 20 до 40 тыс. рублей, премия составляет 3% от выручки.

-если продукции продано на сумму от 40 до 80 тыс. рублей, премия составляет 4.5 % от выручки.

-если продукции продано больше чем на 80 тыс. руб. то премия составляет 6.5%. Аналогично первому заданию составим исходную таблицу и создадим кнопку.

Рисунок 5 - Исходная таблица с данными о магазинах

Создадим отдельно функцию «Премия» - начисление премии в зависимости от объема продаж. Для этого ниже процедуры Onclick напишем функцию:

Function Premia(Prodaja as Double) As Double

Select case Prodaja

Case 0 to 20000

Premia = 0

Case 20001 to 40000

Premia = 0.03 * Prodaja

Case 40001 to 80000

Premia = 0.045 * Prodaja

End Select

End Function

Пример еще одной функции:

Function Prem(Prod as Double) as Double Prem = Prod/2

end function

Допустимо объявить функцию ниже по коду, после кода в котором происходит ее вызов. После того, как вы определите функцию в коде, вы сразу можете ее использовать и вызывать непосредственно на листе Calc, например, =Prem(A1).

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

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

Например

Sheet.getCellByPosition(5,i).value = Премия(Sheet.getCellByPosition(4,i).value) или Sheet.getCellByPosition(5,i).value = 100 + Премия(Sheet.getCellByPosition(4,i).value*1.1+5000)

В первом случае в функцию передается значение Sheet.getCellByPosition(4,i).value, и функция возвращает расчетное значение в соответствии с алгоритмом и это значение присваивается Sheet.getCellByPosition(5,i).value.

Во втором случае в функцию передается значение выражения Sheet.getCellByPosition(4,i).value*1.1+5000. Затем функция вычисляется, происходит суммирование со значением 100 и результат помещается в Sheet.getCellByPosition(5,i).value.

Добавьте в редакторе Бэйсика код макроса обработчика onclick2 для реализации задания с использованием функции Премия, то есть реализуйте вызов функции премия, таким образом, чтобы был произведен расчет и полей продажа и полей премия. Очевидно, что поле продажа получена суммированием продаж по месяцам.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: