
Kemakova
6 год назад
(Pascal)Для текста состоящего из слов , разделенных пробелами , выполнить :
1)поиск симметричных слов перевертышей.
2) поиск слов не имеющих повторяющихся букв.
Помогите пожалуйста , очень надо ...
ОТВЕТЫ

Baum
Jul 6, 2019
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)gt;0 do delete(s,pos( ,s),1);
for i:=1 to length(s) do
if s[i]lt;gt;
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 st1lt;gt;
then writeln(Слова-перевёртыши: ,st1)
else writeln(Слов-перевёртышей нет);
if st2lt;gt;
then writeln(Слова без повторяющихся букв: ,st2)
else writeln(Слов без повторяющихся букв нет);
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)gt;0 do delete(s,pos( ,s),1);
for i:=1 to length(s) do
if s[i]lt;gt;
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 st1lt;gt;
then writeln(Слова-перевёртыши: ,st1)
else writeln(Слов-перевёртышей нет);
if st2lt;gt;
then writeln(Слова без повторяющихся букв: ,st2)
else writeln(Слов без повторяющихся букв нет);
end.
Пример:
Введите текст:
заказ слово комок пробел след пример огонь текст
Слова-перевёртыши: заказ комок
Слова без повторяющихся букв: пробел след
// PascalABC.NET 3.2, сборка 1370 от 24.12.2016
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadlnString(gt;).ToWords;
a.Where(w-gt;w=w.Inverse).Println;
a.Where(w-gt;w.Distinct.Count=w.Length).Println;
end.
Пример
gt; Наша хата не кабак кто не в хате тот чудак
кабак в тот
не кто не в хате чудак
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadlnString(gt;).ToWords;
a.Where(w-gt;w=w.Inverse).Println;
a.Where(w-gt;w.Distinct.Count=w.Length).Println;
end.
Пример
gt; Наша хата не кабак кто не в хате тот чудак
кабак в тот
не кто не в хате чудак
22
Смежные вопросы: