ВУЗ:
Составители:
Рубрика:
6
Как только обнаруживается сочетание букв – онок или –енок, происходит
выделение слова. Для этого в переменной osnova накапливаются буквы , пред-
шествующие сочетанию – нок, до тех пор , пока не будет считан разделитель
слов (точка , пробел или запятая) или не закончится текст. Затем к значению
переменной osnova добавляется буквосочетание – нок.
Если выделенное слово является исключением, то множественное число
определяется непосредственно. В противном случае , если в переменной osnova
предпоследняя буква оказывается шипящей , то к значению переменной osnova
(без последней буквы) добавляется буквосочетание – ата, иначе – ята.
Образованное множественное число сохраняется в переменной mnogo. Пе-
ременная p используется для хранения позиции буквы при формировании осно-
вы слова. Логическая переменная f хранит ответ на вопрос: “Является ли слово
исключением?” ♠
Program Multi;
Uses crt;
Var s:string; slovo, osnova, mnogo:string[20];
p,i:byte; f:boolean;
Begin
Textbackground(7); Textcolor(blue); Clrscr;
writeln('Введите текст:'); readln(s);
i:=5;
while i<=length(s)+1 do
begin
{выделение основы слов, оканчивающихся на –онок и -енок}
if (copy(s,i-4,4)='онок') or (copy(s,i-4,4)='енок')
then
begin
osnova:=''; p:=i-4;
repeat
osnova:=s[p]+osnova; p:=p-1
until (p=0) or (s[p] in [' ',',','.']);
slovo:=osnova+'нок';
f:=false;
{проверка совпадения слова с исключением}
if slovo='ребенок' then begin mnogo:='дети'; f:=true end;
if slovo='бесенок' then begin mnogo:='бесенята '; f:=true end;
if slovo='опенок' then begin mnogo:='опята';f:=true end;
if slovo='звонок' then begin mnogo:='звонки';f:=true end;
if slovo='позвонок' then begin mnogo:='позвонки';f:=true end;
if slovo='подонок' then begin mnogo:='подонки';f:=true end;
if slovo='жаворонок' then begin mnogo:='жаворонки';f:=true end;
if slovo='бочонок' then begin mnogo:='бочонки'; f:=true end;
{образование множественного числа и вывод на экран}
if not(f)
6 Кактоль ко обнаруживаетсясочетание букв–он ок или –ен ок, происходит выделение слова. Д ляэ того впеременной osnova накапливаю тсябуквы, пред- ш ествую щ ие сочетанию –н ок, до тех пор, покане будетсчитан разделитель слов(т очка , пр об ел и л и за пят а я) или не закончитсятекст. Затемкзначению переменной osnova добавляетсябуквосочетание –н ок. Е сли выделенное слово являетсяисклю чением, то множественное число определяетсянепосредственно. В противномслучае, если впеременной osnova предпоследняябукваоказываетсяш ипящ ей , то кзначению переменной osnova (б езпос л едн ей б укв ы) добавляетсябуквосочетание –а т а , иначе –ят а . О бразованное множественное число сохраняетсявпеременной mnogo. П е- ременнаяp исполь зуетсядляхраненияпозиции буквы при ф ормировании осно- вы слова. Л огическаяпеременнаяf хранит ответнавопрос: “Являетсяли слово исклю чением?” ♠ Program Multi; Uses crt; Var s:string; slovo, osnova, mnogo:string[20]; p,i:byte; f:boolean; Begin Textbackground(7); Textcolor(blue); Clrscr; writeln('Введите текст:'); readln(s); i:=5; while i<=length(s)+1 do begin {в ы дел ен и ео с н о в ы с л о в , о к а н чи в а ю щ и хс я н а –о н о к и -ен о к } if (copy(s,i-4,4)='онок') or (copy(s,i-4,4)='енок') then begin osnova:=''; p:=i-4; repeat osnova:=s[p]+osnova; p:=p-1 until (p=0) or (s[p] in [' ',',','.']); slovo:=osnova+'нок'; f:=false; {проверка совпадения слова с исключением} if slovo='ребенок' then begin mnogo:='дети'; f:=true end; if slovo='бес ен о к ' then begin mnogo:='бес ен ята '; f:=true end; if slovo='опенок' then begin mnogo:='опята';f:=true end; if slovo='звонок' then begin mnogo:='звонки';f:=true end; if slovo='п о з в о н о к ' then begin mnogo:='п о з в о н к и ';f:=true end; if slovo='п о до н о к ' then begin mnogo:='п о до н к и ';f:=true end; if slovo='жа в о ро н о к ' then begin mnogo:='жа в о ро н к и ';f:=true end; if slovo='бо чо н о к ' then begin mnogo:='бо чо н к и '; f:=true end; {образование множественного числа и вывод на экран} if not(f)
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »