数学课堂探究:基本算法语句_第1页
数学课堂探究:基本算法语句_第2页
数学课堂探究:基本算法语句_第3页
数学课堂探究:基本算法语句_第4页
数学课堂探究:基本算法语句_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学必求其心得,业必贵于专精学必求其心得,业必贵于专精学必求其心得,业必贵于专精课堂探究1.两种循环语句的执行原理剖析:(1)for循环的执行过程:通过for语句进入循环,将初值赋给循环变量i,当循环变量的值不超过终值时,则顺序执行循环体内的各个语句,遇到end,将循环变量增加一个步长的值,再与终值比较,如果仍不超过终值范围,则再次执行循环体,这样重复执行,直到循环变量的值超过终值,则跳出循环.温馨提示①只有当循环次数明确时,才能使用本语句.②步长可以为正、负,但不能是0,否则会陷入“死循环".步长为正时,要求终值大于初值,如果终值小于初值,循环将不能执行.步长为负时,要求终值必须小于初值.③for语句对应的程序框图如下图所示:(2)while语句执行过程:该语句对应于程序框图中的循环结构,先判断条件是否成立,当条件成立时,执行循环体,遇到end语句时,就返回到while,继续判断条件,若仍成立,则重复上述过程,若不成立,则去执行end后面的语句(即退出循环体).温馨提示①当循环次数未知时,只能利用while循环语句解决累加、累乘问题,循环体结束循环的条件必须是唯一的,若不确定,则无法结束,形成“永不停止”的循环.对于循环结束的条件,要注意与“是”“否"后面的处理框相对应.②while语句对应的基本框图如图所示:2.Scilab程序语言中常用符号剖析:数学符号Scilab语言中程序符号×(代数运算中的乘法运算符)*(程序里面表示乘法的运算符)÷(代数运算中的除法运算符)/(程序里面表示除法的运算符)ab(代数运算中的指数运算符)aeq\o(,\s\up6(^))b(程序里面表示指数的运算符)≤(代数中的小于等于符号)<=(程序里面表示小于等于的符号)≥(代数中的大于等于符号)>=(程序里面表示大于等于的符号)≠(代数中的不等号)<>(程序里面表示不等于的符号)|x|(代数运算中的取绝对值)abs(x)(程序里面取绝对值的函数)且(逻辑中的“且”运算)and(程序里面表示逻辑中的“且"运算)或(逻辑中的“或"运算)or(程序里面表示逻辑中的“或”运算)【例1】读用Scilab语句编写的程序,根据程序画出程序框图.x=input(“x=");y=input(“y=”);print(%io(2),x/2);print(%io(2),3*y);x=x+1;y=y-1;print(%io(2),x);print(%io(2),y);分析:该程序第1,2句是input输入语句,要求从键盘输入x与y的值;第3,4句是print输出语句,要求从屏幕输出eq\f(x,2)和3y的值,第5,6句赋值语句,用x+1的值代替原来x的值,用y-1的值代替原来y的值.第7,8句从屏幕输出x和y的值,由此可得程序框图.解:反思给出程序画框图类的题型,关键是理解程序的功能是什么,然后进行实际操作,在用赋值语句时,可对一个变量重复赋值,变量的值取最后一次的赋值.【例2】已知函数y=eq\b\lc\{\rc\(\a\vs4\al\co1(2x2-1x〉0,,2x+1x=0,,-2x2+4xx<0,))输入x的值计算y的值,画出程序框图,并写出程序.分析:本题是属于已知分段函数的解析式求函数值的问题.本题中分段函数的定义域被分成了三部分,从而在程序中需判定的条件有两个,在使用条件语句时要注意书写顺序及语句间的对应.解:程序如下.x=input(“x=”);ifx>0y=(2*x^2)-1;elseifx=0y=2*x+1;elsey=-2*x^2+4]endendprint(%io(2),y)程序框图如下图所示:反思根据本题可画出条件语句的整体书写格式(嵌套式)如下:eq\x(\b\lc\\rc\}(\a\vs4\al\co1(if表达式1,语句序列1;,else,\b\lc\\rc\}(\a\vs4\al\co1(if表达式2,语句序列2;,else,语句序列3;,end))\a\vs4\al(内层条,件语句),end))\a\vs4\al(外层条,件语句))【例3】用for语句写出计算1×3×5×7×…×2015的值的程序.分析:解决这一问题的算法如下:S1S=1;S2i=3;S3S=S×i;S4i=i+2;S5如果i>2015,则执行S6,否则执行S3,S4,S5;S6输出S.解:程序如下:eq\a\vs4\al(S=1;,fori=3:2:2015,S=Si;,end,print%io2,S;)反思(1)本题中的S=Si是循环体.(2)由于是一个累乘问题,如果我们设定S的初始值为1,i的初始值为1,则第二句也可改为fori=1:2:2015,最后程序的运行结果是一样的.(3)注意本程序中分号的作用,如果没有分号,则最后在屏幕上会出现每一步的运行结果;而有分号,则只出现最后的运行结果.【例4】用循环语句写出求满足1+eq\f(1,2)+eq\f(1,3)+…+eq\f(1,n)>10的最小自然数n的算法,并写出相应程序.分析:本题不等号的左边为1+eq\f(1,2)+eq\f(1,3)+…+eq\f(1,n),是有规律的累加运算,故引入累加变量S,而要求S>10的最小自然数n,故可用“whileS<=10”来控制循环,又要引入计数变量i,通过“i=i+1"进行循环.解:算法如下:S1S=0;S2i=1;S3S=S+eq\f(1,i);S4如果S≤10,则令i=i+1,并返回S3,否则输出i。程序如下:S=0;i=1;S=S+1/i;WhileS<=10i=i+1;S=S+1/i;endprint(%io(2),i);反思由于本题中终值预先不清楚,因此才考虑用while循环,要注意程序与算法一致.【例5】写出求使1+2+3+…+________<2014成立的所有正整数的一个程序.错解:S=1;i=1;whileS<2014i=i+1;S=S+i;endprint(%io(2),i);错因分析:该算法只能输出符合条件的最大正整数加1后所得的值,故不正确.事实上,为了能输出所有符合条件的正整数,必须把“print(%io

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论