Var s,s1,s2,st1,st2:string; i:integer; mn:set of char; b:boolean; begin writeln('Введите текст:'); readln(s); s:=s+' '; st1:=''; st2:=''; s1:=''; s2:=''; mn:=[]; b:=false; while pos(' ',s)>0 do delete(s,pos(' ',s),1); for i:=1 to length(s) do if s[i]<>' ' then begin s1:=s[i]+s1; s2:=s2+s[i]; if s[i] in mn then b:=true; mn:=mn+[s[i]]; end else begin if s1=s2 then st1:=st1+s1+' '; if not b then st2:=st2+s2+' '; s1:=''; s2:=''; mn:=[]; b:=false; end; if st1<>'' then writeln('Слова-перевёртыши: ',st1) else writeln('Слов-перевёртышей нет'); if st2<>'' then writeln('Слова без повторяющихся букв: ',st2) else writeln('Слов без повторяющихся букв нет'); end.
Пример: Введите текст: заказ слово комок пробел след пример огонь текст Слова-перевёртыши: заказ комок Слова без повторяющихся букв: пробел след
// PascalABC.NET var gl:='кпстфхцчшщ'; zv:='бвгджзлмнр'; zi: array [1..2,1..10] of integer; //для отметок о выполнении условий для звонких s: string; i,n:integer; chet:boolean; //признак четности слова begin chet:=false; writeln('введите строку из русских слов, разделенные пробелом'); readln(s); for i:=1 to length(s) do begin n:=Pos(s[i],zv); if (chet=false) then begin delete(gl,Pos(s[i],gl),1); if n>0 then zi[1,n]:=1 //первый признак выполнен end else if n>0 then zi[2,n]:=-1; //второй признак не выполнен if s[i]=' ' then chet:=not(chet); end; writeln('глухие согласные, которых нет в нечетных словах: ',gl); write('звонкие согласные, которых нет в четных словах и которые входят хотя бы в одно нечетное: '); for i:=1 to 10 do if zi[1,i]+zi[2,i]=1 then write(zv[i]); end.
s,s1,s2,st1,st2:string; i:integer;
mn:set of char; b:boolean;
begin
writeln('Введите текст:');
readln(s);
s:=s+' ';
st1:=''; st2:='';
s1:=''; s2:=''; mn:=[]; b:=false;
while pos(' ',s)>0 do delete(s,pos(' ',s),1);
for i:=1 to length(s) do
if s[i]<>' '
then begin
s1:=s[i]+s1;
s2:=s2+s[i];
if s[i] in mn then b:=true;
mn:=mn+[s[i]];
end
else begin
if s1=s2 then st1:=st1+s1+' ';
if not b then st2:=st2+s2+' ';
s1:=''; s2:=''; mn:=[]; b:=false;
end;
if st1<>''
then writeln('Слова-перевёртыши: ',st1)
else writeln('Слов-перевёртышей нет');
if st2<>''
then writeln('Слова без повторяющихся букв: ',st2)
else writeln('Слов без повторяющихся букв нет');
end.
Пример:
Введите текст:
заказ слово комок пробел след пример огонь текст
Слова-перевёртыши: заказ комок
Слова без повторяющихся букв: пробел след
var gl:='кпстфхцчшщ';
zv:='бвгджзлмнр';
zi: array [1..2,1..10] of integer; //для отметок о выполнении условий для звонких
s: string;
i,n:integer;
chet:boolean; //признак четности слова
begin
chet:=false;
writeln('введите строку из русских слов, разделенные пробелом');
readln(s);
for i:=1 to length(s) do
begin
n:=Pos(s[i],zv);
if (chet=false) then
begin
delete(gl,Pos(s[i],gl),1);
if n>0 then zi[1,n]:=1 //первый признак выполнен
end
else if n>0 then zi[2,n]:=-1; //второй признак не выполнен
if s[i]=' ' then chet:=not(chet);
end;
writeln('глухие согласные, которых нет в нечетных словах: ',gl);
write('звонкие согласные, которых нет в четных словах и которые входят хотя бы в одно нечетное: ');
for i:=1 to 10 do
if zi[1,i]+zi[2,i]=1 then write(zv[i]);
end.