Задача 3 Склонение окончаний

Иногда необходимо изменить окончание в словах в зависимости от количества чего бы то ни было.

Самый яркий и простой пример, это корзина товаров в интернет магазине, ведь если добавляем один — это товар, а если два, то это уже будет товара.

В первой реализации используем остаток от деления %, переменные и ветвления.

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

Все довольно просто. Существует некая закономерность, благодаря которой склонение окончаний в цифрах постоянно повторяется. Для выявления последней необходимо прописать цифры в столбик в Exel и выявить эту закономерность.

Для начала рассмотрим 4 крайних столбца:

Каждый столбик имеет 3 группы, в которых окончания будут одинаковыми.

Как видим, цифры оканчивающиеся на 5,6,7,8,9,0 имеют окончание товаров

Цифры, оканчивающиеся на 2,3,4 имеют окончание товара

А цифры с окончанием 1, такие как: 21, 31, 41, 51 — это товар

В левой колонке дела обстоят несколько иначе, и если цифры от 0 до 4 подчиняются всем правилам, то склонение окончаний для диапазона чисел от 5 до 19 будут другими, поэтому первым, что необходимо сделать, начав писать код, так это сделать проверку в php для этого диапазона.

Эту проверку мы проводили с самого начала, в пятой строке кода:

Теперь стоит разобраться, для чего нужна запись в четвертой строке кода.

Какое бы число не содержала переменная $a , разделив его на 10 мы всегда получим значение от 0 до 9. Записав это значение в переменную $m, сделаем еще 2 дополнительные проверки и закончим с решением задачи.

И так, в переменной $m теперь хранится значение от 0 до 9 и если $m == 1, то выводим значение: «товар», (8я и 10я строка кода).

Исключим еще один диапазон чисел, остаток от деления которых будет равен 2,3 или 4. Запись в коде — с 12 по 14 строки.

Остается прописать последние строки, в которых укажем, что окончание во всех остальных случаях будет: «товаров«.

Быстро проверить исполнение скрипта возможно, поместив его содержимое в цикл for. Результатом исполнения будет вывод на экран чисел от 0 до 100.

Запишем подобный код, используя функцию:

Изменим код, добавив дополнительную переменную $h и в первой проверке будем подставлять ее значение. Такие доработки позволят выводить правильное значение на всех возможных вариантах.

Проверим выводимое значение до 1000:

Применим массив и передадим его значение в функцию, благодаря чему станет возможно подставлять значения для изменений в одном месте.


Склонение окончаний в часах, часов

Для написания статьи материал и информация использовались с этого видео:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *