Вот он:
Код: Выделить всё
function declension($int, $expressions)
{
settype($int, "integer");
$count = $int % 100;
if ($count >= 5 && $count <= 20) {
$result = $int." ".$expressions[2];
} else {
$count = $count % 10;
if ($count == 1) {
$result = $int." ".$expressions[0];
} elseif ($count >= 2 && $count <= 4) {
$result = $int." ".$expressions[1];
} else {
$result = $int." ".$expressions[2];
}
}
return $result;
}
Код: Выделить всё
ЗАДАЧА СклонениеЧ(Число:ЦЕЛ; сл1,сл2,сл3:РЯД ИЗ ЗНАК);
УКАЗ
Вывод.ЧЦел("%d ",Число,0,0,0);
ЕСЛИ (Число ОСТАТОК 100 >= 5) И (Число ОСТАТОК 100 <= 20) ТО Вывод.Цепь(сл3)
ИНАЧЕ
ЕСЛИ Число ОСТАТОК 10 = 1 ТО Вывод.Цепь(сл1)
АЕСЛИ (Число ОСТАТОК 10 >= 2) И (Число ОСТАТОК 10 <= 4) ТО Вывод.Цепь(сл2)
ИНАЧЕ Вывод.Цепь(сл3)
КОН;
КОН;
КОН СклонениеЧ;