Предупреждение: у нас есть цензура и предварительный отбор публикуемых материалов. Анекдоты здесь бывают... какие угодно. Если вам это не нравится, пожалуйста, покиньте сайт. 18+

История №1206471

Почитал истории о том, к чему приводили плохо протестированные программы, и вспомнил свою. На фоне взорвавшихся АЭС и разбившихся самолетов ерунда, но для меня, поверьте, это была катастрофа.

Середина 80-х, времена, когда вычислительные машины были большими, принтеры назывались АЦПУ, а программы писались на русском ассемблере и хранились на перфокартах. Мне, молодому специалисту, поручили первое в жизни задание: автоматизировать печать справок о размере зарплаты. Сложность состояла в том, что фамилия-имя-отчество в справке должны были печататься в дательном падеже: выдана Иванову Петру Демидовичу. Нормальный человек просто набил бы еще одну колоду перфокарт с именами в нужной форме. Но я же крутой программист, выпускник московского вуза. Я придумал алгоритм.

Я написал программу, склоняющую имя в зависимости от последней буквы. Скажем, последнее «А» всегда меняется на «Е»: Анна – Анне, Никита – Никите. «Я» меняется на «И»: Виктория – Виктории, «Й» – на «Ю»: Сергей – Сергею. Чуть сложнее вышло с мягким знаком, Игорь – Игорю и Любовь – Любови склоняются по-разному, но я научился определять пол по последней букве отчества. А к именам, кончающимся на согласную, просто добавляется «У»: Петр – Петру, Иван – Ивану.

Никакого QA тогда не было, сам провел тестирование, то есть распечатал несколько пробных справок. Программу внедрили, она за пару часов напечатала кипу справок на всё предприятие, бухгалтера не могли нарадоваться: я избавил их от нескольких дней сидения за пишущей машинкой.

И тут, пока я мысленно вертел в пиджаке дырку для ордена, меня вызывает начальник ВЦ. У него в кабинете сидит зам. директора, и оба тычут мне свои справки. На них написано: «выдана Малинину Павелу Михайловичу» и «выдана Гунько Леву Яковлевичу».

Программу, я, конечно, исправил за полчаса. Но премию не получил и самомнения сильно поубавилось.
+472
Проголосовало за – 544, против – 72
Статистика голосований по странам
Чтобы оставить комментарии, необходимо авторизоваться. За оскорбления и спам - бан.
54 комментария, показывать
сначала новые

Clopodav23.04.21 08:36

Была у меня обратка. Писал тест на вакансию. Написал, проверил, послал на контроль. Прошел! Потом сам у себя и у них нашел дыру... Ихний верификатор не поймал один неправильный вариант.

+-1
ответить

Piter piter SPB 22.04.21 23:07

В программу вставить автомашину суммы напротив своей фамилии на втрое большую.
И никакой премии не надо)

+0
ответить

Plato22.04.21 22:31

сам провел тестирование, то есть распечатал несколько пробных справок
----------
Хорошо что не самолет программировал, провел пяток тестов - летает, ну их хер с ним. А с пассажирами вышел шестой вариант - и как наебнётся.
Если не слишком большая контора проще уж полный тест провести. А если вроде Сбера или РЖД тогда словари имен, хотя бы наиболее распространенных в мире.
Всякие Гурбангулы́ Мяликгулы́евичи или какие-нибудь азиаты с именем из одних гласных, конечно, могут обидеться, но там индивидуально можно прописать.

+-1
ответить

Хренонимус ➦Plato22.04.21 22:45

Да, программирование самолетов, лучше доверить профессионалам! Команде Боинга, например.

+1
ответить

Piter piter SPB ➦Хренонимус22.04.21 23:12

Программирование автозамены слов в тексте?

+0
ответить

Pax Slavica ➦Plato23.04.21 03:41

«А если бы он вёз патроны?!» (х/ф Обыкновенная история).

+-1
ответить

Хренонимус ➦Piter piter SPB23.04.21 08:27

Напортачат...

+0
ответить

Хренонимус ➦Хренонимус23.04.21 08:32

Фразу: "move fast and break things" нужно внести в справочники, как одну из самых убийственных.

+0
ответить

Мефодий1 ➦Хренонимус23.04.21 10:31

У меня яндекс переводчик перевел эту фразу так:
Двигайтесь быстро и ломайте вещи.
А как она переводится на самом деле?

+0
ответить

AK 22.04.21 17:11

Лингвистика вещь вообще непростая.
Я как-то видел тест: написать птограмму , которая из суммы в копейках выводит рубли и копейки, с правильными падежами.
Например:
4567 = 45 Рублей 67 Копеек.
Жутко сложно, хотя , казалось бы, примитивно!

+1
ответить

ystervark➦AK22.04.21 18:42

ну если там сотни есть, то и не каждый человек справится. Многие дикторы телевидения, например, не умеют.

+1
ответить

AK ➦ystervark22.04.21 19:03

Ну естесственно. И сотни и тысячи.

+0
ответить

Морж➦AK22.04.21 19:58

все же легче, чем имена склонять. Имен больше, и вариантов, соответственно, плюс несклоняемьiе иностранньiе.

+0
ответить

Piter piter SPB ➦Морж22.04.21 23:08

Ну и время для написания профи - час от силы

+0
ответить

Мефодий1 ➦AK23.04.21 10:34

Такую программу я писал в свое время еще на Бейсике под MS DOS.
Но она у меня не только разбивала сумму на рубли и копейки, но и выводила, как надо в бухгалтерии:
Рубли словами, а копейки цифрами.
4567 = Сорок пять рублей 67 Копеек.
Вот там действительно было сложно!

+0
ответить

Пирамидон 22.04.21 16:57

А что значит " хранились на перфокартах"?

Я до сих пор на них всё нужное записываю.
;)

+5
ответить

mr_bl ➦Пирамидон22.04.21 18:32

Карты пустые. Отформатировал их что ли?

+2
ответить

vvt251 ➦mr_bl22.04.21 19:45

На картах пишут на другой стороне.

+0
ответить

vvt251 ➦Пирамидон22.04.21 19:45

Где берешь?
А то у меня все кончились.

+0
ответить

sasha22148➦Пирамидон23.04.21 05:45

согласен. очень удобно, особенно карандашом писать пометки. стер и заново.
а можно фото девайса , куда 3,5 дюйма дискеты вставляешь? или хотя бы, как он назывался?

+0
ответить

Bad__Guy➦Пирамидон24.04.21 19:19

Всё нужное в машинных кодах записываешь или не труЪ?

+0
ответить

Bad__Guy➦sasha2214824.04.21 19:26

У него ещё пятидюймовые: ты салага.

+0
ответить

ElenaEPetrova 22.04.21 16:50

У меня похожая задача была, только в ней было много татарских имен типа Гузель или Зейнаб, а ещё фамилии типа Шум или Любич. Слава Богу, у меня было время для подробного тестирования программы. В итоге заметную часть текста занимали описания частных случаев.

+1
ответить

Морж22.04.21 16:27

А вот фамилия "Лев" так и склоняется:

Лев-Лева-Леву-Лева-Левом-Леве.

+0
ответить

lohhersonskii22.04.21 15:28

Какие обидчивые эти начальники. А могли бы просто премию выдать за сделанную работу.

+0
ответить

NeVasia 22.04.21 15:10

Была аналогичная проблема. Но мы ЕГЭ не Здавали, по русскому была 5 и такой тупой Ашибки даже не предполагалось.

+3
ответить

Michael196922.04.21 14:12

Как известно, мэйнфреймы в Советский Союз продавали неохотно, опасались использования для разработки военных решений. Поэтому, когда очень захотели купить такое железо, решили сделать так, чтобы продавцу очень захотелось его продать, для чего и софт заказали тоже у него. Заказали систему для бронирования авиабилетов, железо поставляли IBM, софт тоже заказали им (не знаю, только ли основной или и локализацию тоже). А тут такая проблема, как отчество. Решили, что оно должно определяться автоматически по полу, а пол - автоматически по имени. С формализацией правила определения пола по имени были большие проблемы, видимо, в какой-то из ранних версий пытались считать, что все имена, заканчивающиеся на гласную - женские.
Я был знаком с человеком, который в авиационных билетах того времени был Илья Михайловна.

+4
ответить

mews ➦Michael196922.04.21 19:10

Вот я сейчас совсем не понял.
Зачем отчество должно было определяться? На основании чего? Имени отца? А откуда брать имя отца?
Во все системы отчество вбивается пользователем.

+0
ответить

Michael1969➦mews22.04.21 19:43

Определялось, естественно, не отчество - я неудачно выразился, определялся его род

+0
ответить

Chicago95 ➦mews22.04.21 23:01

Зачем отчество должно было определяться? На основании чего? Имени отца? А откуда брать имя отца?
Во все системы отчество вбивается пользователем.

А как бы ты хотел в России без отчества? Тем более самому вбивать. Вы там такого навбиваете!! А так пока пишешь фамилию система делает генетический анализ и сама вписывает отца. Всё! По проблемам

+1
ответить

mews ➦Michael196923.04.21 06:36

Так если отчество уже внесено в базу - зачем что-то определять? Почему не оставить как есть?
И что эта программа сделала бы с гражданами, скажем для примера, Андреем Ен Нам Ивановым и Светланой Алехандро Рамирес?

+0
ответить

Мефодий1 ➦Michael196923.04.21 10:42

А как же женские имена типа Любовь, Эсфирь, Руфь, Юдифь и тому подобные?

+0
ответить

mews 22.04.21 14:11

Поскольку в любом грамматическом правиле возможны исключения, для падежей имен нужно создавать таблицу, при отсутствии в ней нужного имени программа должна громко звать на помощь. Все просто.

+8
ответить

Alexander_A 22.04.21 12:20

А всё потому, что программист должен писать код, а не разрабатывать алгоритмы в незнакомых ему областях. А то всякие склонения и спряжения...
Ну не переводится Блюхер и не склоняются фамилии на ко.

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

+2
ответить

ystervark➦Alexander_A22.04.21 13:18

русский ассемблеры существовали, например, "Автокод БЕМШ" для БЭСМ-6

+0
ответить

Alexander_A ➦ystervark22.04.21 13:35

Так это было ещё в 70-е, а то и в 60-е.

+0
ответить

Филимон Пупер ★★★★★➦Alexander_A22.04.21 13:59

Существовал русский ассемблер. Машина была малая бухгалтерская, М-5000. И команды типа ПРЫГ вместо GOTO.

+8
ответить

ystervark➦Alexander_A22.04.21 14:42

последнюю БЭСМ-6 на нашем ВЦ сняли уже в 90-е. В 80-е их было еще довольно много рабочих по стране. Хотя и не думаю, что их применяли для зарплатных квитанций. Но были машины и поменьше.

+1
ответить

Alexander_A ➦Филимон Пупер22.04.21 14:44

ПРЫГ.... это пять...
Один из лучших АйТи-анекдотов.
))))))

+3
ответить

Alexander_A ➦ystervark22.04.21 14:45

Так их выпустили-то всего штук 200!
Их изначально не было много. )))

+0
ответить

ystervark➦Alexander_A22.04.21 14:47

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

+5
ответить

Alexander_A ➦ystervark22.04.21 16:11

Так тут было 2 правильных пути:
- требовать детальную постановку.
- самому стать специалистом в области и написать эту постановку.

Автор же пошёл по третьему пути. И получился комоблин.
Зато смешной.

ЗЫ. Я лично хрен знаю как салгоритмизировать задачу.
Вот есть у вас какой-то хмырь в правительстве по фамилии Вайна. Ну не склоняется она. Как р

+1
ответить

Alexander_A ➦Alexander_A22.04.21 16:14

...отличить такую фамилию от Иванова?
А как определить пол существа Ариэль Глушко?

+1
ответить

Пирамидон ➦Alexander_A22.04.21 16:49

"Backspase" была "ЗБ"
То ли заебись, то ли забей.

+0
ответить

ystervark➦Alexander_A22.04.21 18:39

А алгортма нормального и нет. Полно есть несклоняемых имен, фамилий и отчеств. Или склоняемых нестандартно, как в исходном примере. Но закономерности тут нет, Павел будет Павлу, но Гавел будет Гавелу. Лев - Льву, но Лесь - Лесю. А как следует склонять фамилию Козел, и вовсе непонятно.

+0
ответить

Филимон Пупер ★★★★★➦ystervark22.04.21 18:54

Лесю и Игорю одинаково. Исключений не так много, если автоматизировать не весь СССР, а одно предприятие, их все можно прописать хардкодом. Что я в итоге и сделал.

+1
ответить

vvt251 ➦ystervark22.04.21 19:23

Последнюю БЭСМ-6 произвели в 1987 году.
// Хотя и не думаю, что их применяли для зарплатных квитанций //
Так что вполне могли. Более мощные машины (386, например) для тяжёлых задач использовали, а БЭСМ-6 и для печати модно было.

+0
ответить

ystervark➦vvt25122.04.21 20:03

Насчет мощности я бы поспорил. "Тяжелыми" обычно называются вычислительные задачи (с плавающей точкой). 80386 без сопроцессора тут вообще без шансов, с сопроцессором - отстает раза в полтора-два (длительность исполнения операций в 30-60 тактов при частоте в 16-33 МГц, при 1 млн плавающих операций на БЭСМ).

А насчет квитанций - на предприятиях обычно стояли ЕС, они были и дешевле. Или и вовсе СМ. Но все могло быть. Хотя на стандартном Бэсмовском АЦПУ квитанции выйдут крайне некрасивыми, уж очень там буквы прыгали.

+0
ответить

Филимон Пупер ★★★★★➦ystervark22.04.21 20:19

Да, это была СМ, даже более дешевый вариант - М-5000.

+0
ответить

vvt251 ➦ystervark22.04.21 22:42

Во-первых, память у БЭСМ-6 была в конце 128 КБ. В конце 80х это просто смешно. Во-вторых, сопроцессора были.
У нас в институте в 1979 году купили норвежский миникомпьютер и провели связь с БЭСМ-6, чтобы пользователи свои программы перебрасывать, не тянула БЭСМ-6. Но как только появились 286, то мы этим норвежским компьютером перестали пользоваться - он уже тоже не тянул. А уж про 386 и говорить нечего.
А вот печатать на БЭСМ-6 было хорошо. Ее ацпу - танком не свернешь.
И чего не печатать,если больше делать на ней нечего, а деньги плочены.

+0
ответить

Мефодий1 ➦Alexander_A23.04.21 10:48

Ладно Ариэль, некоторые даже у Вали Петренко или Жени Коган определить пол не могут.

+0
ответить

Мефодий1 ➦ystervark23.04.21 10:51

Фамилия Козел склоняется так, чтобы во всех падежах оставалась основа Козел.
Козел - Козела - Козелу - Козела - Козелом - о Козеле.
Никакого Козла не должно быть ни в коем случае!

+1
ответить

ystervark➦Мефодий123.04.21 10:58

Это если ударение на первый слог. А если на второй?

+0
ответить

Общий рейтинг комментаторов
Рейтинг стоп-листов

Рейтинг@Mail.ru