Если женщина замужем, но на курорте она одна, то Husband для нее понятие VIRTUAL, однако дома, он, конечно, REAL.
Многие женщины хотели бы иметь CHAR (приходящую уборщицу), но чаще всего это остается UNSIGNED мечтой и пахать на кухне и на уборке приходится самой.
Charge может быть STATIC, а вот CURRENT (электрический) — по определению нет.
Особый тип переменной — LOGICAL. Хотя она принимает всего два значения TRUE и FALSE, это не значит, что на основании ее значения можно принимать какие-либо действия. Если MONEY is EMPTY, это еще не значит, что купить новую шляпку невозможно (особенно не советуем высказываться об умственных способностях своей жены, которая все же сделала это).
Примечание: в Male C+ и некоторых диалектах C для решения этой проблемы вводятся дополнительные значения этой переменной, типа ALMOST.TRUE или BETWEEN.TRUE.FALSE. Мы считаем, что в этом нет необходимости, т. к. не решается главная проблема: выбор. Если ваш муж возвращается очень поздно, в подпитии, странно пахнет духами и при этом говорит, что задержался на работе, это может хоть ALMOST.TRUE, хоть ALMOST.FALSE, все равно ничего, кроме скалки, не поможет. Через три месяца после вашей женитьбы жена может принести вам чернокожего младенца. Если при этом она убеждает вас, что ни с кем, кроме вас, последний год в близких отношениях не была, ваша LOVE к ней может заставить считать это и за BETWEEN.TRUE.FALSE и даже за TRUE. Однако вы, вероятней всего, будете единственным в этом убеждении.
2.2. Наборы переменных
Наборы переменных — группа переменных, связанных общими свойствами. К примеру, массив Furniture[] содержит набор мебели, а составная переменна AgeofWomen — возраст женщины. INT LOVE [SEX, Flirt, LOVE] очевидно обозначает набор состояний любви.
3. Операции присваивания
Операции присваивания вообще одни из самых популярных у нас операций. Этим занимаются все, начиная с ваших детей и кончая государством.
Операции присваивания для переменных в общем такие же, как и в обычном C, кроме некоторых неважных случаев для упрощения понимания программ. Примеры:
MONEY = $100то же самое, что MONEY is $100
IF (FOUND)то же самое, что FOUND
STATE is RULEZто же самое, что RULEZ
4. Цикл DO
По замыслу создателей языка, должен быть самым употребительным оператором. Действительно, разве всех нас не учили в детстве, что единственный путь к известности и достатку — труд? Однако многие из нас выросли и нашли разные пути к достатку и без утомительных циклов DO. К примеру, молодая девушка пишет в газеты бесплатных объявлений: «18 лет, обаятельная-привлекательная 90-60-90, без специальных навыков, рассмотрю предложения от $500». Кстати, разберем это объявление на Male C и попробуем сделать выводы.
MONEY is EMPTY;
SEEK (WORK); IF (MONEY $500) BREAK; /*Облом*/
DO {
SEX;
WHILE (HEALTH is SO-SO); }
Is STATE GOOD?
Молодая-привлекательная без особых навыков, но с запросами от $500 может получить только определенную работу, причем весьма интенсивно. При этом, правда, ответ на последний оператор программы остается открытым. Кое-кому нравиться быть «секретуткой».
5. Особые операторы
Смысл особых операторов можно понять из их перевода. Нет смысла перечислять их все, т. к. список существенно зависит от реализации языка. Однако мы разъясним смысл некоторых, используемых в этом руководстве.
SEEK() — поиск. В скобках указывается переменная, по которой ведется поиск. SEEK (Husband) и SEEK (Lover) далеко не одно и то же, хотя, конечно, каждая женщина надеется, что ее муж всегда будет хорошим любовником, а ее любовник наконец разведется с женой и жениться на ней.
FOUND () — найдено! Что найдено, смотрите в скобках. Следующий пример иллюстрирует хорошо известный факт, что искать черную кошку в темной комнате — безнадежное занятие.
DOUBLE Room = Cat = Black;
SEEK (Cat); FOUND (EMPTY);
6. Оператор RETURN
Все возвращается на круги своя. Таким образом, RETURN непосредственно связан с операторами циклов. Пример:
INT Age;
IF (Age > 50) IF (WORK is GOOD !! Alcohol is EMPTY) HEALTH is GOOD;
ELSE HEALTH is BAD;
Age!= RETURN;
DIE;
END;
Конечно, после 50 здоровье уже не то, особенно если вы злоупотребляли. С другой стороны, «Кто не курит и не пьет, тот здоровенький помрёт» — годы не возвратишь.
7. Оператор CONTINUE
Большей частью опять же используется в циклах. Рассмотрим пример:
INT Age;
INT Man;
INT Tired is NO;
IF (Age of Women > 30)
DO { SEX; IF (Man is Tired) { SUX; LOVE is NO;
BREAK;}
CONTINUE; }
Если женщине за тридцать и ее мужу где столько же или больше, то для него начинаются трудные времена. Если он будет постоянно ссылаться на усталость, то женщину ждет облом, неудовлетворенность в любви и вообще SUX. А если не будет, но вы полагаете, что будет RULEZ? А вот и нет. Есть только продолжение, продолжение и продолжение.
8. Оператор SWITCH
Переключаться в жизни необходимо постоянно. И вынуждено, и просто потому, отдых необходим. Следующий пример иллюстрирует тот простой факт, что отдых — смена деятельности.
DOUBLE Relax;
DO {WORK; WHILE (HEALTH is SO-SO)}
SWITCH (MONEY) { CASE ($1000): СANARY; CASE ($500): RelaxHouse;
CASE ($10): BEER;}
HEALTH is GOOD;
Вопрос, как подействуют Канары, Дом Отдыха или пиво на здоровье конкретного индивида, остается открытым. Мы надеемся, что оно улучшиться (даже от пива).
9. Оператор BREAK
BREAK — оператор аварийного выхода, чаще всего в негативном смысле (облом). Разберем пример:
CHAR WORK is Empty;
SEEK (WORK);
FOUND;
SWITCH (MONEY) { CASE ($10/Month): BREAK; CASE ($100/Month):
BREAK;
CASE ($1000/Month): RULEZ; }
Результат поисков работы может быть разным. Если зарплата меньше $1000 в месяц — SUX и BREAK (т. е. облом). Еще пример:
INT Glass;
IF (SUX) { DO Glass BREAK; }
RULEZ;
Рецепт улучшения настроения — битье посуды совершенно непонятен мужчинам. Однако, представьте, что на месте Glass (бокала) могли бы оказаться вы…
10. Оператор GOTO
GOTO — оператор языка, которым пользователи Male C обмениваются с друг другом. Очень удобно: ваш шеф просит вас принести квартальный отчет, а вы посылаете его в $%# до переполнения его стека терпения. Другой случай: даже если вы очень торопитесь, советуем все же воспользоваться переходом, а не бежать сломя голову прямо через дорогу.
В новых веяниях (Male C++) считается, что этот оператор лишний. Однако разберем пример:
#DEFINE HOUSEKEEPING
#INCLUDE WASHING MACHINE
MAIN ()
{ FLOAT Thing is Dirty;
WHILE (Thing) { Wash;BAD; GOTO HELL;}
HELL: Shop !! Barbeshop !! Love-story reading; }
Понятно, что домашняя работа (в частности, стирка) бесконечна, и число грязных вещей (Thing) никогда не кончится. Поэтому необходимо использовать оператор безусловного перехода, которое в данном случае посылает эту работу в HELL. Когда его использовать, зависит от вашего настроения, однако если вы не хотите BAD с вашим мужчиной, старайтесь им не злоупотреблять.
Примечание: некоторые скажут, что в написанном примере можно было воспользоваться оператором BREAK. И что? Вы остановили работу, а не послали ее к черту и вам придется рано или поздно ее продолжить, причем наверняка переменная THING существенно увеличится.
Некоторые могут заметить странное определение метки «черта». Так ведь к черту посылается стирка, а вместо нее предлагается или поход по магазинам, или парикмахерская, или просто чтение любовных романов.
Еще один пример иллюстрирует тот факт, что женщина любит ушами:
CHAR Ask "Do you love me?";
Neverending:
IF (Ask is 'Yes') GOTO Neverending;
11. Условные операторы
Не случайно этот раздел мы отнесли ближе к концу. Смысл этого оператора слишком очевиден: жизнь полна компромиссов и выполнение ваших желаний постоянно наталкивается на массу условий. Надеемся, что наш язык поможет вам в решении ваших проблем. В следующем пункте мы предоставим вам несколько программ для самостоятельного изучения.