Экономический симулятор.
Скопировано из текста журнала Техника Молодёжи №5 за 1988.Предположим, что вы, подобно сотням тысяч советских граждан, получили разрешение на индивидуальную трудовую деятельность, и открыли маленькую пищевую
точку– кафетерий или бутербродную.В ежедневном обороте имеется, для начала, 250 рублей. Каждое утро необходимо съездить на рынок и купить свежих продуктов из расчёта примерно 5 рублей на одного предполагаемого клиента. Чем больше покупаете, тем продукты дешевле: скидка оптовому покупателю – закон рынка. Но если вы приобретёте их больше, чем заглянет к вам посетителей, то назавтра нереализованные товары частично испортятся. Если же еды на всех не хватит, то обиженные вряд ли придут к вам ещё раз. В любом случае вы останетесь в проигрыше, так что надо искать оптимум.
После рынка заезжаете в кооператив по рекламе, которая, как известно, двигатель торговли. Каким образом коллеги кооператоры будут вести свою рекламную атаку на население, не суть важно. Главное – они честно отработают полученные от вас деньги. Впрочем, и у них возможности не безграничны: если репутация вашего заведения подпорчена, то никакой рекламой народ туда не заманишь.
Наконец вы вернулись к себе. Можно заняться приготовлением разносолов и расстегаев, куличей и калачей, карасей в сметане и мясо в горшочках. И, разумеется, безалкогольного сбитня и ячменного кофе. Электричество, газ, вода, бензин (на доставку продуктов) тоже не бесплатны, поэтому придётся добавить к вашим тратам накладные расходы по полтиннику на среднестатистического клиента.
Итак, деньги заплачены, работа идёт полным ходом. А итоги дня определит Его Величество Покупатель.
Постепенно увеличивать доход предприятия за счёт привлечения новых клиентов, при этом соблюдая баланс интересов клиентов и собственной выгоды.
Здесь используется немного модифицированная мной версия программы. Она полностью совпадает с исходной по логике работы, почти полностью по используемым регистрам, но короче на 15 команд.
Регистр | Значение |
---|---|
R0 | Не используется. |
R1 | Рабочий. |
R2 | Рабочий. Будет содержать сумму, потраченную на продукты. |
R3 | Рыночная стоимость для одного клиента без учёта скидки. 5. . |
R4 | Рабочий. В конце игрового дня будет содержать фактическую сумму, затраченную в среднем одним посетителем. |
R5 | Деньги, которые посетитель рассчитывает оставить у вас. 7. . |
R6 | Не используется. |
R7 | Буква E. Получается как 1, К−, ВП, x→П7. |
R8 | Процент, который вы пускаете в оборот от дохода. В оригинале было 3% отчисления на собственные нужды, т. е. используется 100 − 3 = 97%. 0.97 . |
R9 |
Адрес начала дняпрограммы. 70. . |
Ra | Нереализованные остатки продукции. 0. . |
Rb | Если это положительное число, то количество людей, пришедших в кафе, но не обслуженных. Если отрицательное, то количество пустых мест в зале. 0. . |
Rc | Постоянные клиенты. Наша опора. Для начала 30. . |
Rd | Деньги. 250. . |
Re | Адрес процедуры ввода суммы. 72. . |
Пояснение по неиспользуемым регистрам. R6 при написании очень похож на Rb (по крайней мере моим подчерком). А R0 не используется потому, что на ПМК БЗ-34 регистры Re и R0 совмещены. А программа совместима с БЗ-34, т. е. не содержит команд, специфичных для МК-61.
Так же обращаю внимание, что переменные R3, R5, R8, Rc, Rd можно менять (R7, R9, Re менять нельзя, это константы). Для примера, в оригинале R8 использовался для операции косвенного перехода, но если его установить в 0.33333333, то программа тут же становилась не рабочей. В данной версии такой ошибки нет.
Переключатель Р-ГРД-Г в положении Р. Игра начинается командой В/О, С/П. На индикаторе Е. . В регистре Y имеющиеся в наличии 250 рублей. Пора выделять средства на приобретения продуктов. Напомним, что на одного предполагаемого клиента надо потратить 5 рублей. Имеем 30 завсегдатаев, человек 8–10 привлечёт реклама, возможно, 1–2 заглянут с улицы. Выделяем для обслуживания 40 посетителей 200 рублей. 200. , С/П.
Загорается Г. . В регистре Y 64 рубля с копейками (скидка за оптовость была ощутимой). Теперь самое время платить за рекламу. Выделим на это дело, скажем, десятку: 10. , С/П.
На индикаторе С. . А в регистре Y оставшиеся у нас 54 рубля и 14 копеек. Рассчитываем на 40 клиентов, значит, достаточно 20 рублей накладных расходов: 20. , С/П.
ПМК подводит итоги дня. Через некоторое время узнаём, что в кассе теперь 265 рублей 91 копейка (на экранчике Е. в регистре Y – деньги). Обслужили мы, как и намеревались, 40 человек (П→xc). Зато 17 потенциальных клиентов ушли из заведения не солоно хлебавши (П→xb). Это плохо – завтра ни они, ни их друзья и знакомые к нам уже не заглянут. С другой стороны, обеды обошлись едокам по 6 рублей (П→x4), дешевле, чем они рассчитывали, так что добрый слух о нашем кафе тоже распространится. В общем первый день завершился вполне удовлетворительно.
ПМК ждёт новой информации (новый день). Повторим: 200. , С/П, 10. , С/П, 20. , С/П. Результат: 259 рублей 26 копеек. Почему снижение? В регистре Rb – минус 3.795. Почти 4 обеденные порции остались не востребованными, причём большая часть этих продуктов испортилась – остатки полноценной пищи (1.26) располагаются в регистре Ra. В регистре Rc число 36.2, т. е. пообедало у нас всего 36 человек и ещё кто-то перехватил какую-то мелочь. Вот ведь как отыгрались вчерашние обиженные клиенты!
Но продолжим свою трудовую деятельность. Как быть? Неужели репутация кафе упала бесповоротно? Была не была, повторяем прежнюю стратегию: 200. , С/П, 10. , С/П, 20. , С/П. Результат неожиданный: в кассе 274 рубля, стало быть, наблюдался наплыв (а с другой стороны, это естественно, ведь накануне были свободные места). Мы, как и намечали, накормили 40 клиентов… Смотрим Rb. О ужас! Почти столько же ушло ни с чем. Можно закрывать лавочку – завтра никого не будет. Население таких очередей не прощает. По крайней мере в кооперативном секторе.
Перед началом очередной игры нужно будет обнулить регистры Ra, Rb. Задать начальное количество постоянных клиентов в Rc, и прописать начальный баланс в Rd.
# | | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 |
---|---|---|---|---|---|---|---|---|---|---|
00 | | КБП9 | x→П2 | F√ | + | Кx→П1 | КППe | F√ | Ftg-1 | КП→x1 | × |
10 | | 2 | ÷ | П→xc | + | П→xb | − | П→xb | − | П→x5 | × |
20 | | Fx<0 | 23 | Cx | x→П4 | КППe | 2 | × | x→Пb | П→x2 | П→x3 |
30 | | ÷ | П→xa | + | x→Пa | КП→x1 | x→Пc | − | Fx≥0 | 32 | Fπ |
40 | | ÷ | x→Пa | П→x4 | П→xb | П→x2 | + | П→xc | ÷ | x→П4 | ÷ |
50 | | В↑ | П→xc | − | x→Пb | Fx<0 | 62 | /-/ | 3 | ÷ | x→Пa |
60 | | <-> | x→Пc | П→xc | П→x4 | × | П→xd | + | П→x8 | × | x→Пd |
70 | | П→x7 | x→П1 | П→xd | П→x1 | С/П | Кx≥0e | П→xd | <-> | − | Кx≥0e |
80 | | x→Пd | FВx | В/О |