Литмир - Электронная Библиотека

– Ирина Владимировна, а как сделать так, чтобы молекулы отталкивались?

– Наиболее распространённый способ – это следить, чтобы расстояние между двумя молекулами было больше, чем два радиуса. Как только оно становится равно диаметру, происходит столкновение. Как находить расстояние между двумя точками помните?

– Ну так…

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

– А как случайно задать направление?

– Может, мне вам ещё и программу сразу написать? Действительно, зачем я вам тут всё рассказываю, давайте сразу всем пятёрки поставлю. Хоть над чем-нибудь подумайте.

В конце второй пары мне сдавала работу Ксюша. Программа у неё тоже работала прекрасно, но вот когда я посмотрела код программы…

– Эту работу я уже видела. Ксения, как вы можете это прокомментировать?

– Не знаю… Говорят, у гениев мысли сходятся.

– Ага, а ещё говорят, что у дураков, – я также скинула прогу на сетевой диск, а затем прошла за свой компьютер, – возьми с собой Юлю, и подойдите, пожалуйста, сюда. Скинув себе на комп Ксюшину программу, открыв её и скопировав код Юлиной проги в Блокнот, я подождала, когда девушки встанут за моей спиной, расположила окна рядом друг с другом и сказала:

– А теперь игра: найти десять отличий. Не… ну интерфейс вы, конечно, здорово изменили: и размер формы, и цвет графиков, даже кнопки в других местах поставили и их размер изменили, но вот код программы… – я усмехнулась – девчонки, ну вы бы хоть названия переменных поменяли, а то это уж как-то вообще… И что делать будем, а Юль?

Я обернулась к ним. Юля стояла с отсутствующим взглядом, всем своим видом показывая, как же её всё это достало. Я снова повернулась к монитору.

– Ладно, четыре балла. Но чтобы это было в первый и последний раз.

Через неделю сдавали броуновское движение. Юля сдала опять на отлично, быстро ответила на несколько моих вопросов и приступила к следующему заданию. А вот Ксюша… Увидев её программу, я была несколько удивлена – в ней был реализован алгоритм определения момента удара, отличный от того, который я рассказала неделю назад. Смысл заключался в том, что изменение направления движения молекул происходило в момент, когда противоположенные одноимённые координаты квадратов, в которых рисуются эллипсы (например, верхняя сторона одного квадрата и нижняя другого), совпадали, и одновременно расстояние между другими координатами не превышало диаметра. Этот алгоритм был, естественно, сложнее, но необычнее, и потому интереснее.

– Ксения, расскажите вкратце, по какому принципу у вас находится момент столкновения.

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

– Хорошо. Покажите в теле программы этот момент.

Ксения показала.

– Отлично. А вот я вижу, что удар реализуется не только в момент, когда координаты совпадают, но и в момент, когда разность между ними равна одному. Почему?

Ксюша молчала.

– Это на всякий случай, – наконец сказала она.

– На какой случай?

– Ну вдруг при точном совпадении не сработает.

– А почему может не сработать?

– Мало ли, всякое случается…

– Понятно. Где у вас меняется направление движения молекул?

– Так вот здесь, после then.

– После then я вижу два счётчика, каждый из которых является элементом массива. Кстати, что это за счётчики?

Ксюша молчала.

– Да бог с ними, со счётчиками, хоть где направление меняется, покажите?

Нет ответа.

А вот в этом месте, – я выделила кусок кода, – у вас что?

– Ах, да!… Вот здесь как раз и происходит изменение направления.

– Хорошо. Массив k за что отвечает?

– За направление.

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

– А… нет, тогда k всё-таки не за направление отвечает… наверное…

– А за что тогда?

Молчание.

– Ну зачем вы всё-таки вот этот цикл, здесь даже два цикла, написали? Это ведь вы написали? – я обернулась и посмотрела на Ксюшу.

Та ничего не ответила.

– Будьте добры, позовите свою коллегу Яковлеву.

Когда подошла Юля, я сказала:

– Юлия, вы знаете, вашей подруге удалось придумать новый алгоритм нахождения момента столкновения молекул. Что вы об этом думаете?

– Ксюша – талантливая девушка.

– Да, это бесспорно. Только вот она почему-то не может объяснить, как работает её программа.

Юля пожала плечами.

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

– Да, эффект реминисценции может иметь место, если дело касается информации, которая находится исключительно в памяти (как хорошо, что у меня на третьем курсе была психология!) но смотреть на код программы, которую ты лично написал, и не суметь сказать, что она делает… Я вижу программу в первый раз в жизни, и то что-то здесь понимаю. Значит, так: за программу 5, за сдачу 2, среднее – три целых пять десятых. Но за разработку нового алгоритма полбалла, так и быть, добавлю. Все свободны.

Глава 19

Однажды в пятницу после уроков, проверяя сетевой диск на предмет возможных левых файлов, я обнаружила в папке, куда ученики скидывали свои программы, одинокий экзешник под названием «The Rise of the Moon». Я, конечно же, сомневалась, стоит ли запускать этот файл ввиду всевозможных вездесущих Троянов, но в итоге всё-таки решилась открыть, предопределив возможность того, что кто-то пытался скинуть программу, но произошла системная ошибка, ввиду которой загрузился только один exe-файл. Открыла – и обалдела – на черном фоне белыми линиями был нарисован портрет женщины… Женщины, которую звали Ирина Владимировна Хрусталёва. Рисунок был выполнен мастерски, сходство с оригиналом даже по моему пристрастному мнению человека, который знал героиню шедевра в повседневном ежесекундном общении, составляло порядка 97 процентов. Насчёт автора данного произведения сомнений у меня не возникало. Даже если бы файл появился не в пятницу, когда у меня было всего две подгруппы, обе из одиннадцатых классов, среди членов которых на моей памяти был лишь один кандидат, обладающий знаниями, необходимыми для реализации подобного алгоритма, я бы всё равно знала, что только одному человеку в параллели (да что там, в параллели, во всей школе) пришло бы в голову сотворить такую удивительную вещь…

Стоял удивительный апрельский вечер. Такой, какие бывают только весной: ярко-синее, цвета ультрамарин, небо, низко висящее солнце, косые лучи, отбрасывающие длинные тени ото всех находящихся на улице предметов, мокрая земля от не так давно ещё растаявшего снега, сухой асфальт, песок на тротуарах, пыль, светящаяся в солнечных лучах миллиардами микроскопических звёзд, и за всем этим неповторимый аромат свежести и ещё чего-то неуловимого, зовущего немедленно, в сию же секунду, улететь за ним непонятно куда и раствориться в этой всеобъемлющей бесконечной синеве. На мне были старые, вытертые, когда-то коричневые, вельветовые штаны, кроссовки, синяя спецовка и вельветовое же кепи на голове. Я прошла через парк и устроилась на скамейке, рядом с каким-то алкоголиком средних лет, периодически выпивающим из двухлитровой бутылки пива. Никакой уверенности в том, что я увижу её, у меня, естественно, не было. Она могла давно сменить фитнес-клуб, просто бросить его, пренебречь тренировками ради подготовки к экзаменам, да у неё просто могло не быть занятий сегодня, или она могла уже успеть отзаниматься и уйти до того, как я появилась здесь. И всё же минут через сорок я увидела то, ради чего и пришла сюда: на дорожке слева от меня показалась небольшая фигурка в чёрных обтягивающих штанах, чёрной лёгкой курточке и чёрной же шапке на голове. Я вскочила, подбежала к ней, схватила её за руки и закружила. Остановилась, наклонилась к ней, заглянула в её глаза и произнесла: «Неужели ты до сих пор любишь меня?» А затем подняла с глаз козырёк кепки, обернулась, посмотрела вслед удаляющейся девушке со спортивной сумкой через плечо и встала со скамейки. В тот день я не стала напиваться… дома. Вместо этого я, с обязательным заездом по пути в магазин, поехала на дачу. Там в компании с ноутбуком и двумя бутылками водки я и провела оставшиеся выходные. Я запускала экзешник, чокалась с улыбающейся девушкой на экране, говорила: «За тебя, родная моя! Что ж ты за идиотка-то! Ничему тебя жизнь не учит…», ставила музыку или включала радио, и валилась на постеленный на полу коврик.

18
{"b":"157959","o":1}