Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c84b455a7e |
102
main.cpp
Normal file
102
main.cpp
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <numeric>
|
||||||
|
#include <iomanip>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
void inputSet(vector<string>& 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<string>& 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<vector<int>>& matrix, const vector<string>& A, const vector<string>& 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<vector<int>>& matrix,
|
||||||
|
const vector<string>& A,
|
||||||
|
const vector<string>& B) {
|
||||||
|
cout << "\nМатрица отношения:\n";
|
||||||
|
|
||||||
|
// Шапка таблицы
|
||||||
|
cout << setw(6) << " ";
|
||||||
|
int l=B.size();
|
||||||
|
for (int b=0;b<l;b++)
|
||||||
|
cout << setw(6) << B[b];
|
||||||
|
cout << endl;
|
||||||
|
|
||||||
|
// Строки матрицы
|
||||||
|
for (int i = 0; i < matrix.size(); ++i) {
|
||||||
|
cout << setw(6) << A[i];
|
||||||
|
for (int j = 0; j < matrix[0].size(); ++j)
|
||||||
|
cout << setw(6) << matrix[i][j];
|
||||||
|
cout << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isFunction(const vector<vector<int>>& 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<string> A(m);
|
||||||
|
vector<string> B(n);
|
||||||
|
|
||||||
|
inputSet(A, "A", m);
|
||||||
|
inputSet(B, "B", n);
|
||||||
|
|
||||||
|
|
||||||
|
printSet("Первое множество:",A);
|
||||||
|
printSet("Второе множество:",B);
|
||||||
|
vector<vector<int>> relation(m, vector<int>(n));
|
||||||
|
|
||||||
|
inputRelationMatrix(relation, A, B);
|
||||||
|
printRelationMatrix(relation, A, B);
|
||||||
|
|
||||||
|
if (isFunction(relation))
|
||||||
|
cout << "\nОтношение является функцией." << endl;
|
||||||
|
else
|
||||||
|
cout << "\nОтношение НЕ является функцией." << endl;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user