<span> // 1 гриб</span><span>
// 2-4 гриба</span><span>
// 5-10 грибов</span><span>
// 11-20 грибов исключение</span><span>
// 21 гриб</span><span>
// 22-24 гриба</span><span>
// 25-30 грибов</span><span>
// 31 гриб</span><span>
// 32-34 гриба</span><span>
// 35-40 грибов</span><span>
// 41 гриб</span><span>
// 42-44 гриба</span><span>
// 45-50 грибов</span><span>
// 51 гриб
как видим из вышеизложенного, мы должны только запрограммировать окончание первого десятка и исключение 11-20, которое будет портить нам малину, т.к. там одно окончание будет.
А остальное берем целочисленный остаток от деления на 10, и добавляем нужное окончание.</span><span />
<em>// PascalABC.NET 3.2, сборка 1338 от 16.11.2016</em>
begin
// Вводим строку с клавиатуры, приводим буквы к строчным,
// разбиваем на слова по пробелу и помещаем их в массив aW
var aW:=ReadlnString('->').ToLower.ToWords;
// Пропускаем массив через фильтр, оставляющий слова, содержащие
// русскую букву "а" и подсчитываем, сколько слов прошло через него.
// Полученное количество выводим.
Writeln('Слов с "а": ',aW.Where(w->Pos('а',w)>0).Count)
end.
Пример
-> Наша Таня громко плачет: уронила в речку мячик
Слов с "а": 4
Я МОГУ СКАЗАТЬ ТО ЧТО У НЕГО ЕСТЬ ВООБЩЕТО НЕ 1 ОШИБКА А 2 ОШИБОК))
T=t(0) +T
t(0)=(512*8*1024)/218=19239.9 сек
T=(5*1048576*8)/212=197844.528 сек
t=217084 сек
15483_10 = 36173_8 = 3*8^4+6*8^3+1*8^2+7*8^1+3*8^0