Склоняем наименование(ий)

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Вот тут рядом редкие конструкции просклоняли. :) В том числе число прописью на мове и пр.
А есть ли примерчик для слова наименование рядом, типа
1 наименование
2 наименования
3 --
4 --
5 наименований
...
11 наименований
12 наименований
...
21 наименование
на собаках естессно
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Ну что-то вроде такого?
Это писал для Default Value для мультизначного поля
Код:
count := 30;
@For( n := 1; n <= count; n := n + 1;
word := @Text( n ) + " наименовани";
rez := rez : @If( @Modulo( n; 10 ) = 1; word + "е"; 
@If( @Modulo( n; 10 ) = 2:3:4; word + "я"; word + "й")
) 
);
@Trim( rez )

тут исправленый код
 
H

hosm

не всё так просто :wacko: а как же 11-14? - тут "наименований" надо
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
ну и не так уж и сложно
Код:
@For( n := 980; n <= 1020; n := n + 1;
word := @Text( n ) + " наименовани";
rez := rez : @If( @Modulo( n; 10 ) = 1 & @Modulo( n; 100 ) != 11; word + "е"; 
@If( @Modulo( n; 10 ) = 2:3:4 & !( @Modulo( n; 100 ) = 12:13:14 ); word + "я"; word + "й")
) 
);
@Trim( rez )
 
O

Omh

Круто!
Я бы начал библиотеку писать :wacko:
 
A

Akupaka

мне кажется или правило можно так сделать?
то, что имеет в первом десятке 1, то "наименование", кроме 11
1, 21, 31, 41 - наименование
аналогично
2 - 4, - наименования
5 - 9, кратно 10, а также 0, 11-19 - наименований
 
H

hosm

а зачем @Modulo( n; 100:1000 ) - по-моему, достаточно только 100 или взять последние 2 цифры?
не успела попробовать, отвлекли по работе :wacko:
Akupaka - по алгоритму ты прав.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
OKEN точно! спасибо :wacko:
меня самого загоняли :)

исправил
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!