- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* for 循环变量 = 取值列表 循环体 end 取值列表 通常是一个向量 将取值列表中的值依次赋给循环变量,直到全部取完, 循环结束 for 循环 不要在循环体内改变循环变量的值 为提高代码的运行效率,应尽可能提高代码的向量化程度 for 循环 * for 循环 y=0; n=100; for k=1:n y=y+1/(2*k-1); end 例: 已知 ,当 n=100 时,求 y 的值 例:计算 s = 1 + 3 + 10 - 28 + 30 + 50 - 12 - 8 s=0; x=[1, 3, 10, -28, 30, 50, -12,-8]; for k=x % 将 x 的分量依次赋值给循环变量 s=s+k; end * 循环语句可以嵌套使用 如果预先知道循环的次数,可采用 for 循环 如果预先无法确定循环次数,则可使用 while 循环 while 循环 while 条件表达式 循环体语句 end 当条件表达式的值为真(非 0)时, 执行循环体语句, 直到条件表达式的值是假为止 while 循环 表达式 循环体语句 真 假 * while 循环 例:数论中的一个有趣问题:3n+1 问题 任取一个正整数,如果是偶数,用 2 除,如果是奇数,用 3 乘再加 1,反复这个过程,直到所得到的数为 1。 问:是否存在使该过程永不中止的整数? n=input(请输入一个正整数 n: ); x=n; while x1 if mod(x,2)==0 x=x/2; else x=3*x+1; end fprintf( x=%d \n, x); end ex4while01.m * 这个例子给出了计算 eps 的一种方法。 这里我们用大写 EPS,因此系统中 eps 的值不会被覆盖。当 EPS=eps 时,条件仍成立;而当 EPS=eps/2 时,条件不成立,退出循环,所以最后应有 EPS=eps/2。k 用来记录循环次数。 计算 Matlab 中 eps 值 while编程示例 k=0; EPS=1; while (1+EPS) 1 EPS = EPS/2; k = k+1; end 例: ex4while02.m * 循环的终止 循环的中断 跳出循环体,终止循环 break 只能跳出一层循环 结束本轮循环,执行下一轮循环 break continue break 和 continue 通常需要与 if 语句配合使用 若想强行终止运行中的程序,可以使用 Ctrl+c * pause pause % 暂停程序的运行,按任意键后继续 pause(x) % 暂停程序 x 秒 这里的 x 可以是小数 pause off 屏蔽程序中所有 pause 的作用 pause on 打开 pause 的作用 程序暂停 返回/退出 退出正在运行的脚本或函数,通常用在函数文件中 return * 首先由计算机随机产生一个 [1,100] 之间的一个整数,然后由用户猜测所产生的这个数。 根据用户猜测的情况给出不同的提示,如果猜测的数大于产生的数,则显示 Higher,小于则显示 Lower,等于则显示 You won!同时退出游戏。用户最多有 7 次机会 编程示例 猜数游戏 例: ex4for.m randi(T,m,n) randi(T,n) 产生 1~T 间满足均匀分布的随机整数矩阵m=n 时简写为 randi(T,n) * 上机作业 1、已知程序: 2、已知 sin(x) 的幂级数展开公式为 试利用该公式计算 sin(?/2)和 sin(31?/2) 的值(直到级数某项的绝对值小于 10-16 为止),并与 Matlab 自带的 sin 函数比较,误差分别多大?为什么? (程序取名 m52.m) (在程序中将最后两个值输出来,程序取名 m51.m 中) 试说明程序运行结束后,最后得到的 x 和倒数第二个 x 值分别为多少? 若将程序改为下面的语句,结果又如何? x=1; while (x+xx), x=2*x; end x=1; while (x+xx), x=x/2; end * 上机作业 3、用 while 循环实现猜数游戏 (程序取名 m53.m) 从键盘输入一个大于 1 的整数,然后求出不超过这个整数的最大素数。 (要求使用 for 循环和 if 语句,可以使用 isprime 函数) 5、编写程序,实现下面的功能 4、编写程序,用穷举法
文档评论(0)