当前位置:首页 >> 初中教育 >>

c程序设计 矩阵的旋转


宿 城 区 职 教 中 心 活 页 教 案
课题 矩阵的旋转编程 授课时间 2012 年 3 月 19 日 星期一

知识目标

了解二维数组旋转相关知识

教学目标

能力目标

培养二维数组程序设计能力

情感目标

通过编程的过程享受编程的成就感, 增加自我肯定的意 识 旋转前后数组的关系 二维数组旋转编程 讲授法、练习法、讨论法 多媒体、机房 教 学 过 程

重点 教学重难 点 难点 教法与学 法 教具准备

教学内容

师生活动

一、 矩阵的旋转 老师提问:矩阵旋转分为几种情况 矩阵的旋转有 8 种情 学生讨论:。 。。 况:逆时针 90 度、180 学生回答:。 。。 度、270 度、60 度;顺 时针 90 度、 度、 180 270 度、360 度 二、 相同情况 逆时针 90 度与顺 时针 270 度; 逆时针 180 度与顺 时针 180 度 逆时针 270 度与顺 时针 90 度 逆时针 360 度与顺 时针 360 度

老师提问:矩阵旋转的所有情况中,哪几种旋转效果是 相同的? 学生讨论:。 。。 学生回答:。 。。 老师提问:顺时针 360 度、逆时针 360 度与原矩阵有什 么关系? 学生讨论后回答:。。 。。。 答案:顺时针 360 度、逆时针 360 度与原矩阵相同 所以矩阵的旋转实际上只有 3 种情况。

三、

矩阵旋转的 3 种情况编程

1:顺时针 90 度 让学生画出顺时针 90 度后的矩阵 假设原矩阵 a[3][4], 答案: 旋转后放入新矩阵 b[i][j]中 赋值时值和下标相同

让学生讨论并找出 b[i][j]与原数组 a 之间的关系。 方法 I:已知新数组 b[i][j]: 原数组的列为新数组的 行 原数组的行=2-新数组 的列 b[i][j]=a[2-j][i] 学生编程:数组 a 按要求赋值并显示, 按顺时针 90 度规 则放入数组 b 中,变显示 b 数组。 I 参考程序: #include<stdio.h> main( ) { int a[3][4],b[4][3]; int i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) a[i][j]=10*i+j; //赋值 printf("原矩阵:\n"); for(i=0;i<3;i++) { for(j=0;j<4;j++) { if(a[i][j]/10==0) printf(" 0%d ",a[i][j]); else printf("%3d ",a[i][j]); } printf("\n"); } //显示原矩阵 for(i=0;i<4 for(i=0;i<4;i++) for(j=0;j<3 for(j=0;j<3;j++) b[i][j]=a[2-j][i];//放入 b[i][j]=a[2-j][i];//放入 b 中 printf("\n 新矩阵:\n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) { if(b[i][j]/10==0) printf(" 0%d ",b[i][j]); else printf("%3d ",b[i][j]); } printf("\n"); } }

方法 II:已知原数组 a[i][j]: 新数组的行为原数组的 列 新数组的列=2-原数组 的行 b[j][2-i] = a[i][j] 方法 II 只要修改蓝色 代码为: for(i=0;i<3;i++) for(j=0;j<4;j++) b[j][2-i] = a[i][j]; 特别注意 for 循环的循 环次数

2:顺时针 180 度 方法 I: 已知新数组 b[i][j]:
原数组的行=2-新数组的行 原数组的列=3-新数组的列

让学生画出顺时针 180 度后的矩阵 答案: 旋转后放入新矩阵 b[i][j]中

b[i][j]=a[2-i][3-j]
方法 II: 已知原数组 a[i][j]:
新数组的行=2-原数组的行 新数组的列=3-原数组的列

b[2-i][3-j]=a[i][j]

让学生讨论并找出 b[i][j]与原数组 a 之间的关系, 并编程验证。 for(i=0;i<4 方法 I:for(i=0;i<4;i++) for(j=0;j<3 for(j=0;j<3;j++) b[i][j]=a[2-i][3-j]; b[i][j]=a[2-i][3-j]; II:for(i=0;i<3 方法 II:for(i=0;i<3;i++) for(j=0;j<4 for(j=0;j<4;j++) b[2-i][3-j]=a[i][j] j]; b[2-i][3-j]=a[i][j];

3:顺时针 270 度 方法 I: 已知新数组 b[i][j]:
原数组的列=3-新数组的行 原数组的行=新数组的列

让学生画出顺时针 270 度后的矩阵 答案: 旋转后放入新矩阵 b[i][j]中

b[i][j]=a[j][3-i]
方法 II: 已知原数组 a[i][j]:
新数组的行=3-原数组的列 新数组的列=原数组的行

b[3-j][i]=a[i][j]

让学生讨论并找出 b[i][j]与原数组 a 之间的关系, 并编程验证。 for(i=0;i<4 方法 I:for(i=0;i<4;i++) for(j=0;j<3 for(j=0;j<3;j++) a[j][3-i]; b[i][j]= a[j][3-i]; II:for(i=0;i<3 方法 II:for(i=0;i<3;i++) for(j=0;j<4 for(j=0;j<4;j++) b[3-j][i]=a[i][j]; b[3-j][i]=a[i][j];

教学内容

师生活动

四、总结

总结: 顺时针 90 度: for(i=0;i<4 for(i=0;i<4;i++) for(j=0;j<3 for(j=0;j<3;j++) b[i][j]=a[2-j][i];// //放入 b[i][j]=a[2-j][i];//放入 b 中 顺时针 180 度: for(i=0;i<4 for(i=0;i<4;i++) for(j=0;j<3 for(j=0;j<3;j++) b[i][j]=a[2-i][3-j]; b[i][j]=a[2-i][3-j]; 顺时针 270 度: for(i=0;i<4 for(i=0;i<4;i++) for(j=0;j<3 for(j=0;j<3;j++) a[j][3-i]; b[i][j]= a[j][3-i]; 观察代码: 只有 180 度的旋转新矩阵的行、列与原矩阵的行、列对 应不变; 90 度、270 度的旋转新矩阵的行与原矩阵的列、新矩阵 的列与原矩阵行对应。 思考: 1:矩阵的转置同矩阵的旋转有关系吗? 2:上面我们学习的方法 I、方法 II 是按行优先顺序还 是按列优先顺序? 请对顺时针 90 度旋转的方法 I 改成列优先顺序编 程。

一、
二、

三、
板书设计

矩阵的旋转 矩阵旋转的所有情况中,相同的情况 矩阵旋转的 3 种情况编程

1、 顺时针 90 度 2、 顺时针 180 度 3、 顺时针 270 度 四、总结 通过适当的引导学生能掌握分析问题的方法,但是转变程序时 还有点问题,以后对编程的练习要加强。

教后记


相关文章:
c语言课程设计 矩阵运算
c语言课程设计 矩阵运算_计算机软件及应用_IT/计算机_专业资料。课程设计 课程设计任务书一、课程设计题目:矩阵运算 二、课程设计工作自 2008 年 9 月 8 日起至...
C++程序设计矩阵操作
矩阵是二维数组在数学上的称 呼,矩阵操作是二维数组的基本运算,包括矩阵翻转、...刘凤云.C++程序设计基础.北京出版社,1956 谭浩强 C 程序设计(第三版) 清华大学...
C语言课程设计矩阵问题
(2)Visual C++或 TC 集成开发环境 2.4 开发语言 C 语言 2 3 分析和设计 3.1 模块设计(1)定义一个二维数组 a[5][5]存放一个矩阵,用 for 循环输入 25 ...
C语言课程设计报告-矩阵的运算
序号: 学号:--- 课设计课程名称: 题目: 程 设 计 C 语言课程设计 矩阵的运算 *** *** 专业班级: *** 专业技术职务: 学生姓名: 学院(系): 指导教师:...
趣味矩阵C语言课程设计
趣味矩阵C语言课程设计_工学_高等教育_教育专区。个人编写的趣味矩阵程序,用于...C语言课程设计_旋转矩阵 3页 1下载券 动态矩阵的生成与管理-C... 11页 1...
C语言程序设计教程第五章练习题题目
C语言程序设计教程第五章练习题题目_IT认证_资格考试/认证_教育专区。单选题 1...4、若定义二维数组 intarr[5][6];则数组的列下标的取值范围为()。 5、...
C语言课程设计矩阵问题
C语言课程设计矩阵问题_工学_高等教育_教育专区。c语言课程设计 矩阵问题 邵阳...趣味矩阵C语言课程设计 暂无评价 10页 1下载券 C语言课程设计_旋转矩阵 3页...
《C程序设计》作业内容
C程序设计》作业内容_计算机软件及应用_IT/计算机_专业资料。C语言题目 ...6 实验四、数组程序设计一、实验目的及要求 1.掌握一维、二维数组的定义、赋值...
c++程序设计构造矩阵
实验过程及结果: 一、构造一个矩阵并且输出它的值 以下是编程代码: #include ...c程序设计 矩阵的旋转 4页 免费 层次分析法中判断矩阵的... 49页 1下载券 ...
C语言课程设计-矩阵的构造与打印
C 语言课程设计C 语言》 课程设计报告 标题:矩阵的构造与打印 学号: ...C语言课程设计_旋转矩阵 3页 1下载券 C语言课程设计报告打印 ... 12页 免费...
更多相关标签: