↓
 ↑
Регистрация
Имя/email

Пароль

 
Вход при помощи VK ID
временно не работает,
как войти читайте здесь!
Размер шрифта
14px
Ширина текста
100%
Выравнивание
     
Цвет текста
Цвет фона

Показывать иллюстрации
  • Большие
  • Маленькие
  • Без иллюстраций

Байки из лаборатории (джен)



Автор:
произведение опубликовано анонимно
 
Ещё никто не пытался угадать автора
Чтобы участвовать в угадайке, войдите

Если вы не зарегистрированы, зарегистрируйтесь
Фандом:
Рейтинг:
General
Жанр:
Повседневность
Размер:
Мини | 10 662 знака
Статус:
Закончен
 
Проверено на грамотность
В одну лабораторию химического факультета пришёл поработать студент — математик и немножко программист.
QRCode
Предыдущая глава  
↓ Содержание ↓

↑ Свернуть ↑

Третий год. Дерево

В задачу, которую поставил подруге научный руководитель, студент до конца не вник. Что-то с логическими формулами, из которых надо сделать дерево, а потом с деревом, из которого надо сделать формулу… Но обещал помочь с отладкой программы, потому что на факультете с машинным временем завал, а у него есть знакомая химическая лаборатория, где наверняка разрешат поработать.

Текст программы подруга принесла на четырёх страницах. И объясняла, пока студент набивал его в редакторе, глядя то в бумаги, то на экран:

— Главная часть вообще-то на второй и третьей, первая — это ввод формулы и построение дерева, последняя — это распечатка результата. Насчёт ввода и вывода я уверена, там всё просто. А вот сама обработка, когда всё это дерево нужно в определённой последовательности обойти и по-хитрому преобразовать, это уже сложно… Две недели потратила!

Студент понимающе кивнул. На кафедрах кибернетического потока, в отличие от чисто математических и чисто программистских, частенько возились с изрядно замороченными вещами, именуемыми то «графами», то «цепями», то «автоматами», причём иногда даже «магазинными»… Его собственная курсовая, сводившаяся к написанию нескольких ассемблерных прокладок между процедурами на двух разных языках программирования, по сравнению с этой многоуровневой структурой выглядела полной элементарщиной. Чего там — перед вызовом функции достать пару значений по указанным адресам памяти и положить в стек, а после возврата очистить стек и переложить результат из регистра в нужную ячейку памяти…

— Ну что, готово? Давай попробуем запустить!

И программа заработала… Но заработала, как это обычно и бывает со свеженаписанными программами, куда-то не туда. Нет, исходную формулу она благополучно прочла; и дерево построила правильно (это проверили особо); и то, что у неё вышло после обработки пресловутого дерева, честно вывела. Но вышел у неё при этом редкостный бред, который, по словам подруги, из исходных данных ну никак не следовал.

Где у неё могла проскочить ошибка, она понятия не имела. Студент с тоской поглядел на две страницы программного кода… Чужого… На языке Си, одном из самых нечитабельных языков высокого уровня… И вздохнул:

— Слушай, можешь объяснить попроще, чего эта самая процедура обхода дерева сделать-то должна? Чтобы знать, что искать?

Выслушал объяснение, немного подумал и принял решение:

— Так, отлаживать эти две страницы мы не будем, времени нет. Сделаем так… Смотри: у тебя к каждой вершине дерева список вершин-потомков прилагается. Пустой, если эта вершина — лист. Пишем простую такую функцию… Она сначала вызывает сама себя для каждой вершины из списка потомков, потом свою собственную вершину обрабатывает — и завершает на этом работу… А в главной программе просто вызовем эту функцию для корня дерева.

Он стёр больше полусотни строк кода, заменив их на шесть — и всё отработало как положено.

Оставшееся время они с подругой гоняли программу на любых формулах, которые только приходили в голову. Функция работала как часы.


* * *


— Ну как, сдала курсовую?

— Сдала…

— А чего такая недовольная?

— А помнишь, я говорила, кого попрошу помочь с отладкой?

— И что? Не помог?!

— Если бы… Понимаешь, я полмесяца над этой программой просидела! Две страницы кода написала! Он их честно вбил — они не пошли! И тогда он эдак небрежно: «Это мы отлаживать не будем!» Выкидывает мои две страницы, пишет пять строчек — и они работают! В общем, я поняла: программиста из меня не выйдет. Пойду, наверное, в школу. Детей математике учить.

— Ты что, пошла сдавать курсовую, не разобравшись, как она работает?!

— Ну, совсем уж дурой не считай! Как работает, я разобралась. Чего там, по готовенькому-то… У меня там другая проблема возникла: как доценту объяснить, что эти пять строк работают, и работают правильно!

— Объяснила?

— Не-а. Он так и не въехал.

— Но курсовую зачёл?

— А куда он денется? Работает же! Все тесты прошли!

— А с твоим помощничком-то что?

— А на него я серьёзно обиделась.

— А он?

— По-моему, не заметил…

— Ха! А знаешь что?

— Что?

— Думаю, что вы с ним всё-таки поженитесь! Вот!

Глава опубликована: 30.04.2026
КОНЕЦ
Отключить рекламу

Предыдущая глава
2 комментария
Классная история!
И прям ситуации знакомые.
Были раньше времена — запустишь расчет, а он час идёт. И вроде ты работаешь, но при этом свободное время на законных основаниях.
А сейчас все моментально считается, даже чай не успеешь выпить.
Я тоже как-то хотела быть программистом и даже училась, но поняла, что не тяну. У меня тоже программы уходили куда-то не туда. А Си++ доконал меня окончательно. Это что-то за гранью.
Так что девушку понимаю, а студента уважаю!
Кстати, был у нас в институте такой вечный студент, который всем программы писал, гений, но другие предметы никак сдать не мог.
Спасибо за историю, удачи на конкурсе!
Мыр. Автору спасибо за массу воспоминаний и ассоциаций, которые ко мне пришли во время чтения этого очаровательного рассказа!
Надо пойти и записать идеи, дивно мотивирующая история у вас получилась, автор!!!
Класс, класс!
Чтобы написать комментарий, войдите

Если вы не зарегистрированы, зарегистрируйтесь

Предыдущая глава  
↓ Содержание ↓

↑ Свернуть ↑
Закрыть
Закрыть
Закрыть
↑ Вверх