Есть простенькая функция для получения падежа:
Private Function padej(ByVal num As Integer) As Integer
num = num Mod 100
Select Case num
Case 0, 5 To 20 ' 15 часов минут рублей очков коней бутылок
padejy = 3
Case Else
padejy = num Mod 10
Select Case padejy
Case 2 To 4: padejy = 2 ' 22-24 часа минуты рубля очка коня бутылки
Case 1: padejy = 1 ' 51 час минута рубль очко конь бутылка
Case Else: padejy = 3 ' 76 часов минут рублей очков коней бутылок
End Select
End Select
End Function
Затем, условно:
i = 13957
k = padej(i)
s = i & Choose(k, "час (рубль, конь, бутылка, окно)", "часа (рубля, коня, бутылки, окна)", "часов (рублей, коней бутылок, окон")
Но алгоритм не для русского языка может быть абсолютно другим!
В связи с чем хотелось бы записать функцию не алгоритмом, а математической формулой. Ну типа y= (x умножить на трампампа делить на тирлимтим).
Чтобы подставить икс и получить номер слова, которое нужно выбрать из заранее подготовленой строки. Для каждого языка, а то и для каждого конкретного случая своя формула.
Итак, вопрос: как описать эту и подобные функции не алгоритмом, а математической формулой?
А может быть есть какая-нибудь другая идея?