Язык программирования Pascal. Строки и записи. Васильев В.В - 5 стр.

UptoLike

5
Var s1,s2:string;
Function RightPosition(str1,str2:string):byte;
function Invert(str:string):string;
var i:integer; s:string;
begin
s:='';
for i:=1 to length(str) do s:=copy(str,i,1)+s;
Invert:=s
end;{Invert}
Begin
RightPosition:=length(str1)-pos(Invert(str2),
Invert(str1))+1-
length(str2)+1;
End; {RightPosition}
Begin
Textbackground(7); Textcolor(blue); Clrscr;
write('Введите строку:'); readln(s1);
write('Введите подстроку:'); readln(s2);
writeln('RightPosition=',RightPosition(s1,s2));
readkey
End.{Right2}
К символу строки можно обратиться также, как к элементу одномерно-
го массива. Например , чтобы обратиться к 3-му символу строки s доста-
точно указать s[3].
Как, используя предшествующее замечание, можно изменить функцию
Invert?
При описании переменных типа String можно ограничить максимально
возможную длину строки константой N типа byte:
Const N=50;
Var Идентификатор_строки: String[N];
Рассмотрим еще одну задачу обработки текстовой информации.
Задача 2. Для большинства существительных, оканчивающихся на онок и
eнок, множественное число образуется от другой основы . Как правило, это
происходит по образцу: цыпленок цыплята, мышонок мышата и т. д. (в но-
вой основе перед последней буквой m пишется а или я в зависимости от преды-
дущей буквы: если это шипящая, то а, иначе - я ). Имеются слова- исключения,
из которых укажем следующие: ребенок (дети ), бесенок (бесенята), опенок
( опята), звонок (звонки), позвонок (позвонки), подонок (подонки), жаворонок
( жаворонки), бочонок (бочонки). Пусть дан русский текст, слова которого раз-
делены пробелами, запятой или точкой . Все слова, оканчивающиеся на онок и
енок, представьте во множественном числе.
Текст будем читать в переменную s типа string. В цикле будем просмат-
ривать буквы текста слева направо. Позиция просматриваемой буквы хранится
в переменной i .
                                                    5
Var s1,s2:string;
Function RightPosition(str1,str2:string):byte;
  function Invert(str:string):string;
   var i:integer; s:string;
   begin
    s:='';
    for i:=1 to length(str) do s:=copy(str,i,1)+s;
    Invert:=s
   end;{Invert}
 Begin
  RightPosition:=length(str1)-pos(Invert(str2),
Invert(str1))+1-
                 length(str2)+1;
 End; {RightPosition}
Begin
    Textbackground(7); Textcolor(blue); Clrscr;
    write('Введите строку:'); readln(s1);
    write('Введите подстроку:'); readln(s2);
    writeln('RightPosition=',RightPosition(s1,s2));
    readkey
End.{Right2}
     К с и м в ол у с т р оки м ож н о об р а т и т ьс я т а кж е, ка к к эл ем ен т у одн ом ер н о-
    го м а с с и в а . На пр и м ер , чт об ы об р а т и т ьс я к 3-м у с и м в ол у с т р оки s дос т а -
    т очн о ука за т ь s[3].
    К а к, и с пол ьзуя пр едш ес т в ующее за м еча н и е, м ож н о и зм ен и т ь фун кци ю
    Invert?
      П ри описании переменных типаString можно ограничить максималь но
возможную длинустроки константой N типаbyte:
Const N=50;
Var Идентификатор_строки: String[N];
      Рассмотримещ е однузадачуобработки текстовой инф ормации.
   За д а ча 2. Д ляболь ш инствасущ ествитель ных, оканчиваю щ ихсяна– он ок и
–eн ок, множественное число образуетсяотдругой основы. К акправило, э то
происходитпо образцу: цыпленок– цыплята, мыш онок– мыш атаи т.д. (в н о-
в ой ос н ов е пер ед пос л едн ей б укв ой m пи ш ет с я а и л и я в за в и с и м ос т и от пр еды-
дущей б укв ы: ес л и эт о ш и пяща я, т о а, и н а че - я ). И мею тсяслова-исклю чения,
изкоторых укажемследую щ ие: ребенок(дети), бесенок(бесенята), опенок
(опята), звонок(звонки), позвонок(позвонки), подонок(подонки), жаворонок
(жаворонки), бочонок(бочонки). П усть дан русский текст, словакоторого раз-
делены пробелами, запятой или точкой . В се слова, оканчиваю щ иесяна–он ок и
–ен ок, представь те во множественномчисле.
      ♣ Т екстбудемчитать впеременную s типаstring. В цикле будемпросмат-
ривать буквы текстаслеванаправо. П озицияпросматриваемой буквы хранится
впеременной i.