Сингулярность 1.0. Космос (Филенко, Соловьева) - страница 121

Арсений запнулся, поглядев на отсутствующие выражения лиц коллег.

– Так. Я что, единственный здесь читал материалы по Титану? Они все есть в документации.

– Ну, я как-то вечно на потом оставлял эти подробности, и так и не дошли руки, – признался Андрей. – Моей работы это совсем не касается.

– Расскажи вкратце, – предложил Сергей.

– Эм-м… Титан, как известно, периодически то нагревается, то остывает. Не быстро, в течение миллионов лет. Сейчас Титан слишком тёплый для существования на его поверхности жидкого азота, но так было не всегда. Во время эпохи похолодания азот доминировал в атмосфере вместо метана, выпадал осадками, собирался в лужи и подповерхностные резервуары. После потепления жидкий азот превращался в газ, и если превращался быстро, то происходили взрывы. Если жидкий азот оказывался в какой-то подземной полости, отрезанный от внешней среды, то он мог сохраняться в течение долгого срока. А потом, когда прогревался, взрывообразно испарялся. Так образовались озера с их характерной формой побережий. Я предполагаю, под дном моря сохранился такой резервуар. И либо просто его время пришло, тем более сейчас в северном полушарии Титана как раз теплеет, либо драга своей работой как-то повлияла на него, вызвав выброс.

– Это бы объяснило прыжок драги. Она оказалась на верхушке взрыва или рядом с ним, волной её подняло ввысь.

– Да. Но это ещё не все. Что происходит после взрыва? Если со дна поднялся огромный пузырь газа, то при заполнении этого объёма обратно жидким метаном могла образоваться воронка, в которую рухнула драга.

– Не понял мысли.

– Драга оказалась ниже уровня моря, – пояснил Арсений. – Что будет, если навигатор получит отрицательное число в координатах?

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

– Твою ж!.. – в сердцах воскликнул программист. – Не верю.

– Бывает, – сочувственно кивнул Сергей.

– Уже можно сказать «а я говорил»? – поинтересовался Арсений. – Как обычно, кнопкодавы накосячили, а честному наладчику лезть на мороз и разгребать за ними.

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

– Логично. Это всё же драга, а не подводная лодка. Не предполагается, что она будет плавать ниже уровня моря, – попытался утешить коллегу Сергей.

– Да, но обезопасить программу от косяка во входящих – это же просто здравый смысл! Иначе получается вот это. Деление на ноль, блин.