Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки 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

ОценитеОценки посетителей
   ██████████████████████████████████████████ 1 (100%)
   ▌ 0
   ▌ 0
   ▌ 0

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

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

Авторизация

Регистрация

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

Карта сайта


Содержание

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

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

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

Компилятор

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

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

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

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

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

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

●  Программирование исчезнет. Будет дрессировка нейронных сетей

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

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

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

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

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

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

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

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

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

●●  В защиту PL/1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

●●  Модификация исполняемого кода как способ реализации массивов с изменяемыми границами

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

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

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

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

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

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




Последние отзывы

2019/11/09 21:27 ••• kt
Программирование без программистов — это медицина без врачей

2019/11/07 10:58 ••• kt
Признаки устаревшего языка

2019/10/28 23:55 ••• Автор сайта
Типы в инженерных задачах

2019/10/15 16:32 ••• kt
Модификация исполняемого кода как способ реализации массивов с изменяемыми границами

2019/10/07 14:15 ••• Автор сайта
О наименовании проекта и языка программирования

2019/09/19 15:23 ••• kt
Некошерный «goto»

2019/09/13 16:38 ••• Автор сайта
Программирование исчезнет. Будет дрессировка нейронных сетей

2019/09/12 20:40 ••• Александр Коновалов aka Маздайщик
Циклы

2019/08/30 07:57 ••• Noname
Почему обречён язык Форт

2019/08/29 09:07 ••• рст256
Устарел ли текст как форма представления программы

2019/08/19 19:19 ••• Автор сайта
Шестнадцатиричные и двоичные константы

2019/07/30 14:06 ••• Александр Коновалов aka Маздайщик
К вопросу о совершенствовании языка программирования