не знаю я насчет интеллектов всяких искусственных - полагаю тут нужна таблица, причем для каждого случая разное количество столбиков. поясняю:
сначала определяется количество сосок. 1, 2, 5, 21, 22 и так далее. по возможности вычисляется что-то типа прогрессии, под которую можно подгонять склонения.
типа если 1 то им. соска, дат. соску
если больше 1 - им. соски, дат. соски
если больше 4, то им. сосок, дат. соски
если 21 - то, им соска, дат соску
если больше 21, то им. соски, дат. соски
****
упрощаем эту таблицу применяя звездочку - подразумевая любую цифру, в том числе пустой символ
если *1 - то соска, соску
если больше от *2 до *4 соски, соски
если от *5 до *20 сосок, сосок
теперь мы определили как правильно будет писать что-то типа:
22 соски не могут вам дать прямо сейчас
исходя из соски будем строить дальше выражение и немного перефразируем:
22 соски не могут быть вам выданы
21 соска не может быть вам выдана
видим разницу, и довносим в нашу таблицу еще 2 столбика, и кстати ноль еще надо добавить включит и сам 0 сосок, 100 сосок, 1000 сосок:
если *1 - то соска, соску, может, выдана
если больше от *2 до *4 соски, соски, могут, выданы
если (от *5 до *20) ИЛИ *0 то сосок, сосок, могут, выданы
__________________
хочу картинку в подпись!
|