Строки, записи, множества - Pascal ABC

Формулировка задачи:

Пусть дан текст, заканчивающийся точкой. Текст состоит из слов, разделенных пробелами. Слова представляют собой произ- вольную последовательность символов, отличных от пробела. На- печатайте все слова, которые состоят из тех же литер, что и по- следнее слово текста. Прошу помощи

Код к задаче: «Строки, записи, множества - Pascal ABC»

textual
var s,sl:string;
    i:integer;
    mps,msl:set of char;
    f:boolean;
begin
 write('BBequTe cTpoky:');readln(s);
 i:=length(s)-1;
 mps:=[];
 while s[i]<>' ' do begin include(mps,s[i]); dec(i); end;
 i:=1;
 while i<=length(s) do
  if (s[i]=' ')and(s[i+1]=' ') then delete(s,i+1,1)
                               else inc(i);
 f:=false;
 while pos(' ',s)<>0 do
  begin
   msl:=[];
   sl:=copy(s,1,pos(' ',s)-1);
   for i:=1 to length(sl) do include(msl,sl[i]);
   if mps=msl then begin writeln(copy(s,1,pos(' ',s)-1)); f:=true end;
   delete(s,1,pos(' ',s));
  end;
 if not f then writeln('---')
end.

13   голосов, оценка 4.154 из 5


СОХРАНИТЬ ССЫЛКУ