Напечатайте те слова, в которые не входит ни одна из букв первого слова - Turbo Pascal

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

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

Код к задаче: «Напечатайте те слова, в которые не входит ни одна из букв первого слова - Turbo Pascal»

textual
uses crt;
type mnoz=set of char;{тип множество символов}
     mas_m=array[1..100] of mnoz; {массив множеств}
     mas_s=array[1..100] of string; {массив слов}
{создаем массивы}
procedure massivy(s:string;var ms:mas_s;var mm:mas_m;var n:byte);
var i:byte;
begin
s[length(s)]:=' ';{заменим для удобства точку на пробел}
n:=0;
while pos(' ',s)>0 do
 begin
  n:=n+1;{считаем}
  ms[n]:=copy(s,1,pos(' ',s)-1);{копируем очередное слово в массив слов}
  mm[n]:=[];{создаем множество}
  for i:=1 to length(ms[n]) do
  mm[n]:=mm[n]+[ms[n][i]];{из его букв}
  delete(s,1,pos(' ',s));{удаляем это слово}
 end;
end;
 
var  s:string;
     a:mas_m;
     b:mas_s;
     n,i,k:byte;
begin
clrscr;
repeat
writeln('Введите текст латинскими буквами, между словами пробелы, в конце точка:');
readln(s);
if pos(' ',s)=0 then
writeln('В предложении только одно слово. Повторите ввод.');
until pos(' ',s)>0;
massivy(s,b,a,n);
writeln('Слова в которые не входит ни одна из букв первого слова');
k:=0;
for i:=2 to n do
if a[1]*a[i]=[] then
 begin
  k:=1;
  writeln(b[i]);
 end;
if k=0 then writeln('Таких слов нет');
readln
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

8   голосов, оценка 3.625 из 5


СДЕЛАЙТЕ РЕПОСТ
Похожие ответы