Предмет: Информатика, автор: rankedkidp6t6w3

Помогите пожалуйста.
Написать программу, которая на вход получает 2 множества, а при выходе даёт 4 множества.
Можно на любом языке программирования.
А ещё если не сложно , на псевдокоде. Пожалуйста


rankedkidp6t6w3: 1 байт
Browze: Пробуй. Размер с клавиатуры вводить.
rankedkidp6t6w3: Browze спасибо большое
rankedkidp6t6w3: А на псевдокоде как будет выглядеть это?
Browze: Хм)))))
rankedkidp6t6w3: Мне кажется препод мне не поверит я сказал типо не умею кодить, типо на псевдокоде напишу. Ну Лан скажу помогал дядя программист и т.д.
Browze: В интернете научился :)
rankedkidp6t6w3: Офигеть в инете С++ выучиться, вот это ты бог программирования
Giammy: Если есть желание и немного знаний и понимания математики, то учить не сложно и даже интересно
rankedkidp6t6w3: Окей, буду знать)

Ответы

Автор ответа: Browze
1

Кроме C++ ничего не знаю.

g++ compiler


#include <iostream>

#include <algorithm>

#include <set>

#include <iterator>


int main()

{

   std::set<int>

       set1,//Первое входное множество(A)

       set2,//Второе выходное множество(B)

       set3,//Первое выходное(разность set1 и set2)

       set4,//xz

       set5,//A пересечение B

       set6;//A объединение B

   int

       N, M,

       temp;

   

   std::cout << "Введите размер первого и второго множеств:";

   std::cin >> N >> M;

   

   

   std::cout << std::endl << "Введите значения первого множества: ";

   for(int i = 0; i < N; i++)

   {

       std::cin >> temp;

       set1.insert(temp);

   }

   

   std::cout << std::endl << "Введите значения второго множества: ";

   for(int i = 0; i < M; i++)

   {

       std::cin >> temp;

       set2.insert(temp);

   }

   std::set_difference(set1.begin(), set1.end(), set2.begin(), set2.end(), std::inserter(set3, set3.begin()));

   std::set_difference(set2.begin(), set2.end(), set1.begin(), set1.end(), std::inserter(set4, set4.begin()));

   std::set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), std::inserter(set5, set5.begin()));

   std::set_union(set1.begin(), set1.end(), set2.begin(), set2.end(), std::inserter(set6, set6.begin()));

   

   //вывод

   std::cout << "Множество А: ";

   std::copy(set1.begin(), set1.end(),

       std::ostream_iterator<int>(std::cout, " "));

   std::cout << std::endl;

   

   std::cout << "Множество B: ";

   std::copy(set2.begin(), set2.end(),

       std::ostream_iterator<int>(std::cout, " "));

   std::cout << std::endl;

   

   std::cout << "Множество А - B: ";

   std::copy(set3.begin(), set3.end(),

       std::ostream_iterator<int>(std::cout, " "));

   std::cout << std::endl;

   

   std::cout << "Множество B - A: ";

   std::copy(set4.begin(), set4.end(),

       std::ostream_iterator<int>(std::cout, " "));

   std::cout << std::endl;

   

   std::cout << "Множество A пересечение B: ";

   std::copy(set5.begin(), set5.end(),

       std::ostream_iterator<int>(std::cout, " "));

   std::cout << std::endl;

   

   std::cout << "Множество А объединение B: ";

   std::copy(set6.begin(), set6.end(),

       std::ostream_iterator<int>(std::cout, " "));

   std::cout << std::endl;

   return 0;

}



Browze: Сдавал в этом году :)
Giammy: С++ сложный язык с объемным кодом для выполнения простых задач.
Browze: Возможно
rankedkidp6t6w3: Офигеть
rankedkidp6t6w3: Вы можете это же самое написать у меня во втором задании
rankedkidp6t6w3: Я просто два продублировал задания, ну типо баллов больше получите
rankedkidp6t6w3: Я не знаю ._.
Giammy: Мне лично баллов ненужно, а тем более с продублированного вопроса.
Browze: Нельзя. Вообще повторные вопросы задавать не нужно. Это никак не ускорит процесс. Согласен ^
rankedkidp6t6w3: Хорошо, буду знать)
Автор ответа: Giammy
2

// PascalABC.NET 3.4, сборка 1766 от 25.08.2018


begin  

 var a := new HashSet<integer>(ReadArrInteger('Множество A ->', ReadInteger('Размер множества A =')));

 var b := new HashSet<integer>(ReadArrInteger('Множество B ->', ReadInteger('Размер множества B =')));

 a.Except(b).Print; Println(' - A\B');

 b.Except(a).Print; Println(' - B\A');

 a.Intersect(b).Print; Println(' - пересечение A и B');

 a.Union(b).Print; Println(' - объединение A и B');

end.

Пример ввода/вывода в приложении.


Приложения:

Аноним: Т.е. формат будет как расширение величины ))))
Giammy: Прикольно, полная замена форматной печати через Writeln
Аноним: Ну так это же замена WriteFormat
Giammy: её уберут в дальнейшем?
Аноним: Ну я же на разработчик. Пока не собираются.
Аноним: Но в любом случае все, что начинается с Write объявляется устаревшим везде, кроме вывода в файлы.
Аноним: Интерполированные строки можно присваивать переменным и впоследствии редактировать. Это ведь на самом деле обычная строка.
Giammy: Но с восхитительной генерацией)
Аноним: Признак интерполяции - как раз $
Аноним: А интерполируется контекст в фигурных скобках.
Похожие вопросы