Написать программу для обработки множеств, которая позволяет ввести три множества символов a, b и c и вычислить множество, являющееся:
№ | Формула | № | Формула | № | Формула |
---|---|---|---|---|---|
1. | (a ∪ b) ∪ (c ∩ a) | 11. | (a ∪ b) ∪ (c \ a) | 21. | (a ∩ b) ∪ (c ∩ a) |
2. | (a ∪ b) ∩ (c ∪ b) | 12. | (a ∪ b) ∩ (c \ b) | 22. | (a ∪ b) ∩ (c ∩ b) |
3. | (a ∪ c) \ (b ∪ c) | 13. | (a ∪ c) \ (b \ c) | 23. | (a ∪ c) \ (b ∩ c) |
4. | (a ∩ b) ∪ (c ∪ a) | 14. | (a ∩ b) ∪ (c \ a) | 24. | (a ∩ b) ∪ (c ∩ a) |
5. | (a ∩ b) ∩ (c ∪ b) | 15. | (a ∩ b) ∩ (c \ b) | 25. | (a ∩ b) ∪ (c ∩ b) |
6. | (a ∩ c) \ (b ∪ c) | 16. | (a ∩ c) \ (b \ c) | 26. | (a ∩ c) \ (b ∩ c) |
7. | (a \ b) ∪ (c ∪ a) | 17. | (a \ b) ∪ (c \ a) | 27. | (a \ b) ∪ (c ∩ a) |
8. | (a \ b) ∩ (c ∪ b) | 18. | (a \ b) ∩ (c \ b) | 28. | (a \ b) ∩ (c ∩ b) |
9. | (a \ c) \ (b ∪ c) | 19. | (a \ c) ∪ (b \ c) | 29. | (a \ c) \ (b ∩ c) |
10. | (a ∩ b) \ (b ∩ c) | 20. | (a ∩ b) \ (b \ c) | 30. | (a ∪ b) \ (b ∪ c) |
Множество должно быть реализовано тремя способами – через стандартный тип языка Паскаль, через массив элементов типа char и через массив логических элементов. Для собственных реализаций множества должны быть реализованы операции инициализации множества (должно создаваться пустое множество), добавления элемента в множество, проверки вхождения элемента в множество, объединения множеств, пересечения множеств и разности множеств. Также желательно реализовать операции проверки на равенство/неравенство, подмножество и надмножество (строгое и нестрогое).
Во всех трёх случаях полагаем, что множество может содержать набор символов ASCII, которые имеют коды от 0 до 255.
Необходимо реализовать две программы. Одна должна использовать стандартную реализацию множества (оболочку для стандартной реализации не писать!), а к другой будет подключаться модуль с одной из собственных реализаций множества. Для того, чтобы можно было поочередно использовать два модуля в одной программе, они должны быть реализованы схожим образом, т.е. использовать одинаковые имена и одинаковые по типам процедуры и функции. При подключении другого модуля сама программа не должна меняться ни на один символ.
Ввод осуществляется из файла, вывод – в файл. Входной файл должен содержать три строки, каждая строка – элементы одного множества. Символы разделять пробелом не надо, пробел – тоже символ. Имена файлов передаются через параметры программы.