Программный код файла Р.РAS
program P;
uses T,crt;
var
s,b:string;
m,r:integer;
begin
ClrScr;
writeln('Введите строку');
readln(s);
writeln('');
writeln('Какое действие будет выполняться со строкой');
writeln('1-количество лексем, со списком разделением');
writeln('2-выбор лексемы');
writeln('3-заменяем выбраную лексему');
writeln('4-проверяем подстраку в строке');
writeln('5-преобразуем строчку из строчной в пропесные(и наоборот)');
readln(m);
if m=1 then begin
r:=kol(s);
writeln('Количество лексем=',r); end;
if m=2 then
writeln(vibor(s));
if m=3 then
writeln(zamena(s));
if m=4 then
writeln(proverka(s));
if m=5 then
writeln(preobraz(s));
readln;
end.
Программный код файла T.TРU
unit T;
interface
uses crt;
function kol(s:string):string;
function vibor(s:string):string;
function zamena(s:string):string;
function proverka(s:string):integer;
function preobraz(s:string):string;
implementation
function kol(s:string):string;
var
l,n,i,y,r,m:integer;
a:array[1..30] of string[1];
begin
write('Сколько будет разделений:');
readln(n);
for i:=1 to n do begin
write(i,' Разделение:');
readln(a[i]);
end;
r:=0;
m:=1;
for i:=1 to n do
if s[1]=a[i] then m:=0;
if m=1 then r:=1;
for i:=2 to Length(s) do begin
if m=1 then begin
for y:=1 to n do
if s[i]=a[y] then m:=0; end else begin
if m=0 then begin
l:=0;
for y:=1 to n do
if s[i]=a[y] then l:=1;
if l=0 then begin r:=r+1; m:=1; end;
end;end;
end;
writeln('Количество лексем:',r);
end;
function vibor(s:string):string;
var
r,m,l,i,n:integer;
c:string;
begin
write('Какую лексему вы хотите выбрать? -');
readln(n);
r:=0;
m:=1;
c:='';
if s[1]=' ' then m:=0;
if m=1 then r:=1;
for i:=2 to Length(s) do begin
if m=1 then begin
if s[i]=' ' then m:=0; end;
if r=n then c:=c+s[i];
if m=0 then begin
l:=0;
if s[i]=' ' then l:=1;
if l=0 then begin r:=r+1; m:=1;
if r=n then c:=c+s[i]; end;
end;
end;
Delete(c,Length©,1);
vibor:=c;
end;
function zamena(s:string):string;
var
r,m,l,i,n:integer;
c:string;
begin
write('Какую лексему вы хотите заменить? -');
readln(n);
r:=0;
m:=1;
c:='';
if s[1]=' ' then m:=0;
if m=1 then r:=1;
if (r=n)and(m=1) then begin s[1]:=readkey; write(s[i]); end;
for i:=2 to Length(s) do begin
if m=1 then begin
if s[i]=' ' then m:=0; end;
if (r=n)and(m=1) then begin s[i]:=readkey; write(s[i]); end;
if m=0 then begin
l:=0;
if s[i]=' ' then l:=1;
if l=0 then begin r:=r+1; m:=1;
if r=n then s[i]:=readkey; write(s[i]); end;
end;
end;
writeln('');
zamena:=s;
end;
function proverka(s:string):integer;
var
i:integer;
s1:string;
begin
Write('Какую подстраку проверяем-');
readln(s1);
proverka:=pos(s1,s);
end;
function preobraz(s:string):string;
var
i:integer;
begin
for i:=1 to Length(s) do begin
if (ORD(s[i])<91)and(ORD(s[i])>64) then
s[i]:=chr(ord(s[i])+32) else
if (ORD(s[i])>96)and(ORD(s[i])<123) then
s[i]:=chr(ord(s[i])-32) else
if (ORD(s[i])<144)and(ORD(s[i])>127) then
s[i]:=chr(ord(s[i])+32) else
if (ORD(s[i])<160)and(ORD(s[i])>143) then
s[i]:=chr(ord(s[i])+80) else
if (ORD(s[i])<176)and(ORD(s[i])>159) then
s[i]:=chr(ord(s[i])-32) else
if (ORD(s[i])<240)and(ORD(s[i])>223) then
s[i]:=chr(ord(s[i])-80);
end;
preobraz:=s;
end;
end.