Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки Cтатьи на компьютерные темы Компьютерный юмор Новости и прочее

Предопределённый результат

Начальник говорит: материаловеды просят сообщить им, какой бы выигрыш в весе конструкции могли бы получить, если бы применили новый сплав марки 01420 — гордости отечественной металлургии. Я, мол, завтра с утра в МАП еду, заодно и на эту тему поговорили бы. Оценить выигрыш? Да это мне как два регистра обнулить. У меня, как и у металлургов, тоже гордость имеется — собственная программа определения оптимального сечения элементов продольного силового набора. Стрингерами называются такие элементы. Новый сплав такой же прочный как обычный Д16Т, а удельный вес процентов на 12 меньше. Значит и выигрыш в весе должен быть процентов 10-15. «Щас» сделаю.

            В кино (особенно в голливудском) развернулся бы я во вращающемся кресле к компьютеру, нажал бы несколько любых клавиш, кроме пробела и ввода и сразу же огласил бы результат. Но на дворе начало 80-х, в НПО персональные ЭВМ «Мир-2» уже уступили место многотерминальной работе с БЭСМ-6.

            Поэтому менее пафосно поднимаюсь на этаж выше, где в комнатушке рядом с отлаживаемой СМ-4 стоят два VT-340, подключенные к БЭСМ. Сейчас, сейчас. Ввожу характеристики сплава и вуаля — брюки превращаются… Превращаются брюки… Что? Масса отсека возрастает на 100 кг? Блин, да ты просто мастер поиска оптимальных сечений! Значит, если применить более легкий и такой же прочный материал, то конструкция утяжеляется? Это открытие. Спокойно. Просто не то ввел. Где-нибудь перепутал сантиметры с миллиметрами.

            Заглядывает начальник:
— Ну как? Я уже ухожу.
— Э-э, да щас, опять БЭСМ зависла (наглая ложь, ВЦ работает как часы «Полет»).
— Ну ладно, скажу, что ещё не оценивали. Потом сообщим.

            Мое самомнение падает до нуля. А как я хвастался своими поисками экстремумов. Алгоритм действительно имел несколько остроумных решений. Дело в том, что найти наименьшее допустимое сечение стрингера — задача непростая. К тому же в «математический» поиск минимума вмешиваются конструктивные ограничения. Например, вот здесь бы сделать полочку покороче, но заклепочному автомату нужна площадка 22 мм. А здесь бы строительную высоту уменьшить, но внутри именно этого профиля должен идти трубопровод диаметром 100 мм и т.д. и т.п.

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

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

            Начальник отнесся к этому внимательно и предложил пойти к прочнистам и разобраться в чем дело. Но поход получился плачевным. Как молодой специалист я был послан далеко и надолго. Дескать, программист он, права пришел качать. Экстремумы он ищет, щенок, максимальный радиус инерции он нашел, сопляк. Да тебя в проекте ещё не было, а мы для Королева корпуса рассчитывали. И все испытания успешно проходили. Мы за это отвечаем. Безо всяких алголов и БЭСМов.

            Через несколько месяцев прибежал к нам другой, правда, сотрудник этого же отдела. Караул, ошибка вышла. Может мой поход и подтолкнул их к перепроверке. Дескать, решение они уже нашли (дополнительный лист обшивки вставить), с конструкторами договорились, только наша, проектантов, виза нужна, подпишите. Жаль, не было меня в тот день. Посмотрел бы я в ясные глаза того, кто меня матом послал. Подписали, конечно. Так и полетела «Энергия» с дополнительными листами в хвостовых отсеках «боковушек».

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

            В подавленном состоянии еду домой. И тут доходит. Никаких ошибок и нет. Правильный ответ был получен сразу же: при таких условиях применение нового материала нецелесообразно. Дело в том, что новый сплав легче, но и менее упруг. Модуль упругости у него около 7380, а у обычного алюминия 6900. Значит, при тех же нагрузках у него меньше деформации и он меньше нагрузки передает на обшивку. Ну, как в чуме: жерди и шкуры. Вся нагрузка на жерди, а шкуры просто так висят, ненагруженные. Вот если бы и обшивка была из такого же материала, но, увы, порошковая металлургия делает пока только профили, а не листы.

            Получилось, что обшивка по условию задачи такая же, но на неё нагрузка почти не идет и стрингеры надо делать толще. Поэтому общая масса отсека увеличивается, а не уменьшается. И все цифры, объясняющие это, все время были перед глазами, но я их не видел потому, что был заряжен на предопределенный результат. Дескать, должно быть легче — и точка. Моя же программа оказалась умнее меня. Ну не умнее, просто старательнее как начинающий специалист, который все пытается сделать по инструкции и перепроверить. А сам я типа уже опытный: чего, мол, там считать-то и так ясно!

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

Автор: Д.Ю.Караваев. 05.02.2017

Опубликовано: 2018.08.26, последняя правка: 2019.01.29    14:26

Оцените

Добавить свой отзыв

Написать автору можно на электронную почту mail(аt)compiler.su

Авторизация

Регистрация

Выслать пароль

Карта сайта


Каким должен быть язык программирования?

Анализ и критика

Описание языка

Компилятор

Отечественные разработки

Cтатьи на компьютерные темы

Двадцать тысяч строк кода, которые потрясут мир?

Почему владение/заимствование в Rust такое сложное?

Масштабируемые архитектуры программ

Почему Хаскелл так мало используется в отрасли?

Бесплатный софт в мышеловке

Исповедь правового нигилиста

Русской операционной системой должна стать ReactOS

Почему обречён язык Форт

Программирование без программистов — это медицина без врачей

Электроника без электронщиков

Программисты-профессионалы и программирующие инженеры

Статьи Дмитрия Караваева

●  Идеальный транслятор

●  В защиту PL/1

●  К вопросу о совершенствовании языка программирования

●  О реализации метода оптимизации при компиляции

●  О реализации метода распределения регистров при компиляции

●  О распределении памяти при выполнении теста Кнута

●  Опыты со стеком или «чемпионат по выполнению теста Кнута»

●  О размещении переменных в стеке

●  Сколько проходов должно быть у транслятора?

●  Чтение лексем

●  Экстракоды при синтезе программ

●  Об исключенных командах или за что «списали» инструкцию INTO?

●  Типы в инженерных задачах

●  Непрерывное компилирование

●  Об одной реализации специализированных операторов ввода-вывода

●  Особенности реализации структурной обработки исключений в Win64

●  О русском языке в программировании

●  Формула расчета точности для умножения

●  Права доступа к переменным

●  Заметки о выходе из функции без значения и зеркальности get и put

●  Ошибка при отсутствии выполняемых действий

●  Скорость в попугаях

●  Крах операции «Инкогнито»

●  Предопределённый результат

Компьютерный юмор

Новости и прочее

Последние комментарии

2019/07/21 20:30 ••• Автор сайта
Деньги = работа / знание

2019/07/20 19:42 ••• Александр Коновалов aka Маздайщик
Права доступа к переменным

2019/07/20 15:11 ••• Александр Коновалов aka Маздайщик
Статьи Дмитрия Караваева

2019/06/25 11:22 ••• VIT1972
Идеальный транслятор

2019/06/05 23:21 ••• kt
К вопросу о совершенствовании языка программирования

2019/05/29 00:42 ••• rst256
Программирование без программистов — это медицина без врачей

2019/05/14 16:10 ••• utkin
Обработка ошибок

2019/05/09 18:05 ••• евгений
Русский язык и программирование

2019/04/22 16:19 ••• Автор сайта
Почему языки с синтаксисом Си популярнее языков с синтаксисом Паскаля?

2019/04/03 22:24 ••• Антон
Все голосования

2019/04/02 12:28 ••• Автор сайта
Шестнадцатиричные и двоичные константы

2019/04/02 12:25 ••• Автор сайта
Выбор кодировки для компилятора