| Предыдущая глава |
↓ Содержание ↓
↑ Свернуть ↑
|
В задачу, которую поставил подруге научный руководитель, студент до конца не вник. Что-то с логическими формулами, из которых надо сделать дерево, а потом с деревом, из которого надо сделать формулу… Но обещал помочь с отладкой программы, потому что на факультете с машинным временем завал, а у него есть знакомая химическая лаборатория, где наверняка разрешат поработать.
Текст программы подруга принесла на четырёх страницах. И объясняла, пока студент набивал его в редакторе, глядя то в бумаги, то на экран:
— Главная часть вообще-то на второй и третьей, первая — это ввод формулы и построение дерева, последняя — это распечатка результата. Насчёт ввода и вывода я уверена, там всё просто. А вот сама обработка, когда всё это дерево нужно в определённой последовательности обойти и по-хитрому преобразовать, это уже сложно… Две недели потратила!
Студент понимающе кивнул. На кафедрах кибернетического потока, в отличие от чисто математических и чисто программистских, частенько возились с изрядно замороченными вещами, именуемыми то «графами», то «цепями», то «автоматами», причём иногда даже «магазинными»… Его собственная курсовая, сводившаяся к написанию нескольких ассемблерных прокладок между процедурами на двух разных языках программирования, по сравнению с этой многоуровневой структурой выглядела полной элементарщиной. Чего там — перед вызовом функции достать пару значений по указанным адресам памяти и положить в стек, а после возврата очистить стек и переложить результат из регистра в нужную ячейку памяти…
— Ну что, готово? Давай попробуем запустить!
И программа заработала… Но заработала, как это обычно и бывает со свеженаписанными программами, куда-то не туда. Нет, исходную формулу она благополучно прочла; и дерево построила правильно (это проверили особо); и то, что у неё вышло после обработки пресловутого дерева, честно вывела. Но вышел у неё при этом редкостный бред, который, по словам подруги, из исходных данных ну никак не следовал.
Где у неё могла проскочить ошибка, она понятия не имела. Студент с тоской поглядел на две страницы программного кода… Чужого… На языке Си, одном из самых нечитабельных языков высокого уровня… И вздохнул:
— Слушай, можешь объяснить попроще, чего эта самая процедура обхода дерева сделать-то должна? Чтобы знать, что искать?
Выслушал объяснение, немного подумал и принял решение:
— Так, отлаживать эти две страницы мы не будем, времени нет. Сделаем так… Смотри: у тебя к каждой вершине дерева список вершин-потомков прилагается. Пустой, если эта вершина — лист. Пишем простую такую функцию… Она сначала вызывает сама себя для каждой вершины из списка потомков, потом свою собственную вершину обрабатывает — и завершает на этом работу… А в главной программе просто вызовем эту функцию для корня дерева.
Он стёр больше полусотни строк кода, заменив их на шесть — и всё отработало как положено.
Оставшееся время они с подругой гоняли программу на любых формулах, которые только приходили в голову. Функция работала как часы.
* * *
— Ну как, сдала курсовую?
— Сдала…
— А чего такая недовольная?
— А помнишь, я говорила, кого попрошу помочь с отладкой?
— И что? Не помог?!
— Если бы… Понимаешь, я полмесяца над этой программой просидела! Две страницы кода написала! Он их честно вбил — они не пошли! И тогда он эдак небрежно: «Это мы отлаживать не будем!» Выкидывает мои две страницы, пишет пять строчек — и они работают! В общем, я поняла: программиста из меня не выйдет. Пойду, наверное, в школу. Детей математике учить.
— Ты что, пошла сдавать курсовую, не разобравшись, как она работает?!
— Ну, совсем уж дурой не считай! Как работает, я разобралась. Чего там, по готовенькому-то… У меня там другая проблема возникла: как доценту объяснить, что эти пять строк работают, и работают правильно!
— Объяснила?
— Не-а. Он так и не въехал.
— Но курсовую зачёл?
— А куда он денется? Работает же! Все тесты прошли!
— А с твоим помощничком-то что?
— А на него я серьёзно обиделась.
— А он?
— По-моему, не заметил…
— Ха! А знаешь что?
— Что?
— Думаю, что вы с ним всё-таки поженитесь! Вот!

|
Агнета Блоссом Онлайн
|
|
|
Мыр. Автору спасибо за массу воспоминаний и ассоциаций, которые ко мне пришли во время чтения этого очаровательного рассказа!
Надо пойти и записать идеи, дивно мотивирующая история у вас получилась, автор!!! Класс, класс! 4 |
|
|
Спасибо за забавную занятную историю, автор! Очень убедительно написано, легко поверить, что всё так и было)))
1 |
|
|
Птица Гамаюн Онлайн
|
|
|
К тупицам и бездельникам наконец запустили нормального человека...
(Я тупица, если что) 1 |
|
|
Dart Lea Онлайн
|
|
|
Какая милота)
Нет правда! А вот про то, что студент он и в Африке студент, а вот кандидат наук тут уже сложнее перевести - жиза. Phd, конечно, используют, но опять же не везде уместно) 1 |
|
|
Ни черта не секу в математике, информатике, кодах и частицах. Поэтому ржала с выводов. А выводы, все жизненно понятные))
2 |
|
|
Агнета Блоссом Онлайн
|
|
|
EnniNova
Оно всё как-то ходило вокруг, ходило, работало - а кончилось- то тем же, что и всегда! Это как-то вдохновляет ))) 2 |
|
|
Яросса Онлайн
|
|
|
Крутой программист однако. Молодец!
|
|
|
Sofie Alavnir Онлайн
|
|
|
Мне сложно тут что-то предметно прокомментировать, очень уж коротенькая, специфичная и не слишком насыщенная сюжетом вышла зарисовка, скажу лишь ещё раз, что искренне восхищаюсь программистами и в целом людьми, понимающими что-то в том, что сама с чистой совестью зову техномагией.
Показать полностью
![]() ![]() Прикол с таблицей, и в принципе то, как красиво товарищ студент каждый раз оптимизирует переусложнённые рабочие процессы, невольно напомнил матушкины рассказы про то, как она на каждом месте работы находила новый способ каким-то образом построить всех по струнке очередной своей придумкой. В частности, сразу вспомнилась история с работой в продаже квартир, когда она первая додумалась тупо сделать таблицу в Экселе со всеми нужными данными, и это разом упростило работу для всех раза в два-три. Весёлое было время — 90-е... Вспомнились ещё друзья из Московского Политеха, которые периодически тоже вот рассказывают какие-то такие техномагичные вещи, которые звучат интересно, очень интересно безусловно, но едва ли мне понятны. Не могу сказать, что заметила особые недостатки, кроме разве что того, что текст не слишком тянет на законченную историю, скорее на набор слабо связанных эпизодов, но, справедливости ради, написанных хорошо. Единственное что намёк на любовную линию в конце показался каким-то неуместным. Не ощутила я между этими двумя химию за имеющуюся в тексте короткую интеракцию, как-то не поверила я в их возможные отношения. 2 |
|
|
michalmil Онлайн
|
|
|
Симпатичная история. Приятно читать про будни талантливых людей. Надеюсь, у героев и дальше все будет хорошо)
1 |
|
|
Теллуридавтор
|
|
|
Всем огромное спасибо за внимание! (А за рекомендацию — особо, Паутинка!)
Надеюсь, уважаемые читатели не обиделись, что во время работы над рассказиком автор вырезал оттуда изрядное количество комбинаторики, молекулярной физики, газовой химии, численных методов, дискретной математики и, до кучи, тонкостей программирования на четырёх различных языках. Но, кажется, и так должно быть ясно, за что нашего студента в шутку ругали и так же в шутку превозносили коллеги-химики — кстати, отлично сделавшие свою, главную часть работы. Sofie Alavnir, вам отдельный поклон за наблюдательность. Да, абсолютно вся «химия» между персонажем и его девушкой сознательно оставлена за рамками, в кадре лишь реальная химия в газовой среде. «Гет» запрещён! Только работа, только дело! Но вовремя заткнуть рот любопытной одногруппнице, увы, не получилось, и что она ляпнула, то ляпнула. 5 |
|
|
Улыбнуло. Спасибо.
1 |
|
| Предыдущая глава |
↓ Содержание ↓
↑ Свернуть ↑
|