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

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语言课程设计_工学_高等教育_教育专区。个人编写的趣味矩阵程序,用于...C语言课程设计_旋转矩阵 3页 1下载券 动态矩阵的生成与管理-C... 11页 1...
c语言矩阵的顺、逆时针旋转
c语言矩阵的顺、逆时针旋转_计算机软件及应用_IT/计算机_专业资料。c语言矩阵的顺、逆时针旋转#include <stdio.h> #include <windows.h> //矩阵顺时针旋转 void...
C语言课程设计矩阵问题
(2)Visual C++或 TC 集成开发环境 2.4 开发语言 C 语言 2 3 分析和设计 3.1 模块设计(1)定义一个二维数组 a[5][5]存放一个矩阵,用 for 循环输入 25 ...
c语言实现矩阵的相关操作
c语言实现矩阵的相关操作 - 算法分析与设计课程论文 —通过 C 语言实现矩阵的相关操作 一.摘要 本文在 Microsoft Visual Studio 2010 的编译环 境下,通过 C...
C语言实验——矩阵转置
C语言实验——矩阵转置_计算机软件及应用_IT/计算机_专业资料。C 语言实验——矩阵转置输入 N*N 的矩阵,输出它的转置矩阵。 Input 第一行为整数 N(1≤N≤100...
C语言课程设计报告-矩阵的运算
序号: 学号:--- 课设计课程名称: 题目: 程 设 计 C 语言课程设计 矩阵的运算 *** *** 专业班级: *** 专业技术职务: 学生姓名: 学院(系): 指导教师:...
大学生C语言程序设计(第四版 谭洪强)实验5答案
实验四 参考答案(参考答案) (1) 设计程序 sy5-1.c,从键盘上输入一个 3 行 3 列矩阵各个元素的值,输出其主对角线元素 和反向对角线元素之和。 算法分析:...
螺旋矩阵经典C程序
关键词:螺旋矩阵 程序 1/2 相关文档推荐 螺旋矩阵C程序 暂无评价 12页 1财富值 螺旋矩阵C程序 暂无评价 2页 2财富值 设计一个JAVA程序打印N阶螺... 3页 ...
矩阵的运算程序(C语言版)
矩阵的运算程序(C语言版)_计算机软件及应用_IT/计算机_专业资料。#include<...编写矩阵运算的程序 7页 1下载券 矩阵运算程序设计 14页 5下载券 c程序稀疏...
C语言课设矩阵运算
C语言课设矩阵运算_计算机软件及应用_IT/计算机_专业资料。#include<stdio.h> ...C语言课程设计报告-矩阵... 24页 2下载券 用C语言实现矩阵运算 6页 3下载...
更多相关标签: