Без конкретики структуры множеств представим множества векторными.
Множеству "A" будет отвечать массив _a, а множеству "B" массив _b
#include <iostream> void main() { int _a[7]; int _b[7]; /* сюда нужно добавить алгоритм заполнения значениями множества будь то программное или пользовательское! /* int read = 0; //переменная для пользовательского числа unsigned int caret = 0; // переменная играющая роль каретки для массивов std::cin >> read; //читаем while(_a[caret]) // пока элемент массив _a[caret] существует { if (_a[caret++] == read) //сравниваем пользовательское значение со значением в массиве и двигаем каретку вперед { std::cout << "значение принадлежит множеству 'A' " << std::endl; } } caret = 0; //обнуляем каретку while(_b[caret]) //все тоже только с массивом _b { if (_b[caret++] == read) { std::cout << "значение принадлежит и(или) множеству 'B' " << std::endl; } } }
Доброго времени суток! Для начала немного поработаем над системой неравенств.
Дана система: произведем несколько манипуляций с числами чтобы выявить абсолютные величины:
опираясь на абсолютные величины мы смело можем сказать что справедливы все "y" и "x" значения которые удовлетворяют двум неравенствам (отсюдого она и система). Можно канечно пошаманить и решить систему до конца указав области значений обоих переменных, но мы этого делать не будем, иначе для чего нам компьютер с потенциально огромной вычислительной мощностью? Правильно! Поэтому мы заставим его решать нашу систему неравенств ;)
программа будет написана на языке C++!
#include <iostream>
// определяем коды, которые покажут нам результат работы функции. #define CODE_INCASE 1 #define CODE_ONLINE 2 #define CODE_OUTRANGE 0 #define CODE_ERROR -1
struct vector2 { int x,y; };
unsigned char check_point(vector2 & point) { if ((point.x < 2*point.y) && (point.y < 5-point.x^2)) //определяем принадлежность { return CODE_INCASE; // является исключительно вложенным и не пересекает границы } else if( ((point.x = 2*point.y) && (point.y <= 5-point.x^2)) || ((point.x <= 2*point.y) && (point.y = 5-point.x^2)) ) { return CODE_ONLINE; // пересекает границы частично или полностью } else { return CODE_OUTRANGE; // не принадлежит } return CODE_ERROR; // код ошибки (в случае взбоя алгоритма определения значений) }
void main() { vector2 point1 = {-8, 12}; //тут мы задаем координату в виде простой линейной структуры. std::cout << "{" << point1.x << "," << point1.y << "}, code " << check_point(point1) << std::endl; //выводим на экран код обработчика.
рис1 - ox
рис2 - oz
рис3 - OY