Задача №1 Существительное С (что?), Прилаательное П(какое?), Предлог Пр(для,в,по,..), Наречие Н(откуда?), множественное число МЧ, единственное число ЕЧ, Падежи Пд.
Алгоритм:
Варианты ввода:
{С}
{С + П}
{С + П + Пр}
{П + С}
{П + С + Пр}
Для ЕЧ если окончание П:
(1)-АЯ, то
Пд = -ОГО //
(1)Если предпоследняя буква С = {г,ж,и,к,м,х,ч,ш,щ} или последняя буква = {ь,я}, то
окончание С будет -И
(2)Если предпоследняя буква С != С(1) и последняя буква !={ь,я}, то
окончание С будет -Ы
(2)-ЯЯ, то
Пд = -ЕЙ
(1) окончание С будет -И
(2)
(3)-ОЙ
Пд = -ОГО
(1)Если последняя буква С = -Ь, то
С = -Я
(2)Если окончание -ОК, то С=-КА
(3)иначе С=-А
(4)-ОЕ
Пд = -ОГО
(1)С = -А ()
(5)-ЕЕ
Пд = -ЕГО
(1)С = -А
(6)-ИЙ
Пд = -ЕГО
(1)С = -А
(7)-ЫЙ
Пд = -ОГО
(1)С = -А
Для МЧ если окончание П:
(1)-ИЕ
Пд = -ИХ
С = -ОВ,-ЕЛЬ(туфли),...,-ОК(футболки),...
(2)-ЫЕ
Пд = -ЫХ
С = -ОВ
Задача №2 Грани: Л(левая), П(передняя),Пр(правая),З(задняя),Н(нижняя), В(верхняя).
Алгоритм решения:
- (Л, Пр) Сравниваем напротив друг друга стоящие грани 2-х костей: а) Л и Пр одной с Л и Пр другой. Если совпали, то сравниваем остальные (п, в, з, н) т. о.: б) Находим грань 2-ой кости, равной П грани 1-ой и сдвигаем грани 2-ой кости, так чтобы найденная грань оказалась на одном уровне с П 1-ой. в) Сравниваем (п, в, з, н)[1-ой] с (п, в, з, н)[2-ой], если совпали, то удаляем вторую кость, идем дальше. Если не совпали, то увеличиваем счетчик и переходим к сравнению (З, П).
- (З, П) // Так же. Если совпали, то удаляем(присваиваем 0) вторую кость, идем дальше. Если не совпали, то увеличиваем счетчик и переходим к сравнению (В, Н).
- (В, Н) // Так же. Если совпали, то удаляем вторую кость, идем дальше. Если не совпали, то увеличиваем счетчик и переходим к сравнению следующей кости. Проверяем до конца списка.
- Возвращаем (количество_костей - счетчик)