Задать вопрос
@igoodmood

Как правильно указать промежуток чисел,при котором будет правильно выбран падеж слова?

Как указать правильно промежуток,чтобы не перечислять числа от 1 до 100. Например, при вводе числа "67" выбирался третий вариант падежа.
c84a1d68ecf948f9ab1ebb57621ff23e.png
  • Вопрос задан
  • 273 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Ravenenok
x = (остаток от деления N на 10)
Если  x == 1 и N != 11 {
  "Ворона"
  Иначе Если x >= 2 и x <= 4 и N < 12 и N > 14 {
    "Вороны"
    Иначе {
      "Ворон"
    }
  }  
}
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
Вот правила множественного числа разных языков.
www.unicode.org/cldr/charts/latest/supplemental/la...

Я с подобным работал, и если есть возможность выдавать один и тот же ответ в двух разных ветках — то так.
Остаток от деления на 100 от 5 до 20 → «ворон»
Остаток от деления на 10 равен 1 → «ворона»
Остаток от деления на 10 от 2 до 4 → «вороны»
Иначе — «ворон».

Я эти правила записывал вот в таком виде.
<pluralRules nDecisions="3" unknownInt="2">    ← вариантов три; если ни одно из правил не подошло, брать последний («ворон»)
		<rule mod="100" min="10" max="20" decide="2" />  ← остаток на 100 от 10 до 20 — «ворон»
		<rule mod="10" min="1" max="1" decide="0" />
		<rule mod="10" min="2" max="4" decide="1" />
	</pluralRules>
Ответ написан
Комментировать
@abcd0x00
Как указать правильно промежуток,чтобы не перечислять числа от 1 до 100.

Надо брать только последние две цифры (даже если число трёхзначное) - 00..99.
Потом просто их разделяешь на две переменные и делаешь проверку по отдельности.
То есть никакого анализа двузначных чисел не должно быть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы