Дан текст на русском языке. Напечатать в алфавитном порядке все глухие согласные буквы, которые входят в каждое нечётное слово и не входят хотя бы одно чётное слово — Pascal(Паскаль)

program rt{Дан текст на русском языке. Напечатать в алфавитном порядке все
           глухие согласные буквы, которые входят в каждое нечётное слово
           и не входят хотя бы одно чётное слово.                               };
uses CRT;TYPE Letters=set of char;
CONST Q:Letters=                 ['к','п','с','т','ф','х','ш','щ'];
      QQ:array [1..8]of char=('к','п','с','т','ф','х','ш','щ');
      R:Letters=[' ' , '.' , ';' , '?' , '!' ];{знаки препинания}
VAR i,j,chet:byte;S,ss:string;O1,O2,temp:Letters;m:char;

BEGIN chet:=1; i:=1; O1:=Q; O2:=[];WriteLn('********** начало **********');
    WriteLn('Введите строку');ReadLn(S);if s=''then S:='морковка горох капуста мозамбези крыша звезда';
    repeat
        While (s[i] in R ) and (i<Length(S)) do i:=i+1;
        if i<Length(S) then begin
            ss:='';
            While NOT(s[i] in R) and (i<=Length(S))do begin
                ss:=ss+s[i];
                i:=i+1
            end;
            WriteLn(chet,' ',ss);
            temp:=[];
            for j:=1 to Length(Ss) do
                temp:=temp+[S[j]];

            for j:=1 to 8 do begin
                {первое условие}
                if (chet=1) and (NOT(QQ[j] in temp))then Exclude(O1,QQ[j]);
                {второе условие}
                if (chet=0) and (NOT(QQ[j] in temp))then O2:= O2 + [QQ[j]];
            end;

            chet:=1-chet;
        end;
    until i>=Length(S);                                                         {
******************************************************************************}
    Write('   Входят  в каждое  нечетное слово : ');
    for m:=' ' to #255 do if m in O1 then Write(m);WriteLn;
    Write('Не входят хотя бы одно четное слово : ');
    for m:=' ' to #255 do if m in O2 then Write(m);WriteLn;
    repeat until KeyPressed;
END.

Leave a Comment

23 + = 24