『开发』使用高级程序设计语言实现集合的交并差运算

『开发』使用高级程序设计语言实现集合的交并差运算

内容:

利用高级语言实现集合交、差、并操作

实验数据文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
R:
a1 b1 c1
a1 b2 c2
a2 b2 c1
S:
a1 b2 c2
a1 b3 c2
a2 b2 c1

实际输入数据为:
3 3 3
a1 b1 c1
a1 b2 c2
a2 b2 c1
a1 b2 c2
a1 b3 c2
a2 b2 c1

其中 R 的行数为 rank1=3,S 的行数为 rank3=3,RS 的列数为 col=3。

代码实现:

4.1.交运算:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <bits/stdc++.h>
using namespace std;
vector<string> R[200];
vector<string> S[200];
vector<string> ans[200];
int Jiao(int rank1, int rank2, int col)
{
int tot = 0;
for (int i = 0; i < rank1; i++)
{
for (int j = 0; j < rank2; j++)
{
for (int k = 0; k < col; k++)
{

if (R[i][k] == S[j][k])
ans[tot].push_back(R[i][k]);
else
{
ans[tot].clear();
tot--;
break;
}
}
tot++;
}
}
return tot;
}
int main()
{
int rank1, rank2, col;
cin >> rank1 >> rank2 >> col;
for (int i = 0; i < rank1; i++)
{
for (int j = 0; j < col; j++)
{
string c;
cin >> c;
R[i].push_back(c);
}
}
for (int i = 0; i < rank2; i++)
{
for (int j = 0; j < col; j++)
{
string c;
cin >> c;
S[i].push_back(c);
}
}
int rank3 = Jiao(rank1, rank2, col);
for (int i = 0; i < rank3; i++)
{
for (auto p : ans[i])
{
cout << p << " ";
}
cout << endl;
}
}

运行结果:
在这里插入图片描述

4.2 并运算:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <bits/stdc++.h>
using namespace std;
vector<string> R[200];
vector<string> S[200];
vector<string> ans[200];
int bing(int rank1, int rank2, int col)
{
int tot = 0;
int flag = 0;
for (int j = 0; j < rank2; j++)
{
for (int k = 0; k < col; k++)
{
ans[tot].push_back(S[j][k]);
}
tot++;
}
for (int i = 0; i < rank1; i++)
{
int flag = 0;
for (int j = 0; j < rank2; j++)
{
int flag2=1;
for (int k = 0; k < col; k++)
{
if (R[i][k] != S[j][k])
{
flag2 = 0;
break;
}
}
if(flag2==1)
{
flag=1;
break;
}
}
if (flag)
continue;
else
{
for (int k = 0; k < R[i].size(); k++)
{
ans[tot].push_back(R[i][k]);
}
tot++;
}
}

return tot;
}
int main()
{
int rank1, rank2,rank3, col;
cin >> rank1 >> rank2 >> col;
for (int i = 0; i < rank1; i++)
{
for (int j = 0; j < col; j++)
{
string c;
cin >> c;
R[i].push_back(c);
}
}
for (int i = 0; i < rank2; i++)
{
for (int j = 0; j < col; j++)
{
string c;
cin >> c;
S[i].push_back(c);
}
}
cout << "-------Bing------------\n";
rank3 = bing(rank1, rank2, col);
for (int i = 0; i < rank3; i++)
{
for (auto p : ans[i])
{
cout << p << " ";
}
cout << endl;
}
}

运行结果
在这里插入图片描述

4.3 差运算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <bits/stdc++.h>
using namespace std;
vector<string> R[200];
vector<string> S[200];
vector<string> ans[200];
int cha(int rank1, int rank2,int col)
{
int tot = 0;
int flag = 0;
for (int i = 0; i < rank1; i++)
{
int flag = 0;
for (int j = 0; j < rank2; j++)
{
int flag2=0;
for (int k = 0; k <col; k++)
{
if (R[i][k] == S[j][k])
;
else
flag2 = 1;
}
if(flag2==0)
{
flag=1;
break;
}
}
if (flag){
for (int k = 0; k <col; k++)
{
ans[tot].push_back(R[i][k]);
}
tot++;
}
}
return tot;
}
int main()
{
int rank1, rank2, rank3, col;
cin >> rank1 >> rank2 >> col;
for (int i = 0; i < rank1; i++)
{
for (int j = 0; j < col; j++)
{
string c;
cin >> c;
R[i].push_back(c);
}
}
for (int i = 0; i < rank2; i++)
{
for (int j = 0; j < col; j++)
{
string c;
cin >> c;
S[i].push_back(c);
}
}
cout << "-------cha------------\n";

rank3 = cha(rank1, rank2,col);
for (int i = 0; i < rank3; i++)
{
for (auto p : ans[i])
{
cout << p << " ";
}
cout << endl;
}
}

运行结果

在这里插入图片描述


写在最后:
Name:风骨散人,目前是一名双非在校大学生,预计考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你!名字的含义:我想有一天我能有能力随心所欲不逾矩,不总是向生活低头,有能力让家人拥有富足的生活而不是为了生计而到处奔波。“世人慌慌张张,不过是图碎银几两。偏偏这碎银几两,能解世间惆怅,可让父母安康,可护幼子成长 …”
文章主要内容:
Python,C++,C 语言,JAVA,C#等语言的教程
ACM 题解、模板、算法等,主要是数据结构,数学和图论
设计模式,数据库,计算机网络,操作系统,计算机组成原理
Python 爬虫、深度学习、机器学习
计算机系408考研的所有专业课内容
目前还在更新中,先关注不迷路。微信公众号,cnblogs(博客园),CSDN 同名“风骨散人”

如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文!
感谢大家的阅读!😘 你的点赞、收藏、关注是对我最大的鼓励!


『开发』使用高级程序设计语言实现集合的交并差运算
https://chiamzhang.github.io/2024/06/29/『开发』使用高级程序设计语言实现集合的交并差运算/
Author
Chiam
Posted on
June 29, 2024
Licensed under