江苏省XY中等专业学校2022-2023-1教案 编号:
备课组别 | 计算机 | 二维字符串数组怎么定义课程名称 | C语言 | 所在 年级 | 三年级 | 主备 教师 | ||
授课教师 | 授课 系部 | 授课班级 | 授课 日期 | |||||
课题 | 二维数组的应用 | |||||||
教学 目标 | 1、二维数组与矩阵的应用 | |||||||
2、与一位数组比较应用 | ||||||||
3、结合双重循环使用 | ||||||||
重点 | 二维数组与双重循环结合 | |||||||
难点 | 矩阵的分析与理解 | |||||||
教法 | 讲授法、案例教学法、讨论法 | |||||||
教学设备 | 黑板 计算机 网络机房 | |||||||
教学 环节 | 教学活动内容及组织过程 | 个案补充 | ||||||
教 学 内 容 | 一、导入: 矩阵由行列组成,所以用二维数组和双重循环 来解决此类问题。 二、讲授: 例题分析 求n×n矩阵a的上三角形元素之积。其中矩阵的行数、列数和全部元素值均由键盘输入,编程时取n<=10。上三角形元素如图所示。 分析: 本题的关键是如何表达上三角形元素,即数组元素的下标从什么数变化到什么数?设3×3矩阵,第1行的3个数,行标为0,列标为0、1、2;第2行的右边2个数,行标为1,列标为1、2;第3行的右边1个数,行标为2,列标为2。是什么规律?行标i从0~n-1,列标j从i~n-1。 程序如下: main( ) { int i,j,n; long u=1; int a[10][10]; printf("Enter n (n<=10): \n"); scanf("%d",&n); printf("Enter the data on each line for the array: \n"); for (i=0;i<n;i++) for (j=0;j<n;j++) scanf("%d",&a[i][j]); for (i=0;i<n;i++) for (j=i;j<n;j++) u*=a[i][j]; printf("The result is : %ld \n",u); } 运行结果为: Enter n (n<=10): 3↙ Enter the data on each line for the array: 1 3 5 7 9 -2 -4 -6 -8↙ The result is : 2160 请思考:画出描述算法的流程图或N-S图。 例:求3×3矩阵的主对角线上的元素之和,以及另一条对角线上的元素之和。按行排,矩阵各元素的值分别是35、4、5、10、20、30、-9、-8、-7。主对角线上的元素以及另一条对角线上的元素如图所示。 分析: 本题与上一例题一样,仍然是数组元素的下标的变化规律。请自己一。 程序如下: main( ) {int a[3][3]={{35,4,5},{10,20,30},{-9,-8,-7}}; int i,j,sum1=0,sum2=0; for (i=0;i<3;i++) for (j=0;j<3;j++) if (i==j) sum1=sum1+a[i][j]; for (i=0;i<3;i++) for (j=2;j>=0;j--) if((i+j)==2) sum2=sum2+a[i][j]; printf("sum1=%d,sum2=%d\n",sum1,sum2); } 运行结果为: sum1=48,sum2=16 扩展1、求二维数组(5*5)中最大元素值及其行列号 #include<stdio.h> main() { int a[5][5],i,j; for(i=0;i<5;i++) { for(j=0;j<5;j++) scanf("%d",&a[i][j]); } int sum=a[0][0],x,y; for(i=0;i<5;i++) { for(j=0;j<5;j++) { if(sum<a[i][j]) { sum=a[i][j]; x=i; y=j;} } printf("a[%d][%d]=%d",x,y,sum); } } | |||||||
板 书 设 计 | 一维数组的应用 一、例题分析 二、总结归纳 三、扩展练习 | |||||||
教 后 札 记 | ||||||||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论