Предыдущая глава |
↓ Содержание ↓
↑ Свернуть ↑
| Следующая глава |
— Хорошо, пойдём, деньги мне не помешают.
— Пойду ребят предупрежу, что от нашей комнаты двое будет, — Коля не стал спрашивать, зачем ему столько денег, так как был в курсе предстоящей покупки мотоцикла.
Разгрузка прошла штатно, денег на планируемую покупку хватало и Витя решил со следующей недели начать посещать магазины спорттоваров. С местом стоянки для будущей техники в Москве он заранее договорился с Ефремовым.
Со следующего дня занялся выполнением требований для нового рецепта, теория алгоритмов никаких проблем не вызвала, совсем другое дело второе требование — по сути нужно разработать собственный специализированный язык программирования. Для начала решил изучить какой-нибудь из существующих и потренироваться в написании и отладке программ, тем более, что в этом был и самостоятельный смысл.
Выбор оказался не очень велик, программисты использовали в основном два языка высокого уровня — Фортран и Алгол и программирование в машинных кодах. Выбрал Алгол, как более структурированный, для практики требовалось машинное время в вычислительном центре.
Пришлось обращаться за помощью к Анатолию Ивановичу и осваивать работу с перфоратором. И то и другое увенчалось успехом, машинное время выделялось в достаточном количестве, правда по ночам, а на перфораторе меньше чем за неделю он научился набивать программы в максимальном темпе, который тот допускал. Отладив несколько не очень больших программ, Витя приступил к решению собственной задачи.
Служебные слова для обозначения границ блока 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! Перед глазами появилась требуемая процедура. Просто отлично, это не отладчик плохой, это я не умею им пользоваться, либо он подстраивается под мои требования. Попробовал заменить в висящем перед глазами тексте один из параметров и убедился, что команда замены тоже работает. Закрыл отладчик и отправился на кухню, оказывается, есть он хочет уже давно.
После обеда с энтузиазмом продолжил работу. Отладил несколько процедур, когда обнаружились ошибки в самом языке описания заданий, исправил и их, к счастью, не пришлось заново читать весь его текст — он хранился в памяти. Увлёкся так, что остановило только появившееся сообщение:
Недостаточно выносливости для работы отладчика
Зафиксировав время, понял, что успеет только поужинать и нужно ехать в Москву.
Глава 23.
В Москве в понедельник пришлось выслушать внушение от старосты, что он не принял участие в субботнике 22 апреля, зато в тот же день смог найти в институте Анатолия Ивановича и спросить его насчёт иридия. Выяснив, что благородный металл нужен не на совсем, а просто для ознакомления (как считал Витя по аналогии с платиной), обещал достать в ближайшее время .
Через несколько дней, покрутив в руках маленький слиток редкого драгоценного металла, вернул его академику. Обратил внимание на очень важный факт — всё ещё не было сообщения об освоении рецепта "Формирование структуры", единственная, пришедшая в голову причина — язык описания заданий до сих пор содержит ошибки.
Витя лишний раз убедился, насколько удобен отладчик, с ним можно было работать в вагоне метро и даже на лекции. Как раз во время неё, исправив очередную ошибку, получил портянку сообщений:
Рецепт Цементация металла заменён на рецепт Формирование структуры
Навык Артефактор повышен на 1, всего 4
Характеристика Интеллект увеличена на 1, всего 27
Характеристика Выносливость увеличена на 1, всего 22
Уровень увеличен на 1, всего 18
Пожалел только, что потерян рецепт цементации, было ясно, что он представляет собой описание довольно сложной структуры, к тому же подстраивающейся под форму обрабатываемой заготовки. Пришлось признать, что описание такой сложности ему пока не под силу.
Отвлёк Витю смех в аудитории и слова преподавателя матанализа рядом с ним: Первый раз вижу студента, который спит сидя с открытыми глазами.
— Я не сплю.
— Сейчас действительно не спите. Может, расскажете, о чём последнем шла речь в лекции?
Витя обратился к своей памяти, как и обычно, более или менее значимые события вокруг него в ней фиксировались, этому он научился ещё в школе: Как рассказать, дословно или своими словами?
— Вот даже как, пусть будет дословно.
— Ранее описанный способ нарушает симметрию переменных: некоторые считаются независимыми, другие зависимыми, часть дифференциалов сохраняется, часть исключается. Кхе, кхе. Лагранж предложил метод, в котором роль переменных...
— Причём здесь кхе, кхе? — прервал Витю вопросом преподаватель.
— Вы же сказали повторить дословно.
— Достаточно, я вижу, что для запоминания учебного материала вам нужна такая концентрация внимания, что на подошедшего преподавателя его уже не хватает. Кстати, почему вы не записываете лекцию?
— Дословно запомненное я могу записать в любое время, если опасаюсь, что могу забыть.
— Да, любопытно, любопытно, надеюсь, вы донесёте эти знания до экзамена, — и преподаватель отправился к доске.
Ездить на мотоцикле Вите очень нравилось, единственная ложка дёгтя в бочке с мёдом — это период обкатки, имея паспортную максимальную скорость 105 км/час, он позволял себе развивать лишь вполовину меньшую, при этом его обгоняли не только "Восходы" и "Ковровцы", но даже и 125-и кубовые "Козлики". Обкатка длится 1500-2000 км и в этот период нельзя давать двигателю развивать большие обороты и перегреваться. После обкатки он твёрдо решил модернизировать свой Иж с помощью "Артефактора" и тогда посмотрим, кто сможет его обогнать!
Тем временем был осуществлён квантово-химический расчет "футбольного мяча" и выяснены способы выделения молекул С60 и С70 из продуктов горения графита в электрической дуге с помощью растворителей, а Анатолий Иванович закончил написание статьи. К его сожалению в печать пропустили только теоретическую часть, не только без описания способа практического получения таких молекул, но даже без сообщения о том, что они вообще получены.
Видимо, он слишком оптимистично обрисовал возможные перспективы данных исследований, но пока, хотя бы не предъявил военным обработанные Витей образцы. На просьбу учёного обработать заготовки из титана и алюминия нашему артефактору пришлось ответить отказом, он признался, что потерял способность к такой обработке, но зато предложил сделать что-нибудь из аморфного металла.
Анатолий Иванович одновременно и огорчился и обрадовался, но выразил надежду, что эта потеря временная.
К концу апреля студент решил, что работу с отладчиком он достаточно освоил и на майские праздники поехал домой, чтобы впервые опробовать новый рецепт на практике. В мастерской отпилил кусок круглого стального прутка десятимиллиметрового диаметра длиной 10 см, подровнял напильником торцы и взял его в руку: Формирование структуры!
Ввести новое или выбрать сохранённое Описание?
Выбрать сохранённое.
Укажи имя Описания
Идеал1.
Ориентировочное время выполнения 6 минут. Начать?
— Да, начать.
Старт рецепта.
360
Затем число 360 изменилось на 359, 358...
В отличие от отладчика, где новая структура создавалась мгновенно, в реальности на это потребовалось время. Витя прикинул вес стальной заготовки, получилось больше 60-и грамм, значит скорость работы рецепта, примерно, 10 грамм в минуту.
После обнуления счётчика прошло ещё несколько секунд, прежде чем появилось сообщение:
Рецепт выполнен
Кроме блестящего, идеального с виду цилиндра, в руках у артефактора оказалась и небольшая неправильной формы гранула серого цвета. Структура со сравнительно несложным описанием по имени Идеал1 представляла собой железо с идеальной кристаллической решёткой, а в грануле, очевидно, содержались примеси. Результат оказался просто замечательным!
После работы с отладчиком Витя в принципе, конечно, верил, что рецепт "Формирование структуры" рабочий, но получить материальное подтверждение было чрезвычайно приятно. Тем более, что просматривались и очень интересные побочные результаты, например, получение химически чистых веществ.
Немного смущала только скорость работы рецепта, всего 600 грамм в час, то есть за создание или улучшение крупных деталей нет смысла браться. Правда, программа минимум, радикальное улучшение мотоцикла, ему доступна. И ещё, он недавно порвал шиповки, надо будет продумать улучшения так, чтобы сделать их неуничтожимыми или хотя бы трудно уничтожимыми.
Для этого нужно попробовать изменять форму исходной заготовки. Витя запустил отладчик и на базе описания структуры Идеал1 составил и отладил ещё одну по имени Идеал1Ш, которая формирует железный шар с идеальной решёткой. Отпилил 1 см того же прутка и запустил рецепт. Учитывая, что масса исходного материала в 10 раз меньше, предполагал время выполнения секунд 35-40. На практике времени потратилось вдвое больше, в остальном всё также — блестящий шарик и немножко отходов.
Cделал идеальный цилиндр из алюминия. Проверил на практике ещё несколько созданных и отработанных в отладчике рецептов композитных материалов, в целом провёл пару дней дома весьма продуктивно и уже сидя в седле мотоцикла по дороге в Москву хлопнул себя по лбу — почему не попробовал создать углерод с кубической кристаллической решёткой? Наглядно представил лицо академика, когда он достанет из кармана горсть алмазов, отвлёкся и едва успел объехать довольно глубокую выбоину на дороге.
Оставив двухколёсного коня в гараже у Ефремова, подумал, что с горстью алмазов он слегка погорячился и намерение нужно урезать до одного небольшого камня. Придя в общежитие, запустил отладчик и составил описание идеального алмаза весом полграмма.
Предыдущая глава |
↓ Содержание ↓
↑ Свернуть ↑
| Следующая глава |