
- •Тип данных строка
- •Var s:shortstring;
- •Var s,s1,s2:string[10];
- •Var s,St:ShortString;
- •If not Pr and not (s[I] in Prep) then
- •IfSimmetr(St)then//проверка очередного слова на симмет-
- •Var s,St:ShortString;
- •If Slovo(St) then //проверка слова на удовлетворение требо-
- •Var s,St:String;
- •Var I,j,Imin:integer;
- •If not (s[I] in Prep) then
- •If WseGlasn(St) then
- •Var s,St:String;
program strokapr2;
{$APPTYPE CONSOLE}
uses
SysUtils;
const np=8;
type Mas=array[1..128] of ShortString;
Mn=set of Char;
Mas1=array[1..np] of char;
const Rasd:Mas1=(' ', '.', ',', '?', '!', ':', ';', '-');
//массив символов-разделителей
Prep=[' ', '.', ',', '?', '!', ':', ';', '-']; //множество
//символов-разделителей
Buk=['A'..'Z','А'..'Я','Ё'];//множество букв
Glas=['A','E','I','O','U','Y','А','Е','И',
'О','У','Ы','Э','Ю','Я','Ё'];//множество гласных
//букв
SoGlas=Buk-Glas;//множество согласных букв
Var s,St:ShortString;
A:Mas;
I,N1,N2,K:Integer;
function Rus(S:String):String;
var I:Byte;
begin
Result:='';
for I:=1 to Length(S) do
case S[I] of
'А'..'п': Result:=Result+Chr(Ord(S[I])-64);
'р'..'я': Result:=Result+Chr(Ord(S[I])-16);
'Ё': Result:=Result+Chr(240);
'ё': Result:=Result+Chr(241);
else
Result:=Result+S[I];
end;
end;
function RusIn(S:String):String;
var I:Integer;
begin
Result:='';
for I:=1 to Length(S) do
case Ord(S[I]) of
128..175: Result:=Result+Chr(Ord(S[I])+64);
224..239: Result:=Result+Chr(Ord(S[I])+16);
240: Result:=Result+Chr(168);
241: Result:=Result+Chr(184);
else
Result:=Result+S[I];
end;
end;
// функция получения символа в верхнем регистре
function Upcase(ch:char):char;
var dl,dk:byte;
begin
dl:=ord('a')-ord('A');
dk:=ord('ж')-ord('Ж');
case ch of
'a'..'z': Result:=chr(ord(ch)-dl);
'A'..'Z': Result:=ch;
'а'..'я': Result:=chr(ord(ch)-dk);
'А'..'Я','Ё': Result:=ch;
'ё': Result:= 'Ё';
else Result:=ch;
end;
end;
//функция проверки слова на удовлетворение поставленному услвию:
// слово должно начинаться согласной буквой и количество соглас-
//ных должно превышать количество гласных
functionSlovo(S:ShortString):Boolean;
varI,N,Ksg,Kgl:integer;
begin
Kgl:=0;
Ksg:=0;
Result:=false;
if UpCase(S[1])in SoGlas then //проверка первого символа
for I:=1 to Length(S) do //цмкл подсчета количества
//гласных и согласных букв