Склонение существительных. При склонении существительных мужского рода, оканчивающихся на -ок: кружок, масленок, брелок и т.д. буква о становится беглой гласной: кружка, масленком и т.д. Из этого правила есть исключения: 1) слова из трех букв: ток, сок и т.д.; 2) слова: скок ,блок, волок, восток, шток - и слова, основа которых оканчивается на такие сочетания бука: перескок, пищеблок, юго-восток и т.д.; 3) ряд слов-исключений, среди которых наиболее употребляемы следующие: брелок, щелок, войлок, челнок, зарок, срок, урок, знаток, поток, сток, артишок. Из заданного текста выбрать слова на -ок и получить их в указанном падеже, падеж указывается соответствующей буквой в скобках непосредственно после слова.
Помогите... кто знает... хоть часть
klem4
10.12.2006 1:20
Вот, потестируй:
uses crt;
type
TWord = String; TCase = (I, R, D, V, T, P);
function IsException(const word: TWord): Boolean; const
while (i <= n) and (word <> exceptions[i]) and not ((i <= 5) and (Copy(word, Length(word) - Length(exceptions[i]) + 1, 255) = exceptions[i])) do inc(i);
IsException := not(i > n);
end;
function Convert(word: TWord; _case: TCase): TWord; begin
if (Length(word) = 3) or IsException(word) then begin case _case of I: Convert := word; R: Convert := word + 'а'; D: Convert := word + 'у'; V: Convert := word; T: Convert := word + 'ом'; P: Convert := word + 'е'; end; end else case _case of I: Convert := word; R: Convert := Copy(word, 1, Length(word) - 2) + 'ка'; D: Convert := Copy(word, 1, Length(word) - 2) + 'ку'; V: Convert := word; T: Convert := Copy(word, 1, Length(word) - 2) + 'ком'; P: Convert := Copy(word, 1, Length(word) - 2) + 'ке'; end;