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

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 度 四、总结 通过适当的引导学生能掌握分析问题的方法,但是转变程序时 还有点问题,以后对编程的练习要加强。

教后记


相关文章:
VB程序设计-矩阵旋转
VB程序设计-矩阵旋转_计算机软件及应用_IT/计算机_专业资料。VB程序设计,二维数组的应用,旋转矩阵,一个很简单,但很巧妙的算法;有普通数组写法,也加入动态数组的...
C++课程设计 矩阵的旋转反射
关键词:c++课程设计计算机矩阵的旋转反射 1/2 相关文档推荐 C语言课程设计_旋转...10 沈阳理工大学 沈阳理工大学课程设计专用纸 1 题目内容及设计要求 No1 输入...
c语言矩阵的顺、逆时针旋转
c语言矩阵的顺、逆时针旋转_计算机软件及应用_IT/计算机_专业资料。c语言矩阵的顺、逆时针旋转#include <stdio.h> #include <windows.h> //矩阵顺时针旋转 void...
C语言程序设计关于矩阵的编程
C语言程序设计关于矩阵的编程_计算机软件及应用_IT/计算机_专业资料。题目:已知A、B两维数相同,元素不同的矩阵,两矩阵相加得矩阵C,求矩阵C中的最大和最小元素 ...
C++程序设计矩阵操作
矩阵操作是二维数组的基本运算,包括矩阵翻转、矩阵卷动、矩阵旋转等, 涉及不同...刘凤云.C++程序设计基础.北京出版社,1956 谭浩强 C 程序设计(第三版) 清华大学...
c语言课程设计 矩阵运算
c语言课程设计 矩阵运算_计算机软件及应用_IT/计算机_专业资料。课程设计 课程设计任务书一、课程设计题目:矩阵运算 二、课程设计工作自 2008 年 9 月 8 日起至...
C语言程序编程:输入奇数,输出n阶幻方矩阵
C语言程序编程:输入奇数,输出n阶幻方矩阵_计算机软件及应用_IT/计算机_专业资料。输入奇数n,输出n阶幻方矩阵C语言实现 #include<stdio.h> #define MAX 100 ...
矩阵操作C语言编程源程序
3页 1财富值 求逆矩阵的C语言程序CIN... 4页 20财富值如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,请点击此处进行反馈。 ...
趣味矩阵C语言课程设计
趣味矩阵C语言课程设计_工学_高等教育_教育专区。个人编写的趣味矩阵程序,用于...C语言课程设计_旋转矩阵 3页 1下载券 动态矩阵的生成与管理-C... 11页 1...
更多相关标签:
旋转矩阵 覆盖设计 | c语言旋转矩阵 | c 旋转矩阵 | 矩阵的旋转c | c语言 旋转输出矩阵 | c 矩阵类旋转 | c 矩阵多次旋转 | vb矩阵计算程序设计 |