diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..f9bccdf --- /dev/null +++ b/main.cpp @@ -0,0 +1,102 @@ +#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; +} \ No newline at end of file