Найти пересечение множеств - PascalABC.NET

Узнай цену своей работы

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

Задание: Дано 2 предложения. Составить два множества: первое содержит слова из первого предложения, а второе - из второго предложения. Вывести элементы каждого множества на экран. Найти их пересечение. Препод сказал, что для работы цикла нужно найти количество вхождений пробелов. Вопрос- как организовать цикл вычленения слов из строки и добавления их во множество?

Решение задачи: «Найти пересечение множеств»

textual
Листинг программы
type mnz=set of string;
procedure mnozestvo(s:string; var m:mnz);
var i:integer;
    s1:string;
begin
s:=s+' ';
s1:='';
m:=[];
for i:=1 to length(s) do
if s[i]<>' ' then s1:=s1+s[i]
else 
 begin
  m:=m+[s1];
  s1:='';
 end;
end;
var s1,s2:string;
    m1,m2:mnz;
begin
writeln('Введите первую строку слов');
readln(s1);
mnozestvo(s1,m1);
writeln('Введите вторую строку слов');
readln(s2);
mnozestvo(s2,m2);
writeln('Первое множество');
foreach s: string in m1 do
write(s,' ');
writeln;
writeln('Второе множество');
foreach s: string in m2 do
write(s,' ');
writeln;
m1:=m1*m2;
if m1=[] then write('Пересечение пустое')
else
 begin
  writeln('Пересечение');
  foreach s: string in m1 do
  write(s,' ');
 end; 
end.

Объяснение кода листинга программы

  1. Тип mnz определен как множество строк (set of string).
  2. Procedure mnozestvo принимает строку и переменную типа mnz в качестве параметров и возвращает пересечение множеств.
  3. В процедуре используется цикл for для прохода по каждому символу входной строки.
  4. Если текущий символ не является пробелом, он добавляется в строку s1.
  5. Если текущий символ является пробелом, то текущее значение s1 добавляется в множество m, и s1 сбрасывается в пустую строку.
  6. Два разных множества m1 и m2 создаются с помощью функции mnozestvo.
  7. В цикле foreach выводятся элементы первого множества m1.
  8. В цикле foreach выводятся элементы второго множества m2.
  9. Первое и второе множества объединяются с помощью оператора *= для создания нового множества m1.
  10. Если m1 пустое, выводится сообщение Пересечение пустое.
  11. В противном случае выводится сообщение Пересечение и элементы пересечения (множества m1) выводятся в цикле foreach.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.545 из 5
Похожие ответы