- •Лабораторная работа №3
- •Общие рекомендации
- •Пример решения экономической задачи с разветвлением
- •1. Постановка задачи
- •2. Экономико-математическая модель
- •3. Алгоритм решения задачи
- •4. Структура данных
- •5. Интерфейс проекта и пользователя
- •6. Код проекта
- •В результате выполнения процедуры на форме (в текстовом поле TxtОплата) отобразится сумма к оплате за купленный товар с учетом скидок на объем покупки, тип покупателя и день недели.
- •В результате выполнения процедуры на форме (в текстовом поле TxtСдача) отобразится сдача и пользователю будет выдано сообщение о результатах покупки или необходимости доплаты за покупку.
- •7. Реализация проекта
- •8. Анализ проекта
- •9. Выполнение программы и анализ полученных результатов
- •Варианты индивидуальных заданий
- •Контрольные вопросы
Пример решения экономической задачи с разветвлением
1. Постановка задачи
Разработать проект кассового аппарата супермаркета. В проекте предусмотреть организацию следующих скидок:
на объем покупки;
на тип покупателя;
на день недели.
2. Экономико-математическая модель
Стоимость товара определяется по формуле:
где 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. Алгоритм решения задачи
Решение задачи осуществляется в соответствии с алгоритмом, который приведен на рис. 3.1.
Рис. 3.1 Схема алгоритма работы кассового аппарата
4. Структура данных
Имена переменных, их назначение и типы представлены в таблице 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.
