Найти пересечение множеств - 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.
Объяснение кода листинга программы
- Тип mnz определен как множество строк (set of string).
- Procedure mnozestvo принимает строку и переменную типа mnz в качестве параметров и возвращает пересечение множеств.
- В процедуре используется цикл for для прохода по каждому символу входной строки.
- Если текущий символ не является пробелом, он добавляется в строку s1.
- Если текущий символ является пробелом, то текущее значение s1 добавляется в множество m, и s1 сбрасывается в пустую строку.
- Два разных множества m1 и m2 создаются с помощью функции mnozestvo.
- В цикле foreach выводятся элементы первого множества m1.
- В цикле foreach выводятся элементы второго множества m2.
- Первое и второе множества объединяются с помощью оператора *= для создания нового множества m1.
- Если m1 пустое, выводится сообщение
Пересечение пустое
. - В противном случае выводится сообщение
Пересечение
и элементы пересечения (множества m1) выводятся в цикле foreach.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д