Вернувшись в общагу, Витя всерьёз задумался над исполнением своей детской мечты — приобретением мотоцикла, 16 лет ему уже есть, сдать на права никаких проблем не составляет, осталось выбрать мотоцикл и накопить деньги. Самым доступным является “Восход”, но предпочтительнее был бы “ИЖ Планета-2” с надёжным, сравнительно низкооборотным двигателем и большими колёсами, хотя найти его труднее и стоит он дороже, 650 рублей против 400 за “Восход”.
За первый семестр он накопил всего 200 рублей, правда баловал младших братьев, особенно Вову, частыми угощениями и подарками, при этом денег от родителей не брал вообще. Увеличить темп накоплений можно, либо снизив расходы, либо увеличив доходы, второй путь предпочтительнее. Интересно, могу ли я в одиночку разгрузить вагон с сахаром? В нём примерно 1000 мешков по 50 кг, если тратить минуту на мешок, то для разгрузки потребуется 17 часов, что неприемлемо, нужно работать, как минимум, вдвое быстрее. Завтра как раз выходной, вот схожу и проверю.
В субботу никого из студентов уговорить пойти поработать не удалось, пришлось отправиться на грузовую станцию в одиночку. Повезло сразу, на разгрузку подогнали вагон с сахаром и у знакомых грузчиков в бригаде был некомплект. Попробовал варианты работы в разном темпе и убедился, что 30 метров с мешком на плечах лёгким бегом и возврат порожняком чуть быстрее вполне вписываются в полминуты на мешок, в принципе можно было бы и быстрее, но будет непонятна реакция свидетелей такого трудового подвига.
В воскресенье сознательно не стал приглашать на работу никого из своих. На станции под разгрузку стояло два вагона: с сахаром в мешках и яблоками в ящиках, и имелась в боевой готовности полная бригада грузчиков. Витя предложил взять на себя вагон с сахаром, а бригаде соответственно достанутся яблоки. Получил отказ по простой и логичной причине — разгрузка сахара стоит дороже, озвучил его новичок в бригаде, крупный небритый мужик в телогрейке: Ты, пацан, слишком борзый, хочешь нагреть нас на два червонца, а пупок не развяжется грузить в одиночку?
— Нет, с пупком у меня всё в порядке, — ответил Витя и, подумав, добавил. — Разницу в двадцать рублей я вам компенсирую.
— Компенсируешь, говоришь, только можно ли тебе верить, сосунок, — снова тот же новичок.
— Цену моих слов спроси у своих, ты здесь человек новый, и не нарывайся.
— Что!? Вижу, тебя давно не учили со старшими правильно разговаривать, — он оглянулся на других грузчиков, ожидая поддержку. Однако таковой не увидел.
— Вася, ты зря кипиш поднимаешь, за полгода Витёк слово ни разу не нарушил, и тянешь ты на него напрасно, были тут у нас два пришлых орла, чем-то он им не понравился, — бригадир Иван Петрович, которого Витино предложение вполне устраивало, предпочёл сразу погасить назревающий конфликт, тем более, что прекрасно представлял, чем он закончится.
— И что с этого? — не унимался Вася.
— Унесли их секунд через пять в медпункт, правда, там откачали довольно быстро.
— Я это не они, — пробурчал несостоявшийся дебошир. — Боксёр, что ли?
В конечном счёте, вопрос был решён полюбовно и предложение принято. Во время своего перекура недовольный Вася видел, как молодой парень бегом относит на склад мешок с сахаром и ещё быстрее возвращается обратно. Понаблюдав несколько минут за этой мельтешнёй, он понял, что его бригадир мужик правильный и плохого не посоветует.
Эксперимент с разгрузкой вагона в одиночку вполне удался, Витя управился даже немного быстрее, чем планировал. Свой вагон бригада разгрузила раньше и перед уходом даже угостила его большим кульком с яблоками, договорились, что деньги студент отдаст им завтра утром в кассе. Кроме чувства глубокого удовлетворения наш герой получил двойное сообщение:
Характеристика Телосложение увеличена на 1, всего 20
Характеристика Выносливость увеличена на 1, всего 21
Начавшаяся с понедельника экзаменационная сессия оказалась очень удобным временем для зарабатывания денег, на занятия ходить не нужно, тратить время на подготовку к экзаменам тоже, ибо Витя и так прекрасно знал учебный материал, и к началу каникул он заработал около трёхсот рублей. Могло быть и больше, но разгружать вагон в одиночку удалось лишь дважды за двадцать дней.
Тем временем Анатолий Иванович составил план экспериментов по получению больших углеродных молекул из графита и этот план активно исполнялся. Витина роль сводилась в основном к просмотру структуры получающейся при этом сажи и другого мусора.
На каникулы он решил поехать домой и заодно оставить там заработанные деньги. Погода в начале февраля стояла очень холодная, термометр днём показывал около 20 градусов мороза, тем не менее в куртке и свитере Витя чувствовал себя вполне комфортно и от электрички до дома добирался бегом не от холода, а просто для удовольствия.
Застал свою семью в разных стадиях гриппа, болели все, кроме отца, который был здоров и находился на работе. Выгрузил привезённые из Москвы продукты, набрал воды в накопительный бак и провёл всем удаление и регенерацию.
Бабушка немедленно занялась приготовлением обеда, а Витя рассказал про сданную на пятёрки сессию, и что теперь он будет получать повышенную стипендию, она станет аж на 5 рублей больше, 40 вместо 35. Сообщил также, что копит деньги на мотоцикл и передал матери накопленную сумму.
Дома провёл 4 дня, занимаясь в основном хозяйственными делами. Вернувшись в институт к началу занятий, погрузился в учебные будни — лекции, семинары, лабораторные работы. Времени на заработки стало гораздо меньше, но к середине марта удалось накопить достаточную для приобретения двухколёсного друга сумму. Покупку ижа Витя отложил до очистки дорог от снега, это может быть начало или середина апреля.
Но в начале апреля произошёл первый прорыв в исследованиях Анатолия Ивановича, просматривая структуру сажи, полученной сгоранием графитовых электродов в электрической дуге, Витя обнаружил там многоатомные молекулы углерода по форме напоминающие футбольный мяч и прямо из лаборатории позвонил на кафедру. Обнаружившийся на месте заведующий кафедрой отложил все текущие дела и прибыл на место проведения экспериментов: Здравствуй, Виктор, показывай, что у нас получилось.
— Здравствуйте, в результатах 37-ой серии я обнаружил многоатомные молекулы углерода, структура некоторых вот здесь, — Витя пододвинул к присевшему за стол учёному лист бумаги. — Больше всего таких, как футбольный мяч, намного меньше похожих на несильно вытянутую дыню и совсем мало ещё более вытянутых.
— Отлично, это уже что-то реальное, если выделить значимое количество, то с этим можно выходить на…, - учёный вдруг побледнел, прижал руку к груди напротив сердца и стал заваливаться на стол, над которым наклонился.
— Чёрт, я думал у меня ещё есть время, — мгновенно вскочивший Витя поддержал Анатолия Ивановича за плечи и дал ему плавно опуститься грудью на стол. Мельком отметив, что вокруг никого нет, расстегнул на рубашке несколько пуговиц и подсунул руку: Диагностика! — да, как и думал сердце. Регенерация! Не отменяя диагностику, следил за процессом лечения, надеясь, что никто в ближайшее время не войдёт в лабораторию. Через 15 минут вместо регенерации запустил удаление, в результате чего на рубашке появилось грязное пятно, а больной стал приходить в себя. Отменил диагностику, убрал руку и застегнул пуговицы.
— Что случилось? — Анатолий Иванович поднялся над столом.
— Вам стало плохо с сердцем, но сейчас, по-моему, вам стало лучше.
— Да, мне лучше, пожалуй, даже лучше чем было до приступа, действительно, ничего не беспокоит. Так, на чём я остановился, — он на секунду задумался и продолжил. — С этими результатами можно выходить на учёный совет для включения в план работы и финансирования. Нужно будет научиться выделять макромолекулы углерода в чистом виде и наработать больше материала. Теперь, когда мы знаем вид молекулы, произвести её квантово-химический расчет будет намного проще и я, пожалуй знаю, кого можно об этом попросить.
— Что мне нужно будет делать? — Витя понял, что учёный ни о чём не догадался.
— То же самое, что и сейчас, смотреть результаты экспериментов, только теперь сосредоточимся на 37-ой серии, возможно с добавлением катализаторов. Можно также начинать думать о содержании научной статьи, это я возьму на себя, ведь вам вряд ли приходилось их писать?
— Только сочинения “Как я провёл лето” или образы литературных героев в школе.
— Зато у вас прекрасно получаются рисунки.
— Анатолий Иванович, что с этим делать, — Витя показал на тигель, в содержимом которого он возился. — И извините, когда я пытался вас поддержать грязными руками, то испачкал вам рубашку.
Академик глянул вниз на грязное пятно напротив сердца: Пустяки, это вам спасибо. А сажу оставьте, попробуем выделить из неё…, кстати, надо будет дать название полученным молекулам.
— Беловит или беловин, — вырвалось у Вити.
— Да, со скромностью у тебя всё в порядке.
— Виноват, я машинально.
— Ладно, займёмся своими делами, тем более, что дел этих теперь у меня больше, чем времени.
Заскочив по дороге в студенческую столовую и в очередной раз отметив, что здешний повар это далеко не его бабушка, сытый студент отправился в общежитие. Ему с некоторых пор стала очевидна ущербность рецепта цементация навыка артефактор. Структура всех его, трёх на настоящий момент, изделий была практически одинакова и никак повлиять на неё при изготовлении он не может. Пользуясь тем, что в комнате никого не было, Витя достал свой нож: Структура вещества! Рассматривая сетку-арматуру, подумал: Допустим, я хотел бы сделать её реже или чаще, или каждую трубку толще, и не могу ничего изменить.
Размышления были остановлены сообщением:
Доступен новый рецепт навыка Артефактор. Принять?
— Да, принять.
Рецепт Формирование структуры. Необходим тактильный контакт с изменяемым веществом. Задание: 1.Изучить теорию алгоритмов. 2.Создать язык описания заданий. 3.Один грамм иридия.
Отлично, что и требовалось доказать! Посмотрим, что нужно. С иридием нужно обращаться к Анатолию Ивановичу, не слышал, чтобы он продавался в магазине. С теорией алгоритмов проблем не должно быть, хотя этот предмет на первом курсе не давали, и Витя имеет лишь самое общее представление, что такое алгоритм.
Со вторым пунктом немножко сложнее. Допустим, я хочу сдвинуть какую-нибудь линию сетчатой структуры и записываю команду — сдвинуть линию влево. Сразу возникает ряд вопросов: какую линию, выходит надо их все пронумеровать? Насколько сдвинуть, в каких единицах измерения? Всю линию или её часть, параллельно или дугой?
Попробуем что-нибудь попроще, например, создать углеродную трубку заданной длины из шестиугольников. Во-первых, нужно указать, что она состоит из шестиугольников, а сами шестиугольники нужно описывать? Наверное, нужно, ведь они бывают не только правильные, кстати, не забыть из каких атомов. Во-вторых, нужно задать диаметр трубки и форму, видимо, тоже, ведь она может быть и сплющенной. В-третьих, указать где расположена, то есть координаты начала и конца. В-четвёртых, у трубки, скорее всего, должны быть какие-нибудь наконечники. Думаю, что есть ещё и в-пятых, в-шестых и так далее.
Ё-моё, и это простейшая штука. Витя только сейчас осознал масштаб проблемы и обратил внимание на соседа Колю, который уже целую минуту смотрел на находящегося в прострации одногруппника.
— Привет.
— Привет, я зашёл, а ты сидишь, смотришь и меня не замечаешь, подумал, что научился полезному делу, спать сидя и с открытыми глазами.
— Нет, просто крепко задумался.
— Хорошо, что я тебя застал, тут мужик со станции приходил, у них наплыв вагонов, приглашал подработать сегодня вечером, как ты смотришь на это дело? — Коля был уверен, что задаёт вопрос для проформы, его сосед по комнате никогда от работы не отказывался.
— Хорошо, пойдём, деньги мне не помешают.
— Пойду ребят предупрежу, что от нашей комнаты двое будет, — Коля не стал спрашивать, зачем ему столько денег, так как был в курсе предстоящей покупки мотоцикла.
Разгрузка прошла штатно, денег на планируемую покупку хватало и Витя решил со следующей недели начать посещать магазины спорттоваров. С местом стоянки для будущей техники в Москве он заранее договорился с Ефремовым.
Со следующего дня занялся выполнением требований для нового рецепта, теория алгоритмов никаких проблем не вызвала, совсем другое дело второе требование — по сути нужно разработать собственный специализированный язык программирования. Для начала решил изучить какой-нибудь из существующих и потренироваться в написании и отладке программ, тем более, что в этом был и самостоятельный смысл.
Выбор оказался не очень велик, программисты использовали в основном два языка высокого уровня — Фортран и Алгол и программирование в машинных кодах. Выбрал Алгол, как более структурированный, для практики требовалось машинное время в вычислительном центре.
Пришлось обращаться за помощью к Анатолию Ивановичу и осваивать работу с перфоратором. И то и другое увенчалось успехом, машинное время выделялось в достаточном количестве, правда по ночам, а на перфораторе меньше чем за неделю он научился набивать программы в максимальном темпе, который тот допускал. Отладив несколько не очень больших программ, Витя приступил к решению собственной задачи.
Служебные слова для обозначения границ блока begin…end, названия операторов ветвления, цикла, описания типов и прочего решил по аналогии с Алголом оставить английские, ввёл именованные константы для обозначения химических элементов и некоторых неизменяемых величин и начал составлять библиотеку процедур и функций, например, одна из стандартных функций должна была создавать углеродный шестиугольник.
Хорошо, что не нужно разрабатывать транслятор, который преобразовывает операторы языка в машинный код, ибо в этом случае решение стоящей задачи откладывалось бы на неопределённое будущее. Дал создаваемому языку название из двух букв ОЗ (Описание Заданий) и столкнулся с проблемой отладки. Со своим “внутренним миром” Витя общается устно, тот в свою очередь с Витей общается текстом или графикой.
Допустим можно прочесть вслух полное описание созданного языка, что, кстати, само по себе потребует немало времени, а как потом отлаживать “программы”? Например, хочу создать цепочку углеродных шестиугольников длиной 1 см, как действовать? Взять в руки кусок графита, прочитать написанную для выполнения этой задачи программу, запустить рецепт, а потом смотреть структурой вещества, что получилось? Непонятно, но в любом случае нужно ехать домой и неплохо бы на мотоцикле, который ещё нужно купить и, между прочим, сдать на права. Всё, делаю перерыв, и занимаюсь мотоциклом, к тому же и на улице потеплело.
Повезло дважды, в одном из магазинов стояли на продажу “Ижи” и нашлась автошкола, в которой через четыре дня будет сдача экзаменов. В целом всё прошло успешно, лишь на сдаче вождения чуть не произошёл казус: сдавал на чужом “Восходе” и не учёл, что у него, в отличие от “Ижа”, ограничен поворот руля и лишь чудом удержал равновесие и не коснулся ногами земли.
Предупредил старосту, что в ближайшую субботу пропустит занятия и в пятницу уехал домой на мотоцикле, решив плотно заняться освоением нового рецепта. Поскольку техника находилась в периоде обкатки, Витя не развивал скорость выше 50 км/час на верхней передаче, по пути делал остановки. Приехал с триумфом на новом “Иж-планета-2” синего цвета. Раздал подарки, выслушал Вову, который сообщил, что он умеет считать до 100, пообещал Толе летом дать прокатиться на мотоцикле и решил завтра с утра заняться языком заданий.
После завтрака Витя попросил его не отвлекать, так как будет занят очень важным делом. Приготовил себе большую чашку с чаем и дал команду: Показать характеристики:
Имя — Витя Белов
Раса — Человек
Уровень — 17
Класс — Ученик
Характеристики
Сила — 20
Ловкость — 20
Скорость — 20
Телосложение — 20
Выносливость — 21
Интеллект — 26
Восприятие — 22
Единиц жизни — 400
Навыки и умения
Стрелок 4 уровня
Ориентирование 3 уровня
Артефактор 3 уровня
Целитель 4 уровня
И начал зачитывать ранее аккуратно переписанный начисто текст языка описания заданий. Поскольку никакой реакции на начало чтения не было, продолжал читать до победного конца. Хлебнул сладкий чай и увидел, как сменился текст перед глазами:
Запустить отладчик?
— Да, запустить. Заодно и узнаю, что это такое.
Выбери форму тестового объекта: Шар, Параллелепипед, Цилиндр, Конус, Пирамида, Тор, Другое
— Параллелепипед.
Укажи размеры в миллиметрах: Длину Ширину Высоту
— 50 30 10
Вводи описание структуры и команду Старт
Витя зачитал текст заранее заготовленного описания по имени Цепь6, строящего цепочку из миллиона углеродных шестиугольников, расположенных вертикально начиная от нижней грани и дал команду Старт!
Перед глазами появился прозрачный прямоугольный параллелепипед с маленькой чёрточкой, направленной из центра нижней грани вертикально вверх. Одной из целей Цепь6 было определение размера ребра углеродного шестиугольника, для этого нужно, чтобы цепочка протянулась точно на всю десятимиллиметровую высоту, миллион занял лишь малую часть этой высоты.
Увеличив в процедуре Цепь6 число элементов до десяти миллионов, снова зачитал её и запустил. Чёрточка в параллелепипеде стала занимать примерно четверть высоты, получается, что 10 мм это примерно 40 000 000 (сорок миллионов) шестиугольников. Действуя аналогично, в конце концов, получил точное их число, помещающееся в 10 мм: 41 535 990, отсюда вычислил длину ребра около 0,139 нанометра.
Несмотря на сильнейшее воодушевление — у него получилось, отметил и недостаток отладчика, приходилось после каждого изменения зачитывать заново текст процедуры. Несмотря на это, отладчик был гораздо удобнее системы отладки программ в вычислительном центре института, где приходилось после каждой ошибки снова работать с перфоратором и заменять одну или несколько перфокарт либо перфоленту. К тому же здесь сразу был виден результат.
Кстати, не хранится ли у меня в памяти Цепь6? Дал команду: Показать Цепь6! Не произошло ровным счётом ничего. Так, попробую иначе. Витя снова зачитал последнюю версию Цепь6 и дал команду: Сохранить Цепь6! Затем ещё одну: Показать Цепь6! Перед глазами появилась требуемая процедура. Просто отлично, это не отладчик плохой, это я не умею им пользоваться, либо он подстраивается под мои требования. Попробовал заменить в висящем перед глазами тексте один из параметров и убедился, что команда замены тоже работает. Закрыл отладчик и отправился на кухню, оказывается, есть он хочет уже давно.
После обеда с энтузиазмом продолжил работу. Отладил несколько процедур, когда обнаружились ошибки в самом языке описания заданий, исправил и их, к счастью, не пришлось заново читать весь его текст — он хранился в памяти. Увлёкся так, что остановило только появившееся сообщение:
Недостаточно выносливости для работы отладчика
Зафиксировав время, понял, что успеет только поужинать и нужно ехать в Москву.