Экономико-математическая модель

Стоимость товара определяется по формуле:

 

 

где St – стоимость товара;

Z – цена единицы товара;

K – количество купленного товара.

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

 

,

 

где Opl – сумма к оплате за купленный товар;

Sk1 – скидка на объем покупки;

Sk2 – скидка на тип покупателя;

Sk3 – скидка на день недели.

Приведенные выше типы скидок можно определить по следующим формулам:

,

где Stпорог – объем покупки (стоимости товара), превышение которого позволяет получить скидку;

P1 – размер скидки на объем покупки в процентах.

 

,

где PT0, PT1, PT2 – размер скидки в процентах на стоимость товара в зависимости от типа покупателя (обычный, постоянный, оптовый соответственно),

T – тип покупателя (0 – обычный, 1 – постоянный, 2 – оптовый соответственно).

 

,

где PПн, PВт, PСр, PЧт, PПт, PСб, PВс – размер скидки в процентах на стоимость товара в зависимости дня недели (понедельник, вторник, среда, четверг, пятница, суббота, воскресенье соответственно).

Dнед – (1 – понедельник, 2 – вторник, 3 – среда, 4 – четверг,
5 – пятница, 6 – суббота, 7 – воскресенье).

 

Алгоритм решения задачи

Решение задачи осуществляется в соответствии с алгоритмом, который приведен на рис. 3.1.

Рис. 3.1 Схема алгоритма работы кассового аппарата

 

Структура данных

Имена переменных, их назначение и типы представлены в таблице 3.1.

Таблица 3.1

Структура данных проекта

Реквизиты Имя переменной Тип данных
Цена CurZena Currency
Стоимость CurSum Currency
К оплате CurOpl Currency
Наличные CurNalch Currency
Сдача CurSdasha Currency
Пороговое значение стоимости CurPorog Currency
Скидка на объем покупки SngSk1 Single
Скидка на тип покупателя SngSk2 Single
Скидка на день недели SngSk3 Single
Количество купленного товара IntKolich Integer
Текущая дата DtmSegodnya Date
Текущее время DtmSejchas Date
Сообщение StrSoobsh String
Сообщение1 StrSoobsh1 String

 

Для отображения на форме текущих времени и даты используются переменные DtmSegodnya, DtmSejchas. Значения переменных CurZena, CurPorog, CurNalch,IntKolich, вводятся с клавиатуры (могут принимать значение при запуске программы на выполнение), а переменные CurSum, CurOpl, CurSdasha являются вычисляемыми. Переменные SngSk2, SngSk2, SngSk3 принимают значение в зависимости от заданных условий или результатов вычислений.

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