苏教版高中数学必修三3.基本算法语句(B)
- 格式:docx
- 大小:126.59 KB
- 文档页数:6
基本算法语句
[问题1]用伪代码和流程图设计算法判断N 是否为素数.
我的思路:判断某个数N 是否为素数的方法:将N 作为被除数,用2到N 各个整数轮流作除数,如果都不能被整除,那么N 为素数.
为了使程序能符合结构化程序设计,这里设计了一个开关WN 能被某一个整数整除,那么使W 值为1,否那么WW 的值来确定N 是否为素数,假设W 值为0,那么N 为素数,否那么N 为非素数.
用伪代码设计算法如下:
Begin 〔算法开始〕
Read N
W ←0
I ←2
while I ≤N AND W =0
If R =0 then W ←1
Else I ←I +1
End if
End while
If W =0 then print N ,“是素数〞
Else print N ,“不是素数〞
End if
End 〔算法结束〕
流程图:
开始
结束[问题2]. 我的思路:用伪代码设计算法如下:
Begin
Read X
max ←X
For I from 2 to 10
Read X
If X >max then
max ←X
End if
End for
Print max
End
流程图:
N 结束1.伪代码是表示算法的一种方法,它是介于自然语言和计算机语言之间的文字和符号.使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言〔Pascal ,C ,Java …〕实现.
“If -then -Else 〞可以嵌套,也可以没有“Else 〞分支.循环语句有for 循环、while 循环和until 循环,要注意灵活应用.。
基本算法语句【学习目标】1、正确理解输入语句、输出语句、赋值语句的结构.2、会写一些简单的程序.3、掌握赋值语句中的“=”号的作用.4、正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系.5、会应用条件语句和循环语句编写程序.【要点梳理】要点一、输入语句在程序中的INPUT语句就是输入语句.这个语句的一般格式是:其中,“提示内容”一般是提示用户输入什么样的信息.功能:可对程序中的变量赋值.要点诠释:①“提示内容”提示用户输入什么样的信息,必须加双引号,提示内容“原原本本”的在计算机屏幕上显示,提示内容与变量之间要用分号隔开;②变量是指程序在运行时其值是可以变化的量;③一个语句可以给多个变量赋值,中间用“,”分隔,但最后的变量的后面不需要;④要求输入的数据必须是常量,而不能是函数、变量或表达式;⑤无计算功能.例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:INPUT “数学,语文,英语”;a,b,c要点二、输出语句在程序中的PRINT语句是输出语句.它的一般格式是:同输入语句一样,表达式前也可以有“提示内容”.功能:可输出表达式的值,计算.要点诠释:①“提示内容”提示用户输出什么样的信息,提示内容必须加双引号,提示内容要用分号和表达式分开;②表达式是指程序要输出的数据,可以是变量、计算公式或系统信息;③一个语句可以输出多个表达式,不同的表达式之间可用“,”分隔;④有计算功能,可以输出常量、变量或表达式的值以及字符.要点三、赋值语句用来表明赋给某一个变量一个具体的确定值的语句.它的一般格式是:赋值语句中的“=”叫做赋值号.功能:先计算出赋值号右边表达式的值,然后把这个值赋给赋值号左边的变量,使该变量的值等于表达式的值.要点诠释:①赋值号的左右两边不能对换,如“A=B”“B=A”的含义运行结果是不同的;②格式中右边“表达式”可以是一个数据、常量和算式,如果“表达式”是一个算式时,赋值语句的作用是先计算出“=”右边表达式的值,然后将该值赋给“=”左边的变量;③赋值号左边只能是变量名字,而不能是表达式,如:2=X 是错误的;④不能利用赋值语句进行代数式的演算(如化简、因式分解等);⑤对于一个变量可以多次赋值;⑥有计算功能;⑦赋值号与数学中的等号的意义是不同的.赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值,如果已有值,则执行该语句后,以赋值号右边表达式的值代替该变量的原值,即将“原值”冲掉.要点四、条件语句算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句.它的一般格式是:(IF-THEN-ELSE 格式)当计算机执行上述语句时,首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句1,否则执行ELSE 后的语句2.其对应的程序框图为:(如上右图)在某些情况下,也可以只使用IF-THEN 语句:(即IF-THEN 格式)计算机执行这种形式的条件语句时,也是首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句.其对应的程序框图为:(如上右图)要点诠释:条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去.需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理.IF 条件 THEN 语句END IF要点五、循环语句算法中的循环结构是由循环语句来实现的.对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE 型)和直到型(UNTIL 型)两种语句结构.即WHILE 语句和UNTIL 语句.1.WHILE 语句的一般格式是:其中循环体是由计算机反复执行的一组语句构成的.WHLIE 后面的“条件”是用于控制计算机执行循环体或跳出循环体的.当计算机遇到WHILE 语句时,先判断条件的真假,如果条件符合,就执行WHILE 与WEND 之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND 语句后,接着执行WEND 之后的语句.因此,当型循环有时也称为“前测试型”循环.其对应的程序结构框图为:(如上右图)2.UNTIL 语句的一般格式是:其对应的程序结构框图为:(如上右图)直到型循环又称为“后测试型”循环,从UNTIL 型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL 语句后执行其他语句,是先执行循环体后进行条件判断的循环语句.要点诠释当型循环与直到型循环的区别①当型循环是先判断后执行,直到型循环是先执行后判断;②当型循环用WHILE 语句,直到型循环用UNTIL 语句;③对同一算法来说,当型循环和直到型循环的条件互为反条件.【典型例题】类型一:输入语句、输出语句和赋值语句例1.判断下列输入、输出语句是否正确?为什么?(1)输入语句INPUT a ;b ;cWHILE 条件 循环体 WENDDO 循环体 LOOP UNTIL 条件(2)输入语句INPUT x=3(3)输出语句PRINT A=4(4)输出语句PRINT 20,3*2【解析】(1)错,变量之应用“,”隔开;(2)错,INPUT语句中只能是变量而不能是表达;(3)错,PRINT语句中不能用赋值号“=”;(4)对,PRINT语句可以输出常量、变量、表达的值。
基本算法语句教学目标:通过伪代码学习基本的算法语句,更好地了解算法思想. 教学重点:如何进行算法分析. 教学难点:如何进行算法分析. 教学过程: Ⅰ.课题导入算法基本语句包括赋值语句、输入输出语句、条件语句、循环语句. 伪代码问题:已知某学生一次考试中语文、数学和英语学科的得分分别为85,90,95,试设计适当的算法求出这名学生三科的总分和平均分.解:sum ←0 C ←85 M ←90 E ←95sum ←C +M +EA ←sum /3 Print sum ,A endⅡ.讲授新课例1:设计一个解二元一次方程组的通同算法. 设二元一次方程组为⎩⎨⎧a 1x +b 1y =c 1a 2x +b 2y =c 2(a 1b 2-a 2b 1≠0) 用消元法解得⎩⎨⎧x =b 2c 1-b 1c 2a 1b 2-a 2b 1y =a 1c 2-a 2c 1a 1b 2-a 2b 1用伪代码表示为 用伪代码表示为 Read a 1,b 1,c 1,a 2,b 2,c 2x ← b 2c 1-b 1c 2a 1b 2-a 2b 1y ← a 1c 2-a 2c 1a 1b 2-a 2b 1Print x ,y例2:已知三角形的三边,试用流程图和伪代码表示求这个三角形的周长的算法. 解:流程图 伪代码Read a ,b ,c M ← a +b +c Print M例3:已知一匀变速运动的物体的初速度、末速度和加速度分别为V 1,V 2,a ,求物体运动的距离s .试编写求解这个问题的一个算法的流程图,并用伪代码表示这个算法.解:由题意可知,V 2=V 1+a t ,故运动时间t =V 2-V 1a所以,物体运动的距离s =V 1 t +12 a t 2=V 22-V 122a.据此,可设计算法如下: 将此算法程序用伪代码表示为:Read V 1,V 2,as ← V 22-V 122aPrint s End例4:写出下列用伪代码描述的算法执行后的结果. (1)算法开始 a ←2; a ←4; a ←a +a ; 输出a 的值; 算法结束 执行结果:( ) 答案:8(2)算法开始 n ←10; i ←2; sum ←0;while (i ≤n ) sum ←sum+i ; i ←i +2;输出sum 的值; 算法结束 执行结果:( ) 答案:30点评:本题主要考查学生对基本算法语句的灵活准确应用和自然语言与符号语言的转化,让学生理解用伪代码表示的算法. Ⅲ.课堂练习课本P 17 1,2,3. Ⅳ.课时小结Read 是输入语句的一种,输入数据还有其它方式;输入语句与赋值语句不同,赋值语句可以将一个代数表达式的赋于一个变量,而输入语句只能读入具体的数据.Ⅴ.课后作业课本P 24 1,2.基本算法语句(二)教学目标:使学生能结合选择结构的流程图学习条件语句,能用条件语句编写程序. 教学重点:如何在伪代码中运用条件语句. 教学难点:如何在伪代码中运用条件语句. 教学过程: Ⅰ.课题导入某百货公司为了促销,采用购物打折的优惠办法:每位顾客一次购物 (1)在1000元以上者,按九五折优惠. (2)在2000元以上者,按九折优惠. (3)在3000元以上者,按八五折优惠. (4)在5000元以上者,按八折优惠. 编写程序求优惠价.解析:设购物款数为x 元,优惠价为y 元,则优惠付款公式为y =⎪⎪⎪⎩⎪⎪⎪⎨⎧≥<≤<≤<≤<. 5000)( 8.0)5000(3000 85.0)3000(2000 9.0)2000(1000 95.0)1000( x x x x x x x x x x 用条件语句表示为: Read xIf x <1000 then y =x ElseIf x <2000 then y =0.95x ElseIf x <3000 then y =0.9x ElseIf x <5000 then y =0.85x Else y =0.8x End if Print y点评:在准确理解算法的基础上,学会条件语句的使用.Ⅱ.讲授新课例1:写出下面流程图所表述的算法的功能并用伪代码表示.答案:解:输出两个不同的数中小的一个数.用伪代码表示为 Begin Read a ,b If a >b then Print b Else Print a End if End例2:某市电力公司为了鼓励居民用电,采用分段计费的方法计算电费:每月用电不超过100度时,按每度0.57元计算;每月用电超过100度时,其中的100度仍按原标准收费,超过部分每度按0.50元计算.问:如何设计一个计算应交电费的算法?答案:解:设月用电x 度时,应交电费y 元,当x ≤100和x >100时,写出y 关于x 的函数关系式为y =⎩⎨⎧>-+≤<.100 )100(5.057,100057.0x x x x所以,计算应交电费的算法可以用伪代码表示为 Begin Read xIf x ≤100 then y ←0.57x Elsey ←57+0.5(x -100) End if Print y End例3:试用条件语句描述计算应纳税所得额的算法过程,其算法如下: S1 输入工资x (x ≤5000); S2 如果x ≤800,那么y =0;如果800<x ≤1300,那么y =0.05(x -800); 如果1300<x ≤2800, 那么y =25+0.1(x -1300), 否则y =175+0.15(x -2800);S3 输出税收y ,结束.答案:解:这个算法用条件语句描述为 Begin Read xIf x ≤800 then y ←0Else if 800<x ≤1300 then y ←0.05(x -800)Else if 1300<x ≤2800 then y ←25+0.1(x -1300) Elsey ←175+0.15(x -2800) End if Print y End例4:在水果产地批发水果,100 kg 为批发起点,每100 kg 40元;100 kg 至1000 kg 8折优惠;1000 kg 至5000 kg ,超过1000 kg 部分7折优惠;5000 kg 至10000 kg ,超过5000 kg 的部分6折优惠;超过10000 kg ,超过部分5折优惠.请写出销售金额y 与销售量x 之间的函数关系,并用伪代码表示计算销售金额的算法.答案:y =⎪⎪⎩⎪⎪⎨⎧>+≤<+≤<+≤<.10000 6402.0,100005000 24024.0,50001000 4028.0,1000100 32.0x x x x x x x x这个算法用条件语句描述为Begin Read xIf 100<x ≤1000 then y ←0.32xElse if 1000<x ≤5000 then y ←0.28x +40Else if 5000<x ≤10000 then y ←0.24x +240 Elsey ←0.2x +640 End if Print y End Ⅲ.课堂练习课本P 20 1,2,3. Ⅳ.课时小结算法中的选择结构可以用条件语句实现. if 选择结构:if/else 选择结构:Ⅴ.课后作业课本P24 3,4.基本算法语句(三)教学目标:使学生能结合选择结构的流程图学习条件语句,能用条件语句编写程序.教学重点:如何在伪代码中运用条件语句.教学难点:如何在伪代码中运用条件语句.教学过程:Ⅰ.课题导入写出计算1+2+3+4+…+100之和的伪代码.答案:解:此问题可以用循环语句表示为S←1For I from 2 to 100S←S+IEnd ForPrint SⅡ.讲授新课例1:依次将十个数输入,要求将其中最大的数打印出来.试用流程图和伪代码表示问题的算法.用伪代码设计算法如下:BeginRead Xmax←XFor I from 2 to 10Read XIf X>max thenmax←XEnd ifEnd forPrint maxEnd流程图:例2:已知S=5+10+15+…+1500,请用流程图描述求S的算法并用伪代码表示.解析:流程图如下图所示:从流程图可以看出这是一个循环结构,我们可以运用循环语句来实现.BeginS←5For I from 10 to 1500 step 5S←S+IEnd ForPrint SEnd点评:在准确理解算法的基础上,学会循环语句的使用.循环语句包括for循环、While 循环和Until循环.解题时要根据需要灵活运用.循环语句包括if…then,if…then…else,并且if…then…else可以嵌套,解题时要根据需要灵活运用.例3:伪代码算法填空.有一列数:1,1,2,3,5,8,13,21,….这列数有个特点,前两个数都是1,从第3个数开始,每个数都是前两个数的和,例如:3是1和2的和;13是5和8的和等等,这样的一列数一般称为斐波那契数.下列伪代码所描述的算法功能是输出前10个斐波那契数,请把这个算法填写完整. a ←1; b ←1;输出a ,b ; n ←2;while n <10; n ←n +1; c ←a +b ; 输出c ; 编号①; 编号②; end while答案:①a ←b ②b ←c例4:求1-21+31-41+…+91-101的值. 算法分析:第一步是选择一个变量S 表示和,并赋给初值0,再选一个变量H ,并赋给初值0;第二步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第三步为循环表达式(循环体);第四步用“end for ”控制一次循环,开始一次新的循环. 伪代码如下: S ←0 H ←0For i from 1 to 10 H ←(-1)i +1/i S ←S +H End for Print S 例5:小明第一天背一个单词,第二天背两个单词,以后每一天比前一天多背一个单词,问他前十天共背了多少个单词?解:第一步是选择一个变量S 表示和,并赋给初值0,第二步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第三步为循环表达式(循环体);第四步用“end for ”控制一次循环,开始一次新的循环. 伪代码如下: S ←0For i from 1 to 10 S ←S +i End for Print S例6:求平方值小于2000的最大整数. 解:伪代码: j ←1While j2<2000j←j+1End whilej←j-1Print j例7:用伪代码描述求解S=1×2×3×…×(n-1)×n的算法.解:此问题可以用循环语句表示为BeginRead nS←1For I from 1 to nS←S×IEnd forPrint SEnd例8:输入一个正整数n,并计算S=11×22×33×…×n n的值.解:第一步是选择一个变量n,并要求输入初值;第二步是选择一个变量S表示和,并赋给初值0;第三步开始进入for循环语句,首先设i为循环变量,并设初值、步长、终值;第四步为循环表达式(循环体);第五步用“end”控制一次循环,开始一次新的循环.伪代码如下:Read nS←0For i from 1 to nS←S×i iEnd forPrint SEnd例9:某城市现有人口总数为100万人,如果年自然增长率为1.2%,试解答下面的问题:(1)写出该城市人口数y(万人)与年份x(年)的函数关系式;(2)用伪代码写出计算10年以后该城市人口总数的算法;(3)用伪代码写出计算大约多少年以后该城市人口将达到120万人.答案:(1)y=100×(1+0.012)x.(2)10年后该城市人口总数为y=100×(1+0.012)10.算法如下:Beginy←100t←1.012For I from 1 to 10y←y×tEnd forPrint yEnd(3)设x年后该城市人口将达到120万人,即100×(1+0.012)x=120.算法如下:BeginS←100I←1.012T←0While S<120S←S×IT←T+1End whilePrint TEndⅢ.课堂练习课本P23 1,2,3,4.Ⅳ.课时小结算法中的循环结构可以用循环语句实现.正确理解两种循环语句:for循环、当型循环和直到型循环.当型循环:while(条件表达式)循环体语句;直到型循环:do循环体语句while(条件表达式);for循环:for(表达式1;表达式2;表达式3)循环体语句;Ⅴ.课后作业课本P24 5,6.。
课题:基本算法语句(一)教学目标:⑴了解输入语句、输出语句、赋值语句的结构。
⑵通过实例使学生了解输入语句、输出语句、赋值语句的表示方法、结构和用法,进一步体会算法的基本思想。
教学难点、重点:了解输入语句、输出语句、赋值语句的作用。
教学过程一、问题情境为了实现算法中的三种基本的逻辑结构:顺序结构、条件结构和循环结构,各种程序设计语言中都包含下列基本的算法语句:输入语句、输出语句、赋值语句、条件语句和循环语句.伪代码——介于自然语言和计算机语言之间的文字和符号.二、建构数学(一)赋值语句(1)赋值语句的一般格式是:变量←表达式或变量.(2)赋值语句的作用是将一个表达式或变量的值赋给一个变量.它实质上是先将赋值号“←”右边表达式或变量的值计算出来,然后把该值赋给“←”左边的变量,使该变量的值等于表达式或变量的值.注意:①赋值号左边只能是变量,而不能是表达式或常数;②赋值号左、右两边不能对换,A←B和B←A的含义及运行结果一般来说是不同的;③赋值号“←”与数学中的“=”意义是不同的,如数学中式子N=N+1应说是错误的,但在赋值语句中它的作用是将当前N的值加上1再赋给变量N,这样原来的值将被新的值取代.如算法:x←2;x←x3.则运行结果为8.④符号“←”两边的量应是同类型的.(二)输入、输出语句输入语句:用“Read a,b”表示输入的数据依次送给a,b.输出语句:用“Print x”表示输出运算结果x.注意:①输入语句也是赋值语句,只不过是输入语句可处理批量数据的赋值问题.例如,“Read a,b,c,d,e”,便一下了读入了5个数据.②输出语句是程序中不可缺少的语句,因为没有输出的程序是无意义的程序.三、数学应用例1 下面的表述: ① 6←p ;② t ←3×5+2;③ b +3←5;④ p ←((3x +2)-4)x +3;⑤ a ←a 3;⑥ x ,y ,z ←5; ⑦ ab ←3; ⑧ x ←y +2+x .其中正确表述的赋值语句有 .例2 写出x =23时多项式7x 3+3x 2-5x +11的值的算法.(阅读课本第16页) 例3 根据程序框图,写出伪代码.四、课堂练习 1.下列赋值语句正确的是 ( )A .4←yB .p +q 3←8C .m =n ←2D .s ←s 2+12.写出下列程序的运行结果: 输出结果为 . 输出结果为 . 3.如图该伪代码表示的作用是 .4.已知A (x 1,y 1),B (x 2,y 2)是平面上的两点,试设计一个程序,输入 A 、B 两点的坐标 ,输出线段中点的坐标.现已给出程序的一部分,试在横线上填上适当的语句,把程序补充完整.5.请设计一个问题,使得该问题的算法如已知的伪代码所示 .a ←5b ←7c ←(a+b)/2 Print cEnd a ←5 b ←7 c ←b -a b ←a+b+c Print c/2 End Read a ,b ,cm ←Max(a ,b ,c )Print mEndRead a ,b m ←a a ←b b ←m Print a ,b 若输入3,4, 则输出结果为 Read a ,b ,c a ←b b ←c c ←a Print a ,b ,c 若输入2, 3,4, 则输出结果为。
基本算法语句由上一节的内容我们知道,用顺序结构、选择结构和循环结构的组合和嵌套就可表示任何算法,但算法的这些结构还不能为计算机所“理解〞与“识别〞,因此我们还必须寻找介于自然〔结构〕语言与计算机能识别的语言之间的桥梁,并由此而真正发挥计算机的作用.那这个桥梁是什么呢?有人说,它是一个中间纽带;也有人说,它是计算机能“识别〞的“伪代码〞;还有人说,它是一种算法语言.也许,你已经对这个桥梁有了一个大概的轮廓、大致的认识:轮廓具有很大的作用,认识具有很多的启示.那我们如何寻找这个桥梁,又如何利用这个桥梁呢?那就请你随我们一道进入本节内容的学习.学法建议不论做什么事,都力求简捷、明了,让人看了赏心悦目,研究算法也是如此. 人的语言从字、词、句开始,算法也从语句开始. 基本算法语句有那些?又如何表示这些基本算法语句呢?本节将主要探讨上述问题,并由此让你能够操控计算机,让计算机成为你的一个臣民,让计算机为你服务.学习本节要求掌握:1.理解用伪代码表示的算法语句——赋值语句、输入输出语句、条件语句、循环语句,进一步体会算法的基本思想; 2.体会经历将具体问题的流程图转化为伪代码的过程;3.真正体会实施算法的过程:设计、构造、检验、修正、完善,提高运算的效率; 4.进一步培养逻辑思维能力.一、知识网络.伪代码的书写没有统一的格式,只要书写简便、容易理解、表达清楚即可.2.编写实际问题中的条件语句时,应先分析实际问题,将实际问题转化为数学问题,理清算法步骤,然后再用条件语句写算法.二、知识归纳 1.伪代码伪代码是介于自然语言和计算机语言之间的文字和符号,是表达算法的简单而实用的好方法.基本算法语句赋值语句 伪代码输入输出语句条件语句 循环语句通过伪代码可学习基本的算法语句.伪代码的书写虽然没有统一的格式,但也要遵循人们的认识的习惯,且所用符号应相对地统一.例如,本书约定符号“←〞表示赋值,其含义也是清晰的,如赋值语句“m←2005〞便表示给变是m赋值2005,此时就不宜再用“2005⇒m〞或“m⇐2005〞等的其它形式来表示给m 赋值了.2.赋值语句〔1〕赋值语句的一般格式是:变量←表达式或变量.〔2〕赋值语句的作用是将一个表达式或变量的值赋给一个变量.它实质上是先将赋值号“←〞右边表达式或变量的值计算出来,然后把该值赋给“←〞左边的变量,使该变量的值等于表达式或变量的值.〔3〕学习赋值语句时要注意以下几点:①赋值号左边只能是变量,而不能是表达式或常数;②赋值号左、右两边不能对换,A←B和B←A的含义及运行结果一般来说是不同的;③赋值号“←〞与数学中的“=〞意义是不同的,如数学中式子N=N+1应说是错误的,但在赋值语句中它的作用是将当前N的值加上1再赋给变量N,这样原来的值将被新的值取代.如算法:x←2;x←x3.那么运行结果为8.④符号“←〞两边的量应是同类型的.3.输入、输出语句〔1〕输入语句:用“Read a,b〞表示输入的数据依次送给a,b.输入语句也是赋值语句,只不过是输入语句可处理批量数据的赋值问题.例如,“Read a,b,c,d,e〞,便一下了读入了5个数据.〔2〕输出语句:用“Print x〞表示输出运算结果x.输出语句是程序中不可缺少的语句,因为没有输出的程序是无意义的程序.可以一次输出多个变量的值,也可输出一些字符.当想输出字符时,字符内容应加在引号内.如“Print ‘Iamastudent’〞,那么输出了“Iamastudent〞;又如“Print ‘我是中国人’〞,那么输出了“我是中国人〞.4.条件语句要实现选择结构就要用到条件语句.条件语句主要有两种形式:“块If语句〞与“行If语句〞.〔1〕“块If语句〞的一般形式是:If A Then BElse CEnd if其中A表示判断的条件,B表示满足条件时执行的操作内容,C表示不满足条件时执行的操作内容,End if表示条件语句结束.条件语句的缺口“end if〞不能省.块If语句,看起来较行If语句清晰,因而在学习时那么更多地被采用.为了清晰醒目和方便阅读,通常将Then部分和Else部分缩进书写.如:Read xIf x≥1 thenm←5xElsem←x2+2End ifPrint m上面步骤“m←5x〞为“then〞分支,步骤“m←x2+2〞为“Else〞分支.这两个分支分别缩进了一部分.〔2〕“行If语句〞的一般形式是:If A then B[ Else C ]一个行If语句必须在一行中写完.其中方括号中的Else部分可以缺省.教材P22例4采用了行If语句.5.循环语句要实现循环结构就要用到循环语句.循环语句包括“For循环〞、“While循环〞等.〔1〕For循环:其一般形式为For I from “初值〞to “终值〞step “步长〞…End for上面的“For〞和“End for〞之间缩进的步骤“…〞称为循环体.“step ‘步长’〞被省略时,当重复循环时,变量I的值每次增加为1.〔2〕While循环:其一般形式为While A…End while上面A表示判断执行循环的条件.“While〞和“End while〞之间缩进的步骤“…〞称为循环体.“While 〞语句的特点是“前测试〞,即先判断,后执行.假设初始条件不成立,那么一次也不执行循环体中的内容.任何一种需要重复处理的问题都可以用这种前测试循环来实现.三、重点诠释1.程序设计的目的是实现对数据的处理,因此数据输入是任何程序都不可缺少的重要组成部分,提供数据的语句是组成程序的基本成分.输入语句也是赋值语句,输入语句可处理批量数据的赋值问题.使用赋值语句,一定要注意其格式要求,如:赋值号左边只能是变量而不能是表达式;赋值号左右两边不能对换等.利用赋值语句可实现变量值的互换.例如,上述算法程序,使变量x 、y 的值实现了互换. 2.必须准确理解并掌握各种基本算法语句的格式.在使用“For 〞循环时,应考虑“step ‘步长’〞是否能够省略.缺省时,那么默认步长为1.当循环的次数已经确定时,可用“For 〞循环语句来表示;当循环次数不能确定时,可用“While 〞循环语句来表示.在使用“块If 〞条件语句时,不能省略条件语句的出口“End if 〞. 条件语句与循环语句内均可有嵌套.思维诊断赋值语句中的“←〞表示给左边的变量进行赋值,因此左边部分应是一个变量,而右边部分可以是变量或表达式,但两都的类型必须相同.另外,左边的变量只有一个,而不能是两个,也不能是表达式.同时,一Read x ,yp ←x x ←y y ←p Print x ,y根据赋值语句的表述格式进行判断. [解答]正确的表述有:②⑤⑧.先读懂该算法的实质,然后再进行相应的处理.[解答]算法中首先涉及了一个分段函数:1,0,()1,0.x z z x x ⎧==⎨-⎩≤>最后直接输出z +1.例如当x =1时,那么输出结果为2;当x = -2时,那么输出0.流程图与伪代码见图5-3-1.个赋值语句只能对一个变量进行赋值.对多个变量赋值应用输入语句.知识延伸一个问题的解决,可有自然语言表示的算法,也有流程图表示的,还有伪代码表示的,它们之间可以互相转化,它们本身也各有其特点.自然语言表示的算法,亲切自然;流程图表示的直观易读明了简洁;伪代码表示的,那么是介于自然语言与计算机语言之间,它是可被计算机所认识的语言. 此题的算法可以改进.仅以伪代码为例说明如下:方法拓展生活中处处存在数学问题,只要留心5-3-1Read x If x ≤0 then z ←-1 Else z ←1End ifz ←z +1 Print zRead xIf x ≤0 thenz ←0 Elsez ←2End ifPrint z先用数学公式表示出优惠付款公式,然后再继续回答相关问题.[解答]设购物款为x 元,优惠价为y 元,那么优惠付款公式为,100,0.95,100200,0.9,200300,0.85,300500,0.8,500.x x x x y x x x x x x ⎧⎪⎪⎪=⎨⎪⎪⎪⎩≤≤≤≥<<<< 算法分析:S 1 输入x 的值;S 2 如果x <100,输出y =x ,否那么转入S 3; S 3 如果x <200,输出yx ,否那么转入S 4; S 4 如果x <300,输出yx ,否那么转入S 5; S 5 如果x <500,输出yx ,否那么转入S 6; S 6 输出yx .流程图与伪代码见图5-3-2. 便会发现许多有趣的问题.本例便是实际问题的一个抽象与浓缩.此题是用条件语句写的伪代码.这里用的是“块If 语句〞,块If 语句可以嵌套.在用块If 语句时,then 分支与Else 分支,一般应缩进书写,这样看起来更加醒目且便于阅读.一般地说,问题中出现几次条件判断,那么在流程图中将会有几个判断框〔菱形〕,同样的在伪代码中,也会有几重条件语句的嵌套. 思维诊断在块If 语句中,缺口“End if 〞不能缺省,否那么将会出现无法执行的错误.判断条件是x <100还是x ≤100,或x >100还是x ≥100,这里的“=〞必须正确的使用. 思维发散此题中的判断条件x <100可以改为x ≥100,你想想看,流程图与伪代码Read x If x <100 theny ←x ElseIf x <200 theny ←xElseIf x <300 then y ←x Else用循环语句求和即可.本问题中由于不知是多少项的和,故宜采用While循环语句来书写算法.[解答]算法分析:第一步是选择一个变量S表示和,并赋给初值为0;第二步是选一个循环变量I,并赋给初值1;第三步开始进入While循环语句,首先判断I的平方是否小于1000;第四步为循环表达式〔循环体〕;第五步用End while来控制循环,结束循环后执行后面的语句;第六步结束程序.伪代码见右上所示.分别应作怎样的改动?本例的问题是一类代表题型,几乎所有的分段函数类的问题,都可以用该类似的算法来实施.思维发散我们也可采用如下的算法来进行计算.I←1While I×I<1000I←I+1End whilen←I-1S←0For J from 1 to nS←S+J×JEnd forPrint SEnd〔注:运行结果为S=10416〕S←0I←1While I×I<1000 S←S+I×II←I+1End whilePrint SEnd体验探究一、探究发现算法的相通性问题:有三个整数a ,b ,c ,由键盘输入,要求最后输出其中最大的数.试写出它的算法的相应的伪代码.师:请同学们分析一下该问题的思考过程.生1:此题实质上是求三个数的最大值,输出最大值的问题,必须判断谁最大,才能确定输出那一个值,因此要设计该问题的算法,必须通过选择结构来实现,相应的伪代码应用条件语句来书写.伪代码如图5-3-3所示. 师:以上的方法无疑是正确的.但这里的算法可以改进.为此,引入逻辑联结词“and 〞,它的意思为同时,于是上述伪代码可改进为如图5-3-4(1)所示.师:该题的算法具有通用性与灵活性,稍微改动即可得到输出a 、b 、c 中最小数的算法;也可以加进几个数,从更多的数中求出最大者或最小者. 请一位同学设计一个求三数中最小的数的算法.生2:写出了如图5-3-5(1)的伪代码.师:生2的答案是完全正确的.请那一位同学再来写出求五个数中的最大数的算法. 生3:写出了如图5-3-6(1)的伪代码.师:生3的答案也是正确的. 事实上,在数学上,甚至在各行各业中,求几个数的最大数与最小数的问题是经常会遇到的.例如,几个评委为某一位选手打分,规那么往往是去掉一个最高分,去掉一个最低Read a ,b ,c If a >b then If a >c then Print a Else Print cEnd if Else If b >c then Print b ElsePrint c End if End ifEnd Read a ,b ,c If a >b and a >c then Print a Else If b >c thenPrint b Else Print c End if End if End 图5-3-4(1) Read a ,b ,cIf a <b and a <c thenPrint a ElseIf b <c then Print b ElsePrint c End ifEnd if End图5-3-5(1)Read a ,b ,c ,d ,eIf a >b ,a >c ,a >d ,a >e thenPrint a Else If b >c ,b >d ,b >e thenPrint bElse If c >d ,c >e then Print c Else If d >e thenPrint d Else Print eEnd if End ifEnd if End if End分,然后余下的评委的分数求平均分.为此,有人已经在计算机中预先编好了求最大值与最小值的程序,使用时只需直接调用这个程序〔函数〕就可以了.例如,Max(1,4,-7.3,π) = 4,Min(1,4,-7.3,π) = -7.3.此时上述伪代码可分别改进如下:师:事实上,已编译好的可直接调用的函数还有很多,有兴趣的读者可自己参看有关的课外书籍.二、智慧列车从伪代码可以看出,伪代码表达了用随机函数生成一个随机数,如果生成的数大于0.5,那么输出1,否那么输出0.[解答]根据上面的分析,可画出流程图如图5-3-8所示.思考:如何改进上面的算法,使它能够统计经过假设干次试验后,出现1的次数所占的比例是多少?当试验次数无限增加时,这个比例为接近或等于12吗?请你设计程序并上机实验验证之.Read a ,b ,c m ←Max(a ,b ,c ) Print m End图5-3-4(2)〔求三个数中最大的数〕 Read a ,b ,c m ←Min(a ,b ,c ) Print m End图5-3-5(2)〔求三个数中最小的数〕 Read a ,b ,c ,d ,e m ←Max(a ,b ,c ,d ,e ) Print m End图5-3-6(2)〔求五个数中最大的数〕 图5-3-8。
基本算法语句(B )
时间:120分钟;满分:160分)
一、填空题(本大题共14小题,每小题5分,共70分,)
1.用“秦九韶算法”计算多项式27352
3
4
++++x x x x 的值,是将这个多项式改写为
2)7)1)35(((++++x x x x ,完成该算法共需做 次乘法和加法.
2.下面的算法的功能是求所输入的两个正数的平方和,已知最后输出的结果为
3.69,试据此将算法补充完整.
3.下面给出的是条件语句编写的伪代码,该伪代码的功能是 .
4.以下伪代码若运行一次的结果是16-,则输入的x 的值为 .
5.根据如图所示的伪代码,当输入a ,b 分别为2,3时,最后输出的m 的值是 .
6.下列程序语言的条件语句中,判断的条件是 .
7.以下伪代码运行的结果为 .
第2题
8.下面的伪代码运行的结果是 .
9.将下面计算20321++++Λ的算法的For 语句补全. 10.下列伪代码的运行结果是 .
11.下面的算法语句中,语句Print J I ⨯执行的次数是 .
12.如果伪代码运行后输出的结果是720,则在横线处应填入的正整数为 . 13.下面的伪代码表示的算法的输出的结果是 .
14.下面为一个求30个数的平均值的算法伪代码,在横线上应填充的语句是 .
Read x If x >0 Then y ←2x Else
y ←1-x
End If Print y 第6题 1←t 2←i While 5≤i
i t t ⨯← 1+←i i End While Print t 第7题 2←I While 1002
<I 1+←I I End While 1-←I I Print I 第8题 第12题 For I From 1 To 3 For J From 5 To 1 Step 1- Print J I ⨯ End For End For 第11题 第10题 第9题 第14题 0←s 0←k For i From 1 To 13 Step 2 i s s +← 1+←k k End For k k s d ⨯-← Print d 第13题
二、解答题(本大题共6小题,共90分,解答应写出文字说明、证明过程或演算步骤...................) 15.(14分)已知32)(2
-+=x x x f ,设计求)3()3(-+f f 的算法,写出伪代码.
16.(14分)阅读并理解以下算法,写出输出的n 的值.
17.(14分)根据如图所示的伪代码,画出算法的流程图.
0←S 1←i While 5≤i ←S i S + 1+←i i End While Print S 第4题 8.0←p 0←n 1←T 0←S While p S < 2/T T ← T S S +← 1+←n n End While Print n 第10题
18.(16分)用循环语句描述求100
1
9914131211-
++-+-
Λ的一个算法.
19.(16分)某商场购物实行优惠措施,若购物金额x 在800元以上(包括800元),打8折;若购物金额x 在500元以上(包括500元),则打9折,否则不打折,设计算法流程图并编写伪代码,要求输入购物金额
20.(16分)数学大师欧拉曾经证明61312112
222π=+++++ΛΛn
,请你设计一个算法,
求出使
001.0)1
31211(6
2222
<++++
-n
Λπ成立的最小正整数n 的值,并写出伪代码.(π
取3.142)
参考答案
一、填空题:
1.8;
2.1.5,2
221x x +;3.⎪⎩
⎪⎨⎧<+=<+-=)0(,1)0(,
0)0(,1x x x x x y 的函数值;4.4-;5.3;6.0>x ;7.120 8.9;9.1To20;10.54;11.15;12.7;13.0;14.30>I .
二、解答题:
15.伪代码如下所示: 16.3=n
17.流程图如右图所示. 18.伪代码如下图所示.
第17题
0←S
1←I 1←a
While 100≤I I a S
S /+← 1+←I I
)1(-⨯←a a End While Print S
第18题
第15题
19.本题的实质是求函数
⎪
⎨⎧<≤≥=)800500(9.0)
800(8.0x x
x x y 的值.流程图和伪代码如图所示为:
20.伪代码如下:
第19题
Read x
If x ≥800 Then y ←0.8x Else
If x ≥500 Then y ←0.9x Else y ←x End If End If Print y
第20题。