函数举例:随机数 例:随机数的生成 需包含头文件cstdlib seed=11; srand(seed); ∥设置种子 x=rand(); /∥返回一个随机整数 ex04_rand_01.cpp rand():返回一个O~RAND MAX之间的伪随机整数 srand(seed):设置种子。如不设定,默认种子为1 相同的种子对应相同的伪随机整数 每次执行rand()后,种子会自动改变,但变化规律是固定的 思考 如何生成[a,b]中的随机整数? ex04_rand_02.cpp ex04_rand_03.cpp 思考 如何生成[0,1]中的随机双精度数? 12 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 函数举例:随机数 12 例:随机数的生成 seed=11; srand(seed); // 设置种子 x=rand(); // 返回一个随机整数 ► rand():返回一个 0 ~ RAND_MAX 之间的伪随机整数 ► srand(seed):设置种子。如不设定,默认种子为 1 ► 相同的种子对应相同的伪随机整数 ► 每次执行 rand() 后,种子会自动改变, 但变化规律是固定的 需包含头文件 cstdlib ex04_rand_01.cpp 思考 如何生成 [a, b] 中的随机整数? 思考 如何生成 [0, 1] 中的随机双精度数? ex04_rand_02.cpp ex04_rand_03.cpp
函数举例:计时函数clock 例:计时函数clock:返回进程启动后所使用的cpu总滴答数(毫秒) 需包含头文件ctime #include <ctime> clock_t te,t1; double totaltime; t0=c1ock();/开始计时 /需计时的代码 t1=c1ock();∥计时结束 totaltime=(double)(t1-t0)/CLOCKS_PER_SEC; ex04 clock.cpp CLOCKS PER SEC:每秒的滴答数通常为1000. 13 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 函数举例:计时函数 clock 13 例:计时函数 clock:返回进程启动后所使用的 cpu 总滴答数(毫秒) #include <ctime> ... clock_t t0, t1; double totaltime; ... t0 = clock(); // 开始计时 ... // 需计时的代码 t1 = clock(); // 计时结束 totaltime=(double)(t1-t0) / CLOCKS_PER_SEC; 需包含头文件 ctime ex04_clock.cpp CLOCKS_PER_SEC: 每秒的滴答数, 通常为 1000
函数举例:计时函数time 例:计时函数time:返回从1970年1月1日0时0分0秒至今的总秒数 需包含头文件ctime #include <ctime> 。 time t t0,t1; to=time(o);/或者to=time(NuLL) /需计时的代码 t1 time(NULL); t=t1-t0; ex04_time.cpp clock以滴答(毫秒)为单位,time以秒为单位 14 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 函数举例:计时函数 time 14 例:计时函数 time:返回从 1970 年 1 月 1 日 0 时 0 分 0 秒至今的总秒数 #include <ctime> ... ... time_t t0, t1; t0 = time(0); // 或者 t0 = time(NULL) ... ... // 需计时的代码 t1 = time(NULL); t = t1 - t0; 需包含头文件 ctime ex04_time.cpp clock 以滴答(毫秒)为单位,time 以秒为单位
函数举例:猜数游戏 例:猜数游戏 由计算机随机产生[1,100]之间的一个整数,然后由用户猜测这个数。 一根据用户的猜测情况给出不同的提示:如果猜测的数大于产生的数,则显示 Larger;小于则显示Smaller;等于则显示You won!同时退出游戏。 ●用户最多有7次机会。 ex04 game.cpp 如何每次生成不同的随机整数?srand(time(o));x-rand(); 15 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 函数举例:猜数游戏 15 由计算机随机产生 [1,100] 之间的一个整数,然后由用户猜测这个数。 ► 根据用户的猜测情况给出不同的提示:如果猜测的数大于产生的数,则显示 Larger;小于则显示 Smaller;等于则显示 You won!同时退出游戏。 ► 用户最多有 7 次机会。 ex04_game.cpp 例:猜数游戏 如何每次生成不同的随机整数? srand(time(0)); x = rand();
函数的参数传递机制 ▣传递方式一:值传递 ●形参只在函数被调用时才分配存储单元,调用结束即被释放 实参可以是常量、变量、表达式、函数(名)等, 但它们必须要有确定的值,以便把这些值传送给形参 实参和形参在数量、类型、顺序上应严格一致 ●传递时是将实参的值传递给对应的形参,即单向传递 ●形参获得实参传递过来的值后,便与实参脱离关系, 即此后形参的值的改变不会影响实参的值 16 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 函数的参数传递机制 16 ► 形参只在函数被调用时才分配存储单元,调用结束即被释放 ► 实参可以是常量、变量、表达式、函数(名)等, 但它们必须要有确定的值,以便把这些值传送给形参 ► 实参和形参在数量、类型、顺序上应严格一致 ► 传递时是将实参的值传递给对应的形参,即单向传递 ► 形参获得实参传递过来的值后,便与实参脱离关系, 即此后形参的值的改变不会影响实参的值 传递方式一:值传递