《c语言程序设计》教案6-1

上传人:kms****20 文档编号:40844099 上传时间:2018-05-27 格式:DOC 页数:7 大小:110.50KB
返回 下载 相关 举报
《c语言程序设计》教案6-1_第1页
第1页 / 共7页
《c语言程序设计》教案6-1_第2页
第2页 / 共7页
《c语言程序设计》教案6-1_第3页
第3页 / 共7页
《c语言程序设计》教案6-1_第4页
第4页 / 共7页
《c语言程序设计》教案6-1_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《《c语言程序设计》教案6-1》由会员分享,可在线阅读,更多相关《《c语言程序设计》教案6-1(7页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 7 页C 语言程序设计教案编号:编号:C C 程序设计程序设计 6 6 制订日期:制订日期:2011-1-252011-1-25课程名称第 6 章 数组授课形式讲授授课班级2010 级软件工程授课时数 6 学时授课日期2011.03.20-04.10 第 5、6周授课地点公 1#512、#513教学目标与要求: :1. 了解什么是数组 2. 掌握3.教学重点、难点:1. ;2. ;3. ;4. (重点)教学准备: 1采用多媒体教学。 2教学材料 教材:C 语言程序设计(第四版)谭浩强著 清华大学出版社 参考资料: C+语言程序设计与实践张思民著 清华大学出版社3制作多媒体课件,

2、讲稿。教学过程与时间分配备注授课内容授课内容 ( (补充内容补充内容) )随机函数随机函数1 1、 随机函数随机函数 随机函数是数学库函数中描述随机数的一个常用函数。随机数是 一种随机产生、事先无法预测的数值。在设计程序时,有时候会需要 用到随机数。C+ 在系统头文件 cstdlib 中内建了一个随机数产生 器随机函数 rand( ),这是用来产生随机数的函数。 随机函数 rand( )可以产生 032767 之间的一个伪随机整数。之 所以用“伪”字来形容它,是因为产生的随机数依赖于一个特殊的输 入值,这个输入值称为“种子”。 有两个用于产生随机数种子的函数:和 time( )。srand(

3、)函数第 2 页 共 7 页在系统头文件 cstdlib 中定义,由于头文件 cstdlib 是系统默认的, 因此可以省略。time( ) 函数在系统头文件 ctime 中定义,time( ) 函数的返回值实际上是以秒为计数单位的计算机内部时钟的当前时间。 由于每次执行的时候,时间的数值都不相同,因此产生的随机数不会 重复。如果事先没有调用 srand( )和 time( )这两个函数,将产生同 一序列的随机数。2 2、产生随机数、产生随机数 为了在运行程序时,每次都获得不同的随机数,需要 rand( )、 srand( )和 time( )三个函数结合起来使用。例如:srand(time(0

4、); int n = rand(); 则每次产生的随机数 n 都是不重复的。【补充例 1】产生三个每次运行都各不相同的随机数。 源程序如下:1 #include 2 #include 3 #include 4 5 void main() 6 7 int a, b, c; 8 srand(time(0); 9 a = rand(); 10 b = rand(); 11 c = rand(); 12 printf( “a = %d t“ , a); 13 printf( “b = %d t“ , b); 14 printf( “c = %d n“ , c); 15 在本程序中,使用了产生种子的语句

5、,每次运行程序所得到的三 个随机数都不是重复的。例如,第一次运行程序所得到的三个随机数 为:a = 26921 b = 28173 c = 574 再运行一次程序,其运行结果为:a = 27087 b = 19285 c = 26911在程序中,若没有产生种子的语句“srand(time(0); ” ,则每次 运行程序所得到的三个随机数都会重复。例如,第一次运行程序所得 到的三个随机数为:a = 41 b = 18467 c = 6334rand( )和 srand( )需要用到此头文件time( )需要用到此头文件用于产生每次运行程序获得不重复的随机数的种子产生三个随机数,若没有种子,每次会

6、产生重复的数有种子,产生的随机数不重复第 3 页 共 7 页再运行一次程序,其运行结果仍是:a = 41 b = 18467 c = 6334实际编程中,经常需要产生在一个指定的范围内的随机数。为了 控制随机数在一个指定的范围内产生,需要用到取模运算符“%”。例 如要获得一个 0 N-1 之间的随机整数,可以使用 “rand( ) % N” 来产生。 【补充例 2】产生三个 100 以内的随机数。源程序如下:1 #include 2 #include 3 #include 4 5 void main() 6 7 int a, b, c; 8 int N = 100; 9 srand(time(

7、0); 10 a = rand() % N +1; 11 b = rand() % N +1; 12 c = rand() % N +1;13 printf( “a = %d t“ , a); 14 printf( “b = %d t“ , b); 15 printf( “c = %d n“ , c); 16 程序运行结果为:a = 76 b = 94 c = 56.1.1 一维数组一维数组 数组是具有相同类型变量的集合。在数组中,各个变量称之为元 素。其中,同一数组中的所有元素都有相同的名字,只是下标不同。 只有一个下标的数组称之为一维数组,有多个下标的数组称之为多维 数组。1.1.一维数组

8、的定义一维数组的定义 一维数组定义的一般形式为:说明: (1)数据类型表示数组元素的类型。数据类型 数组名 常量表达式;没有种子,产生的随机数是重复的由于产生随机数的范围是 0 99,故需要再加 1rand( )和 srand( )需要用到此头文件time( )需要用到此头文件第 4 页 共 7 页(2)数组名的命名规则跟变量名一样。 (3)方括号中的常量表达式是数组的容量,即包含元素的个 数。例如:定义数组int a10; 表示定义了一个整型的数组 a,含有 10 个元素(每个元素都是整 型) 。其说明如图 6.1 所示。图 6.1 数组定义的说明数组一旦定义,各数组元素名就确定了。数组元素

9、的一般形式为:数组的第一个元素的下标总是从 0 开始的。对于上面所定义的数 组 a10,其元素依次为 a0, a1, a2, a3, a4, a5, a6,a7, a8, a9。 其实,数组名代表的是数组的首地址,下标则是数组元素到数组 开始的偏移量。系统为数组在内存分配的是一片连续的存储的单元, 如定义了“int a10;” ,则它的 10 个元素在内存中的排列情况如图 6.2 所示:图 6.2 一维数组元素在内存中的排列情况2.2.一维数组的初始化一维数组的初始化 数组初始化是指在数组定义时给数组元素赋予初值。数组初始化 是在编译阶段进行的。这样将减少运行时间,提高效率。 数组初始化赋值的

10、一般形式为:其中在 中的各数据值依次为各元素的初值,各值之间用逗号间隔。 例如:int a10 = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ; 相当于 a0 = 0; a1 = 1; .; a9 = 9;数组名下标数据类型 数组名常量表达式 = 值,值,值;第 5 页 共 7 页数组初始化赋值的几点说明: (1)可以只给部分元素赋初值。当 中数据值的个数少于元素个 数时,只给前面部分元素赋值。例如:int a10 = 0, 1, 2, 3, 4; 表示只给 a0a4这 5 个元素赋值,而后 5 个元素将被编译器 自动赋 0 值。如图 6.3 所示。图 6.3 未赋值的元素自动

11、被 0 填充(2)只能给元素逐个赋值,不能给数组整体赋值。例如:给十个 元素全部赋 1 值,只能写为:int a10 = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1; 而不能写为:int a10=1; (3)如在定义数组时给全部元素赋初值,则在数组定义的说明中, 可以不显式的指出数组容量,系统会以给出的数值个数默认为数组 容量。 例如:int a5 = 1, 2, 3, 4, 5; 可写为:int a = 1, 2, 3, 4, 5; 注意,C+ 数组元素以 0 开头而不是以 1 开头,经常会有初学者 搞错。 例如,声明了数组int a5; 这表示数组 a 有 5 个元素:a0、

12、a1、a2、a3、a4。 这个数组中没有 a5这个元素。 需要指出的是,这时如果在程序中使用了 a5,运行程序时 C+ 系统并不会报错。C+ 不会检查访问数组是否越界,系统会把紧接着 a4后面的存储单元中的值取出来当作 a5,程序能够使用这个值继 续运行,并得出结果,尽管这个结果是错误的。如图 6.4 所示。第 6 页 共 7 页图 6.4 当使用数组中并没有的元素 a5时,其取值情况(4)对于分布有规律、能用表达式表示元素的数组,经常采用循 环结构来给数组元素进行初始化,先声明一个数组,然后在循环中使 用赋值语句逐个初始化数组元素。例如: int a5;for(i = 0; i #inclu

13、de void main() int i, max, a10; int N = 100; srand(time(0);for(i = 0; i max) max = ai; printf(“最大值 max = %d n“ , max );采用循环,产生 10 个100 以内的随机整数,为数组赋值,并输出这 10个数声明数组 a 有 10 个元素从 a1到 a9逐个与 max 比较,较大者就赋值给 max,使max 总是元素值中的最大数。循环变量 i 的取值从 0 到 9,与数组 a 的下标值相同每循环一次,数组 a 的下标值都会变化第 7 页 共 7 页三总结强调重要的知识点三总结强调重要的知识点 熟练掌握数组的赋值与运算四课后作业四课后作业更新、补充、删 节 内 容无教学反思1、2、授课教师:张思民授课教师:张思民

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号