Compare commits

..

1 Commits
main ... lab3

Author SHA1 Message Date
c84b455a7e Добавить main.cpp 2025-05-24 05:19:39 +00:00

102
main.cpp Normal file
View 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;
}