#include #include #include #include #include using namespace std; void inputSet(vector& set, const string& setName, int size) { cout << "Введите элементы множества " << setName << ":" << endl; for (int i = 0; i < size; ++i) { cout << setName << "[" << i << "]: "; cin >> set[i]; } } void printSet(const string& setName, const vector& set) { cout << setName << ": { "; for (size_t i = 0; i < set.size(); ++i) { cout << set[i]; if (i != set.size() - 1) { cout << ", "; } } cout << " }" << endl; } void inputRelationMatrix(vector>& matrix, const vector& A, const vector& B) { cout << "Введите таблицу отношения (" << matrix.size() << "x" << matrix[0].size() << ").\n"; cout << "Введите 1, если элемент A[i] связан с B[j], иначе 0.\n"; for (int i = 0; i < matrix.size(); ++i) { cout << "Строка для A[" << i << "] -> B[j]:" << endl; for (int j = 0; j < matrix[0].size(); ++j) { do { cout << "Связь с B[" << j << "] (0 или 1): "; cin >> matrix[i][j]; } while (matrix[i][j] != 0 && matrix[i][j] != 1); } } } void printRelationMatrix(const vector>& matrix, const vector& A, const vector& B) { cout << "\nМатрица отношения:\n"; // Шапка таблицы cout << setw(6) << " "; int l=B.size(); for (int b=0;b>& matrix) { for (const auto& row : matrix) { int sum = accumulate(row.begin(), row.end(), 0); if (sum > 1) return false; } return true; } int main() { int m, n; cout << "Введите количество элементов множества A: "; cin >> m; cout << "Введите количество элементов множества B: "; cin >> n; vector A(m); vector B(n); inputSet(A, "A", m); inputSet(B, "B", n); printSet("Первое множество:",A); printSet("Второе множество:",B); vector> relation(m, vector(n)); inputRelationMatrix(relation, A, B); printRelationMatrix(relation, A, B); if (isFunction(relation)) cout << "\nОтношение является функцией." << endl; else cout << "\nОтношение НЕ является функцией." << endl; return 0; }