Сергей устроился за клавиатурой, положил рядом текст программы и начал вбивать код. После того как все было перенесено, он запустил интерпретатор, и тот тут же выдал ошибку в самой первой строчке программы. Сергей нахмурился. Там точно не было никакой ошибки. Но он на всякий случай попробовал то так, то сяк изменить написание — пробел вставить, «оператор» написать маленькими буквами — мало ли что. Но это не помогало, интерпретатор упорно выдавал ошибку. Пришлось обращаться за помощью к парню, хотя Сергею это делать совершенно не хотелось.

Парень, поправив очки, посмотрел код на экране, торжествующе улыбнулся и сказал:

— Ну так ты «операторы» неправильно пишешь!

— Как это неправильно? — удивился Сергей. — Что там неправильного?

— Ну так у тебя написано CONST, VAR, PROCEDURE, BEGIN, WRITELN и так далее, — так же торжествующе сказал парень, — а так нельзя!

— Вообще-то, Никлаус Вирт, разработчик этого языка, — заметил Сергей, — считает, что именно так эти «операторы» и должны писаться. Впрочем, конечно, может, он ошибается, тогда ты его поправь.

— Чтобы можно было выводить русский текст, — объяснил парень, — нужно эти «операторы» писать по-русски. И переменные все по-русски. Вообще не должно быть никаких латинских символов — тогда интерпретатор не будет ругаться. Пиши КОНСТ, ВАР, ПРОЦЕДУРЕ, БЕГИН, ВРИТЕЛН.

— Ты что, серьезно? — потрясенно спросил Сергей.

Парень сделал гордое выражение на лице.

— Ну так учись, — сказал он. — Что бы ты без меня делал!

— А какой мудак, — все так же потрясенно спросил Сергей, — сотворил такой интерпретатор? Что, нельзя было подключить обе половины кодовой таблицы и при обработке русского просто переключаться на вторую половину? Там же русский только для текстовых переменных нужен. На черта такой геморрой с языком устраивать?

Парень скривился.

— Это я вообще-то отлаживал интерпретатор, — заявил он. — Только благодаря мне теперь по-русски можно что-то выводить. Если ты такой умный, делай свой.

— Вот тут извиняй, — сказал Сергей, — у меня в этом заведении другие задачи. Ты уж как-нибудь сам. Но я тебе, старичок, на будущее рекомендую все-таки не искать легких путей, которые на самом деле очень тяжелые. Это же надо было так интерпретатор изуродовать…

— Во-во, явился умник, — пробурчал парень, вставая из-за своего терминала. — Если ты такой умный, — сказал он, — тогда сам тут и колупайся. Мне идти пора.

— Удачи, — сказал Сергей, надеясь, что дальше он сам как-нибудь разберется.

Парень ушел. Сергей еще два часа отлаживал программу, заменяя все операторы этими идиотскими русскоязычными «аналогами». Но так как аналоги придумывал ушедший начальник машины, а его сознание страдало потерей контакта с окружающей действительностью, Сергею пришлось изрядно попотеть, перебирая кучу самых дурацких вариантов написания тех или иных операторов. Проблема была еще в том, что количество символов в русских и английских названиях операторов должны были совпадать. Поэтому он потратил минут двадцать на то, чтобы выяснить, как в русском варианте должен выглядеть оператор WHILE. Оказалось, что ВХИЛЕ. Определив это, Сергей дал себе страшную клятву, что на следующей день он принесет сюда молоток и даст начальнику машины по башке изо всех сил — ну просто чтобы этот гад больше не смог нести в мир такой программный кошмар.

Впрочем, начальник машины, видимо, почувствовал, что Сергей по отношению к нему почему-то не испытывает должного уважения, не говоря уж о раболепии, поэтому все последующие дни в то время, когда Сергей приходил в машинный зал, парень там не появлялся.

В конце концов Сергей более или менее освоился с этим идиотским интерпретатором, поэтому смог отладить программу и получить результаты. Распечатав текст программы, он посмотрел на него и грустно вздохнул: выдавать эти два листочка за диплом было просто неприлично.

Тогда он занялся тщательным документированием кода: писал в тексте, что означает каждая переменная и где она используется, зачем вводится этот цикл и что служит условием его прекращения, — в общем, на каждую строчку кода сделал две-три строчки комментариев. Текст увеличился до четырех листочков, но на диплом по-прежнему не тянул.

С этим надо что-то делать, решил Сергей, после чего взялся за код, засучив рукава. Он ввел штук двадцать новых переменных и констант, а потом начал набивать программу совершенно бессмысленными процедурами и циклами, которые занимались решением глубоко личных задач — например, подбором результата вычисления корня из заданного числа путем его подгонки к результату возведения в квадрат стартового числа, постепенно увеличивающегося на сотую долю. Также в текст вошла любимая Сергеем процедура расчета биоритмов, а потом, раздухарившись, Сергей добавил в код еще и классную процедуру очень непростого расчета движения Луны — туда входил прелестный полином, который сразу стал жемчужиной этой многострадальной программы. Одновременно приходилось следить, чтобы все эти вскипающие то здесь, то там процедуры и циклы не мешали выполнению главного уравнения и при этом смотрелись солидно и внушительно. После этих шаманских действий программа уже стала походить на диплом — аж десять страниц кода.

Далее Сергей вспомнил об обычных школьных ухищрениях, которые всегда используются в подобных случаях: поля сверху, снизу, слева и справа на страницах нужно увеличить в 3–5 раз, шрифт увеличить до 14 кегля, а расстояние между строк сделать через три интервала. Распечатал. Программа теперь занимала тридцать шесть страниц, и ее уже было не стыдно показать кому угодно — разумеется, при условии, что этот человек ни черта не понимает в программировании.

Впрочем, специалисты текст также оценили — Сергей показал его знакомому студенту, с которым они сдружились на вычислительном центре института, и тот, посмотрев код, ржал минут двадцать.

На все эти манипуляции ушло не больше недели, а до окончания диплома оставалось больше двух месяцев. Тогда Сергей решил для красоты еще и графики по результатам построить. Но выяснилось, что машина не имеет графического режима как класса — только текстовый. Ну, текстовый так текстовый, решил Сергей, после чего сделал несколько листов с распечатками графиков, которые создавались с помощью псевдографических символов.

Еще пара дней ушла на то, чтобы привести текст программы в божеский вид со стандартными англоязычными операторами, — не показывать же на дипломе все эти дикие ВХИЛЕ и ВРИТЕЛН, — после чего диплом был готов.

Начальник отдела «ящика», посмотрев на распечатки, долго довольно качал головой и приговаривал: «Можешь ведь, когда хочешь». А потом добрался до графиков и спросил:

— Что это такое?

— Это графики, — пояснил Сергей, слегка удивившись. Начальник вообще производил впечатление вполне адекватного человека, хотя и ничего не понимал в программировании.

— Я понимаю, что графики, — сказал начальник. — Но наша машина не умеет делать графики. Как класс.

— У нее нет графического режима, — объяснил Сергей. — А это — графики, сделанные в текстовом режиме с использованием символов псевдографики. Плавную кривую я построить не могу, а поставить точки звездочками — запросто. Это же элементарная задача.

— Михаил, — громовым голосом сказал начальник на весь отдел, — подойдите ко мне!

Из-за стола у окна поднялся Миша — ведущий программист отдела — и подошел к начальнику.

— Это что? — так же громко спросил начальник, показывая графики Сергея.

— Какие-то графики, — честно отметил Михаил и пожал плечами — мол, я-то тут при чем.

— Эти графики, — сказал начальник, — сделаны на нашей машине. У нас. В институте.

— Не может быть, — твердо сказал Миша. — Наша машина не умеет делать графики.

— У нее нет графического режима, — терпеливо повторил Сергей. — А это — графики, сделанные в текстовом режиме с использованием символов псевдографики.

— Как это? — удивился Миша.

— Да просто точки проставлены звездочками, — объяснил Сергей. — По горизонтали в первой строчке делаешь одну ось, другую ось пускаешь по вертикали — одно деление на строку. Звездочка показывает значение: чтобы ее поставить куда нужно, значение превращается в пробелы. Вот и все.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату