Американская ария князя Игоря - Алекс Экслер
Шрифт:
Интервал:
Закладка:
Парень скривился.
- Это я вообще-то отлаживал интерпретатор, - заявил он. - Только благодаря мне теперь по-русски можно что-то выводить. Если ты такой умный, делай свой.
- Вот тут извиняй, - сказал Сергей, - у меня в этом заведении другие задачи. Ты уж как-нибудь сам. Но я тебе, старичок, на будущее рекомендую все-таки не искать легких путей, которые на самом деле очень тяжелые. Это же надо было так интерпретатор изуродовать…
- Во-во, явился умник, - пробурчал парень, вставая из-за своего терминала. - Если ты такой умный, - сказал он, - тогда сам тут и колупайся. Мне идти пора.
- Удачи, - сказал Сергей, надеясь, что дальше он сам как-нибудь разберется.
Парень ушел. Сергей еще два часа отлаживал программу, заменяя все операторы этими идиотскими русскоязычными "аналогами". Но так как аналоги придумывал ушедший начальник машины, а его сознание страдало потерей контакта с окружающей действительностью, Сергею пришлось изрядно попотеть, перебирая кучу самых дурацких вариантов написания тех или иных операторов. Проблема была еще в том, что количество символов в русских и английских названиях операторов должны были совпадать. Поэтому он потратил минут двадцать на то, чтобы выяснить, как в русском варианте должен выглядеть оператор WHILE. Оказалось, что ВХИЛЕ. Определив это, Сергей дал себе страшную клятву, что на следующей день он принесет сюда молоток и даст начальнику машины по башке изо всех сил - ну просто чтобы этот гад больше не смог нести в мир такой программный кошмар.
Впрочем, начальник машины, видимо, почувствовал, что Сергей по отношению к нему почему-то не испытывает должного уважения, не говоря уж о раболепии, поэтому все последующие дни в то время, когда Сергей приходил в машинный зал, парень там не появлялся.
В конце концов Сергей более или менее освоился с этим идиотским интерпретатором, поэтому смог отладить программу и получить результаты. Распечатав текст программы, он посмотрел на него и грустно вздохнул: выдавать эти два листочка за диплом было просто неприлично.
Тогда он занялся тщательным документированием кода: писал в тексте, что означает каждая переменная и где она используется, зачем вводится этот цикл и что служит условием его прекращения, - в общем, на каждую строчку кода сделал две-три строчки комментариев. Текст увеличился до четырех листочков, но на диплом по-прежнему не тянул.
С этим надо что-то делать, решил Сергей, после чего взялся за код, засучив рукава. Он ввел штук двадцать новых переменных и констант, а потом начал набивать программу совершенно бессмысленными процедурами и циклами, которые занимались решением глубоко личных задач - например, подбором результата вычисления корня из заданного числа путем его подгонки к результату возведения в квадрат стартового числа, постепенно увеличивающегося на сотую долю. Также в текст вошла любимая Сергеем процедура расчета биоритмов, а потом, раздухарившись, Сергей добавил в код еще и классную процедуру очень непростого расчета движения Луны - туда входил прелестный полином, который сразу стал жемчужиной этой многострадальной программы. Одновременно приходилось следить, чтобы все эти вскипающие то здесь, то там процедуры и циклы не мешали выполнению главного уравнения и при этом смотрелись солидно и внушительно. После этих шаманских действий программа уже стала походить на диплом - аж десять страниц кода.
Далее Сергей вспомнил об обычных школьных ухищрениях, которые всегда используются в подобных случаях: поля сверху, снизу, слева и справа на страницах нужно увеличить в 3-5 раз, шрифт увеличить до 14 кегля, а расстояние между строк сделать через три интервала. Распечатал. Программа теперь занимала тридцать шесть страниц, и ее уже было не стыдно показать кому угодно - разумеется, при условии, что этот человек ни черта не понимает в программировании.
Впрочем, специалисты текст также оценили - Сергей показал его знакомому студенту, с которым они сдружились на вычислительном центре института, и тот, посмотрев код, ржал минут двадцать.
На все эти манипуляции ушло не больше недели, а до окончания диплома оставалось больше двух месяцев. Тогда Сергей решил для красоты еще и графики по результатам построить. Но выяснилось, что машина не имеет графического режима как класса - только текстовый. Ну, текстовый так текстовый, решил Сергей, после чего сделал несколько листов с распечатками графиков, которые создавались с помощью псевдографических символов.
Еще пара дней ушла на то, чтобы привести текст программы в божеский вид со стандартными англоязычными операторами, - не показывать же на дипломе все эти дикие ВХИЛЕ и ВРИТЕЛН, - после чего диплом был готов.
Начальник отдела "ящика", посмотрев на распечатки, долго довольно качал головой и приговаривал: "Можешь ведь, когда хочешь". А потом добрался до графиков и спросил:
- Что это такое?
- Это графики, - пояснил Сергей, слегка удивившись. Начальник вообще производил впечатление вполне адекватного человека, хотя и ничего не понимал в программировании.
- Я понимаю, что графики, - сказал начальник. - Но наша машина не умеет делать графики. Как класс.
- У нее нет графического режима, - объяснил Сергей. - А это - графики, сделанные в текстовом режиме с использованием символов псевдографики. Плавную кривую я построить не могу, а поставить точки звездочками - запросто. Это же элементарная задача.
- Михаил, - громовым голосом сказал начальник на весь отдел, - подойдите ко мне!
Из-за стола у окна поднялся Миша - ведущий программист отдела - и подошел к начальнику.
- Это что? - так же громко спросил начальник, показывая графики Сергея.
- Какие-то графики, - честно отметил Михаил и пожал плечами - мол, я-то тут при чем.
- Эти графики, - сказал начальник, - сделаны на нашей машине. У нас. В институте.
- Не может быть, - твердо сказал Миша. - Наша машина не умеет делать графики.
- У нее нет графического режима, - терпеливо повторил Сергей. - А это - графики, сделанные в текстовом режиме с использованием символов псевдографики.
- Как это? - удивился Миша.
- Да просто точки проставлены звездочками, - объяснил Сергей. - По горизонтали в первой строчке делаешь одну ось, другую ось пускаешь по вертикали - одно деление на строку. Звездочка показывает значение: чтобы ее поставить куда нужно, значение превращается в пробелы. Вот и все.
- Понял? - спросил начальник Мишу.
- Ну, в общих чертах, - ответил Миша, всем своим видом показывая, что на фразе "наша машина не умеет строить графики" он будет стоять до конца.
- Короче говоря, - сказал начальник Сергею, - иди за стол к Мише и подробно объясни ему, как строить эти графики. Они нам нужны позарез.
С графиками Сергей и Миша возились три дня. Правда, Миша действительно врубился, и они вдвоем сделали программу построения довольно сложного графика с изменяющимся масштабом.
После этого у Сергея настали тяжелые времена. Начальник при каждой встрече с ним начинал плотоядно улыбаться и все время заводил разговор о том, что хорошо бы Сергею прийти поработать в их отдел. Конечно, сначала он будет младшим специалистом, но это очень ненадолго, обещал начальник. Кроме того, ему сразу выбьют ставку зама главного программиста - с прицелом, пояснил начальник, на должность главного программиста отдела, что дает неслыханные преференции и гигантскую зарплату - сразу в 250 рублей в месяц, ибо на оборонку, родимую, работаем.
Сергей же, поработав в этом отделе, четко понимал, что такого количества чая каждый день его организм не выдержит, а заказы и комбидресы его не интересовали по определению. Так что на все призывы начальника он отвечал крайне уклончиво, намекая на то, что, вообще-то, после института собирался в армию офицером, а на самом деле вообще не планировал работать в "ящиках" - ему интереснее было заниматься совершенно другими вещами.
Чтобы избежать всех этих разговоров, Сергей перестал ходить в "ящик" и пару месяцев до защиты изучал графический режим Turbo Pascal на персональной XT-ке близкого друга, которая ему досталась от американского родственника.
Диплом он защитил на пятерку. Комиссия была погребена под различными программерскими терминами, начальник институтского вычислительного центра, который из уважения к Сергею также пришел на защиту, тащился от упоминаний языка Modula 2, о котором он много слышал, но никогда и в глаза не видел, а когда Сергей, распалившись, начал доказывать комиссии, что это полная глупость - писать программы для ПЗУ крылатых ракет на языке высокого уровня, когда тут явно нужно использовать только Assembler, - комиссия совсем заскучала и председатель объявил, что диплом уже защищен, потому что никаких вопросов у комиссии нет и быть не может. Так что, молодой человек, сказал председатель, вот вам пятерка - и вперед, шуруйте повышать обороноспособность Родины.
После этого Сергей с большим облегчением выяснил, что обороноспособность Родины его не ждет. Родина в начале девяностых вообще переживала тяжелые времена разрушения производства и военно-промышленного комплекса, поэтому выпущенных из института молодых специалистов уже точно никто не ждал - в "ящиках" молились, чтобы избежать сокращений уже имеющихся работников. Так что Сергею выдали диплом и сказали, что если он будет настаивать, то его куда-нибудь все-таки распределят. Может быть. Но если он не будет настаивать, тогда он может катиться на все четыре стороны. Вот эти все четыре стороны как нельзя лучше отвечали интересам Сергея, и он именно туда и отправился, устроившись на работу программистом в маленькую частную фирму.