- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
//
// 选题二 矩阵操作
// 一、矩阵翻转
// 沿某中心轴翻转,或垂直,或水平翻转。翻转的实质是,矩阵的每行(或每列)元素进行倒序排放。
//
// 二、矩阵卷动
// 可以左右、上下卷动。如下图:
//
// 矩阵卷动涉及二个问题:
// (1)卷动方向,或左右卷动,或上下卷动。
// (2)卷动幅度T ,如上下卷动行数,左右卷动列数。
// 卷动的实质是将某行或某列元素循环移位。上下卷动时,是将每列元素循环移位,左右卷动时是将每
行元素循环移位,卷动方向决定是左移还是右移。
// 一维数组的循环移位问题:
// 如,已知int temp[10] ,将其循环右移一位。
// 显然, 移位后,
// temp[8] ~ temp[0]
// 依次存入
// temp[9] ~ temp[1]
// 而原来的temp[9] 则返回数组起始部位,存入temp[0] 。
// 那么,循环右移W位呢?循环左移W位呢?
// 了解了一维数组循环移位问题后,显然,矩阵卷动无非是多个一维数组循环移位,只要在外层加个大
循环就解决了。
// 三、矩阵旋转
// 矩阵旋转(绕中心点)涉及二个方面:
// (1)旋转方向,顺时针还是逆时针。
// (2)旋转角度,如90o、180o、270o、360o等。
// 分析:
// (1)考虑旋转方向、角度
// (2)此处仅考虑方阵情况,即矩阵行、列数相同。
// (3)考虑是奇次方阵还是偶次方阵。
// (4)旋转时,实质是数组元素的重新组合,对应交换元素值。
// (5)设方阵有K圈,每圈操作过程相似。
// 因此,问题的关键是某圈元素的旋转、交换。
// 如下图。
//
//
// 考虑几种特殊情况,如90° ,180 ° ,270 ° ,360 ° 等。
// (1)其它角度都是90°的整数倍。因此,设计时仅需要考虑90°情况,其它情况只需重复操作若干次即
可。以顺时针旋转为例,如需旋转180 ° ,只需将旋转90 °操作连续执行两次即能实现。
// (2)逆时针旋转可以看作为过度旋转,如逆时针90° ,可认为是顺时针旋转270 °。
// 当然,也可设计新的交换规则。
// 四、设计要求
// 编写代码,实现矩阵的翻转、卷动和旋转。运行程序后,随机生成一个元素为三位正整数的5×5矩阵,
并显现下面的参考界面:
// 矩阵操作
//
// 1 .矩阵翻转
// 2 .矩阵卷动
// 3 .矩阵旋转
// 请选择(1、2或3 ,0 :退出):
// 选择一个菜单后,要求输入操作的方向、行数或列数或角度,输入后,显示操作结果。
#includeiostream.h // 输入输出头文件
#includestdlib.h //接收字符函数的头文件
#includeiomanip.h //setw() 函数头文件
void print(int s[5][5]) //定义函数
{
for(int i=0;i5;i++)
{
for(int j=0;j5;j++)
cout s[i][j]; //输出数组
coutendl;
}
}
void turn(int s[5][5]) //翻转函数
{
int t,y; //定义变量
cout请选择一种翻转方式(1 :水平翻转,2 :垂直翻转) :endl; //选择
ciny;
cout操作后的数组为:endl;
if(y 1) //水平翻转
{
for(int i=0;i5;i++)
for(int j=0;j2;j++)
{
t=s[i][j];
s[i][j]=s[i][4-j];
s[i][4-j]=t;
}
print(s);
coutendl;
}
if(y 2) //垂直翻转
{
for(int j=0;j5;j++)
for(int i=0;i2;i++)
{
t=s[i][j];
s[i][j]=s[4-i][j];
s[4-i][j]=t;
}
print(s);
coutendl;
}
}
void roll(int s[5][5]) //卷动函数
{
int t,m,n;
cout请输入卷动方向(1 :向左卷动,2 :向右卷动,3 :向上卷动,4 :向下卷动) :endl;
cin
您可能关注的文档
- 2022企业年会策划方案范文集锦九篇.pdf
- 2019-2020高考数学第一次模拟试题(含答案).pdf
- 人教版二年级数学下册第九单元《数学广角——推理》教学设计.pdf
- 【名师精选】台州市仙居县2018届九年级上期末质量监测数学试题(有答案).pdf
- 【沪科版】初二数学下期中试卷(及答案)(3).pdf
- 2018-2020年三年高考真题物理分类汇编20 机械振动和机械波.pdf
- 人教版四年级数学上册第一单元.pdf
- 2019年全省职业院校学生技能大赛 “工程算量”赛项(中职学生).pdf
- 2017年电大电大物流管理专业本科现代管理专题形成性考核册.pdf
- 2019年超星尔雅音乐鉴赏答案.pdf
- 人教版数学九年级上册《 二次函数》说课稿(共19张PPT).ppt
- 人教版八年级上册 12.2.2三角形全等的判定 “边角边”判定三角形全等 (共22张PPT).ppt
- 人教版初中数学2011课标版八年级上册第十二章12.2 三角形全等的判定 课件(共16张PPT).ppt
- 人教版九年级第十单元课题1浓硫酸1 (共18张PPT).ppt
- 人教版初中数学七年级上册 1.4 有理数的乘除法(共22张PPT).ppt
- 人教版八年级物理上册第1章 第2节运动的描述习题课件(共20张PPT).ppt
- 人教版九年级课题2酸和碱之间会发生什么反应(共21张PPT).ppt
- 人教版初中物理2011课标版 九年级 第十八章 电功率第三节 测量小灯泡的电功率(共25张PPT).pptx
- 人教版初中数学2011课标版九年级上册第二十四章24.1圆的有关性质(共17张PPT).ppt
- 人教版初中数学2011课标版九年级上册21.2解一元二次方程(共22张PPT).pptx
原创力文档


文档评论(0)