高考数学复习点拨 用循环语句设计程序的途径
高考高三数学一轮热点 逐步推演解决算法的循环问题点
高考高三数学一轮热点、难点一网打尽第54讲 逐步推演解决算法的循环问题考纲要求:1.了解算法的含义,了解算法的思想.2.理解程序框图的三种基本逻辑结构:顺序结构、条件结构、循环结构.3.了解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句的含义.基础知识回顾:1、循环语句的格式及框图(1)UNTIL 语句(如图1):(2)WHILE 语句(如图2):(2)WHILE 循环语句,首先要求对条件进行判断,如果条件成立,则执行循环体部分,每次开始执行循环体前,都要判断条件是否成立.这样重复执行,一直到条件不成立时,就跳过循环体部分,结束循环. (3)UNTIL 循环语句,首先执行循环体,再检查条件,当条件不成立时,继续执行循环体,当条件成立时,就跳过循环体部分,结束循环.图 1图2表一(3)WHILE语句与UNTIL语句之间的关系比较,如表一:应用举例:类型一与统计的交汇问题例1.如图是某县参加2021年高考的学生身高条形统计图,从左到右的各条形表示的学生人数依次记为A1,A2,…,A10(如A2表示身高(单位:cm)在[150,155)内的学生人数).图(2)是统计图(1)中身高在一定范围内学生人数的一个程序框图.现要统计身高在160~180 cm(含160 cm,不含180 cm)的学生人数,则在流程图中的判断框内应填写( )A .i <6?B .i <7?C .i <8?D .i <9?类型二 与不等式的交汇问题例2.关于函数f (x )=⎩⎪⎨⎪⎧-x ,1<x ≤4,cos x ,-1≤x ≤1的程序框图如图所示,现输入区间[a ,b ],则输出的区间是________.类型三 与数列求和的交汇问题例3、执行如图所示的程序框图,如果输入n =3,则输出的S =( )A.67B.37C.89D.49类型四 与函数的交汇问题例4、执行如图所示的程序框图,如果输入a =2,b =2,那么输出的a 值为( )A .4B .16C .256D .log 316例5.已知函数f (x )=ax 3+12x 2在x =-1处取得极大值,记g (x )=1()f x .程序框图如图所示,若输出的结果S >2 0112 012,则判断框中可以填入的关于n 的判断条件是( )A.n≤2 011? B.n≤2 012?C.n>2 011? D.n>2 012?例6.执行如图所示的程序框图,输出的S的值为________.例7.执行右边的程序框图,输出的T的值为.类型五推断循环条件例8.某程序框图如图所示,若输出的S=120,则判断框内为( )A.k>4? B.k>5?C.k>6? D.k>7?类型六循环语句的应用例9.阅读下面的程序,则( )(A)输出的结果为1 (B)能执行一次 (C)能执行10次 D)是“死循环”,有语法错误例10.根据如图所示的伪代码,可知输出的结果S为________.S←1I←1While I 8S←S+2I←I+3End WhilePrint S类型七利用循环语句编写程序例11.某班有学生54人,给出一次测试的数学成绩,记60分及以上为及格,要求统计及格人数、及格学生的平均分、全部的平均分,试设计一个程序,并画出程序框图.点评:应用循环语句编写程序时应注意的三个问题1.循环语句中的变量一般需要进行一定的初始化操作.2.在循环体中一定要改变控制条件的变量的值,否则会出现“死循环”,并且循环体每执行一次,控制条件中的变量就应更逼近满足跳出循环体的条件.3.程序编写时应注意跳出循环时对边界数值的检查,防止漏项或多项,可通过几次循环加以验证.方法、规律归纳:1.循环语句嵌套问题的解题思路先确定外层的循环语句,再逐步确定内层的条件,在设置条件时,必须保证内外层的变量不能冲突,以免引起矛盾.同样对应循环语句嵌套循环语句的问题,编写程序时,也要由外到内逐层确定.2.两种循环语句的区别与联系实战演练:1.执行如图所示的程序框图,则输出S的值为( )A.3 B.-6C.10 D.-152.阅读如下程序框图,运行相应的程序,则程序运行后输出的结果为( )A.7 B.9C.10 D.113. 执行如图所示的程序框图,如果输入3n=,则输出的S=( )A.67B.37C.89D.49开始输入n输出S结束1(21)(21)S S i i =+-+1,0i S ==i=i+1?i n >是否4.阅读如图所示的程序框图,运行相应的程序,则输出的结果为( )A .2B . 1C .0D .1-开始1i =0S =是否cos2i S S π=+ 1i i =+5?i >输出S结束5.执行如图所示的程序框图,输出的结果为( )A .()22-,B .()40-,C .()44--,D .()08-,开始x =1,y =1,k =0s =x -y ,t =x +y x =s ,y =tk =k +1k ≥3输出(x ,y )结束是否6.执行如图所示的程序框图,若输入K 的值为8,则判断框图可填入的条件是 ( )A 、s ≤34 B 、s ≤56 C 、s ≤1112 D 、s ≤15247.执行如图所示的程序框图,则输出的结果是________.8.执行右边的程序框图,若输入的a,b的值分别为0和9,则输出的i的值为________.9.设a是一个各位数字都不是0且没有重复数字的三位数,将组成a的3个数字按从小到大排成的三位数记为I(a),按从大到小排成的三位数记为D(a)(例如a=815,则I(a)=158,D(a)=851).阅读如图所示的程序框图,运行相应的程序,任意输入一个a,输出的结果b=______.10.执行如图所示的程序框图,如果输入a=1,b=2,则输出的a的值为________.。
高中数学 1.3 基本算法语句 循环语句教学设计 苏教版必修3(2021年整理)
基本算法语句循环语句引入新课问题:设计计算⨯⨯ 的一个算法.99⨯⨯51⨯731)用当循环语句描述这一算法过程.(2)将上述算法改写为直到型循环.例题剖析抛掷一枚硬币时,既可能出现正面,也可能出现反面,预先作出确定的判断是例1不可能的,但是假如硬币的质量均匀,那么当抛掷次数很多时,出现正面的频率应接近于%50,试设计一个循环语句模拟抛掷硬币的过程,并计算抛掷中出现正面的频率.巩固练习1.用流程图给出计算5+的一个算法,试用循环语句描述这一算法过程.++1+4322.2000年我国人口数约为13亿,如果每年的人口自然增长率为‰15,那么多少年后我国人口数将达到或超过15亿?这个问题可通过循环方式计算完成,即每一次在原有的基础上增加15,直到达到或超过15亿,再记下循环次数.试用循环语句表示这一过程.‰3.1,1,2,3,5,8,13, 这一列数的规律是:第一、第二个数是1,从第三个数起,每个数是其前两个数的和.试用循环语句描述计算这列数中第二十个数的算法.课堂小结理解并掌握循环语句的格式和作用;会写一般的循环语句;能用循环语句进行编程. 课后训练一 基础题1.算法中实现循环结构的语句叫 . 2.“For ”语句的一般形式是: “While ”语句的一般形式是: ; ; ; ; ; .0←i 0S ←While 20≤Si S S +← 1+←i i End while int Pr i End 0←i 0S ←While 20≤S1+←i ii S S +← End while int Pr i End1←Ihile W 8<I2+←I I32+←I S End while int Pr S End(第3题图①) (第3题图②) (第4题图) 3.在上面的两个伪代码中,①的运行结果为 ,②的运行结果为 . 4.根据如图所示的伪代码,可知道输出的结果S 为 . 二 提高题5.输入三个数a ,b ,c ,如果这三个数能作为一个三角形的三边长,那么输出)(21c b a ++,否则提示重新输入,试用算法语句表示上述过程.6.设计一个计算10019914131211++++++ 的算法,并画出流程图,写出伪代码.7.青年歌手大奖赛有10名选手参加,并请了12名评委.为了减少极端分数的影响,通常去掉一个最高分和一个最低分后再求平均分.请用算法语句表示:输入12名评委所打的分数)1221( =,,, i a i ,用函数)(1221a a a Max ,,, 和)(1221a a a Min ,,, 分别求出)1221( =,,, i a i 中的最大值和最小值,最后输出该歌手的成绩.总课题。
高考数学复习点拨 例谈程序框图的应用
例谈程序框图的应用算法是科学计算的重要基础,计算机能有如此广泛而神奇的应用,除了靠芯片之外,主要靠软件,而软件的核心是算法。
计算机科学中的知识创新主要就是算法的创新,框图已经广泛应用于算法、计算机程序设计、工程流程的表述、设计方案的比较等方面,也是表示数学计算与证明过程中主要逻辑步骤的工具,并将成为日常生活和各门学科中进行交流的一种常用表达式.我们将从分析实例人手,让学生学会运用框图表示数学计算与证明的主要思路与步骤,实际问题中的工序流程、数学知识系统的结构关系,使学生在运用框图的过程中理解流程图和结构图的特征,掌握框图的用法、体验用框图知识解决工程问题的优越性。
1.用程序框图表示数学中的结构关系例1.画出用二分法求方程x2-2=0的近似根的程序框图.分析:可以先用自然语言描述算法,再逐步“细化”算法步骤,然后画出相应的程序框图.解答:算法步骤为:第一步令f(x)=x2 -2,误差为ε.因为f(1) <o,f(x)>0,所以设x1=1,x2=2.第二步令m=221xx,判断f(m)是否为0.若是,则m为方程的根;若否,则判断f(x1)·f(m)的符号.第三步若f(x1)·f(m)>0,则令x=m;否则,令x2=m.第四步判断| x1-x2| <ε是否成立?若是,则m为方程的近似根;若否,则返回第二步.用程序框图表示上述算法步骤.“第二步”可以细化为(如图1)“第二步”中包含一个条件结构(如图2):“第三步”也可以用一个条件结构来表示(如图3)“第四步”与“第二步”“第三步”构成了一个循环结构,循环体是“第二步”“第三步”,循环结束的条件是| x1-x2| <ε或者f(m)=0,即(如图4).‘最后,用合适的流程把上面四步的程序框图连起来,再加上终端框,就得到了上述算法的程序框图.2.用框图表示工序流程例2.某“儿童之家”开展亲子活动,计划活动按以下步骤进行:首先,儿童与家长按事先约定的时间来到“儿童之家”.然后,一部分工作人员接待儿童,做活动前的准备;同时,另一部分工作人员接待家长,交流儿童本周的表现.第三步,按照亲子活动方案进行活动.第四步,启导员填写亲子活动总结记录;同时,家长填写亲子活动反馈卡.最后,启导员填写服务跟踪表.你能为“儿童之家”的这项活动设计一个活动流程吗?解析:由于上述活动包含同时进行的两个步骤,所以在画流程图时,需要从同一个基本单元出发,引出两条流程线.按照活动所确定的步骤,可以设计流程图如下图:广州学习美甲 崵叺夻。
高中数学的循环语句教案
高中数学的循环语句教案
教学目标:
1. 了解循环语句的概念和作用;
2. 掌握for循环和while循环的语法结构和使用方法;
3. 能够应用循环语句解决一些数学问题。
教学重点:
1. for循环和while循环的语法结构;
2. 循环语句的应用。
教学难点:
1. 循环语句的理解和运用;
2. 解决实际问题时如何选择合适的循环语句。
教学过程:
一、导入新知识(5分钟)
通过提问和讨论引入循环语句的概念,让学生明白循环语句的作用和重要性。
二、讲解循环语句(15分钟)
1. 介绍for循环和while循环的语法结构;
2. 分别通过实例演示for循环和while循环的使用方法;
3. 强调循环语句的控制条件和循环体。
三、练习与巩固(20分钟)
1. 给学生提供一些简单的练习题,让他们熟悉for循环和while循环的运用;
2. 引导学生在解决实际问题时如何应用循环语句;
3. 带领学生一步步思考和解答题目。
四、拓展与应用(10分钟)
1. 提供一些较难的题目,让学生动手尝试应用循环语句解决;
2. 老师引导学生思考和讨论,分享不同的解题思路;
3. 让学生归纳总结循环语句的特点和使用技巧。
五、作业布置(5分钟)
布置一些练习题目作为课后作业,让学生加深对循环语句的理解和掌握。
教学反思:
通过本节课的教学活动,学生能够掌握for循环和while循环的使用方法,同时能够应用循环语句解决一些数学问题。
在教学过程中,要根据学生的实际情况灵活调整教学方法,引导学生主动思考和探究,提高学生的学习兴趣和动手能力。
高中数学知识点总结:循环语句
高中数学知识点总结:循环语句循环语句循环结构是由循环语句来实现的。
对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE 型)和直到型(UNTIL 型)两种语句结构。
即WHILE 语句和UNTIL 语句。
1、WHILE 语句(1)WHILE 语句的一般格式是(2)当计算机遇到WHILE 语句时,先判断条件的真假,如果条件符合,就执行WHILE 与WEND 之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。
这时,计算机将不执行循环体,直接跳到WEND 语句后,接着执行WEND 之后的语句。
因此,当型循环有时也称为“前测试型”循环。
2、UNTIL 语句(1)UNTIL 语句的一般格式是 对应的程序框图是(2)直到型循环又称为“后测试型”循环,从UNTIL 型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL 语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。
分析:当型循环与直到型循环的区别:(先由学生讨论再归纳) (1) 当型循环先判断后执行,直到型循环先执行后判断;在WHILE 语句中,是当条件满足时执行循环体,在UNTIL 语句中,是当条件不满足时执行循环例题: . 99...531 的一个算法设计计算⨯⨯⨯⨯(见课本21P )Sint Pr End I S S 2 Step 99 T o 3 From I 1For For S ⨯←←Sint Pr hile End I S S 2I I97 I hile 11W W I S ⨯←+←≤←←Sint Pr hile End 2I I I S S 99 I hile 11W W I S +←⨯←≤←←◆ ♦Sint Pr ) 99 I ( 001 I 2I I I S S o11>≥+←⨯←←←或者Until Loop D I S Sint Pr99 I I S S 2I I o11≥⨯←+←←←Until Loop D I S⌧ ⍓Sint Pr 2I I I S S ) 100 I ( 99 I While o 11Loop D I S +←⨯←<≤←←或者 Sint Pr I S S 2I I ) 99 I ( 97 I While o 11Loop D I S ⨯←+←<≤←←或者。
高中数学循环语句教案
高中数学循环语句教案
一、教学目标:
1. 理解循环语句的概念和作用;
2. 掌握while和for循环语句的基本语法和用法;
3. 能够利用循环语句解决实际问题。
二、教学重点:
1. 循环语句的概念和用法;
2. while循环语句的语法和用法;
3. for循环语句的语法和用法;
4. 实际问题的解决方法。
三、教学难点:
1. while循环和for循环的区别;
2. 循环语句在实际问题中的应用。
四、教学步骤:
1. 导入新课:通过一个简单的例子引入循环语句的概念。
2. 讲解while循环语句的基本语法和用法。
3. 示例演练:讲解一些简单的while循环实例,让学生动手实践。
4. 讲解for循环语句的基本语法和用法。
5. 示例演练:讲解一些简单的for循环实例,让学生动手实践。
6. 拓展应用:讲解如何在实际问题中使用循环语句解决难题。
7. 练习与反馈:布置相关练习题,并对学生完成情况进行评价。
五、板书设计:
1. 循环语句的概念和作用;
2. while循环语句的语法和用法;
3. for循环语句的语法和用法;
4. 实际问题的解决方法。
六、教学反思:
本节课主要是讲解高中数学循环语句的概念、语法和应用,通过丰富的例子和练习帮助学生掌握循环语句的基本用法和应用技巧。
在教学过程中,可以结合实际问题让学生进行思考和讨论,增加课堂互动和趣味性,提高学生的学习兴趣和参与度。
同时,教师要根据学生的实际情况调整教学进度和难度,帮助学生更好地理解和掌握循环语句的相关知识。
高中数学循环教学的教案
高中数学循环教学的教案
学科:数学
年级:高中
一、教学目标
1.了解什么是循环及其在数学中的应用;
2.掌握循环结构的基本语法和使用方法;
3.能够运用循环解决数学问题。
二、教学重点
1.什么是循环?
2.循环结构的语法和使用方法;
3.循环在数学问题中的应用。
三、教学准备
1.投影仪、计算机及相关教学软件;
2.教学用书及参考资料;
3.各类数学题目,以供学生练习;
4.课堂练习题及答案。
四、教学流程
1.导入(5分钟)
介绍循环结构在日常生活中的应用,引出数学中的循环概念。
2.概念讲解(10分钟)
解释什么是循环,介绍循环结构的基本语法和使用方法。
3.示范操作(15分钟)
通过几个具体例子演示如何使用循环结构解决数学问题,让学生亲自操作。
4.练习与讨论(20分钟)
让学生自行练习并解决一些与循环相关的数学题目,鼓励他们在小组内讨论解题思路。
5.总结与拓展(10分钟)
总结今天所学内容,鼓励学生在其他数学问题中尝试运用循环结构,拓展应用领域。
六、作业
1.完成课堂练习题;
2.设计并解决一个涉及循环结构的数学问题。
七、课后反思
回顾今天的教学过程,分析学生的表现及反馈,为下节课的教学做好准备。
高考数学复习点拨 “循环(结构)语句”学习要点指津
高考数学复习点拨 “循环(结构)语句”学习要点指津一 知识点1. WHILE 语句WHILE 语句的一般格式是 对应的程序框图是说明:计算机执行此程序时,遇到WHILE 语句,先判断条件是否成立,如果成立,则执行WHILE 和WEND 之间的循环体,然后再判断上述条件,再执行循环体,这个过程反复执行,直到某一次不符合条件为止,这时不再执行循环体,将跳到WEND 语句后,执行WEND 后面的语句。
2、UNTIL 语句UNTIL 语句的一般格式是 对应的程序框图是说明:计算机执行UNTIL 语句时,先执行DO 和LOOP UNTIL 之间的循环体,然后判断条件是否成立,如果不成立,执行循环体。
这个过程反复执行,直到某一次符合条件为止,这时不再执行循环体,跳出循环体执行LOOP UNTIL 后面的语句。
3、当型循环与直到型循环的区别(1)当型循环先判断后执行,直到型循环先执行后判断; (2)当型循环用WHILE 语句,直到型循环用UNTIL 语句; (3)对同一算法来说,当型循环和直到型循环的条件互为反条件。
二 典型例题分析例1. 运用当型和直到型两种循环结构画出求33310021+++ 值的程序框图. 算法分析:欲求33310021+++只需一个累加变量和一个计数变量,将累加变量的初始值设为0,计数变量的值可以从1—100. 程序框图:(当型循环) (直到型循环) 例2.设计一个计算1×3×5×7×…×99的算法,用两种循环语句编写算法程序。
解:算法如下: 程序(WHILE 语句)如下: 第一步:s =1; 第二步:i =3; 第三步:s =s ×i ; 第四步:i =i +2;第五步:如果i ≤99,那么转到第三步; 第六步:输出s ;用UNTIL 语句表示这一程序例3.设计一个求25个数的算术平均数的算法,用两种循环语句编写其程序分析:可用一个循环依次输入25个数,并将它们的和存在一个变量S中,最后用S除以25即可得到这25个数的平均数。
人教版高中数学-循环语句的应用设计
聚焦循环语句的应用设计在应用循环语句编写程序时,两种语句选用哪一种,一是要看算法是哪种循环结构,注意终止条件;二是注意两种形式的循环语句在解决同一问题时条件表达的不同;三是注意计数变量的取值范围,以免出现多一次或少一次循环的错误。
对于同一算法来说,两种循环结构尽管在形式上不同,但本质上是相同的,它们之间是可以相互转化的。
例1 标有八个号码的球中,有一个是最轻的,试设计挑出最轻球的程序。
算法分析:假设第一个球是最轻的,然后与其它个球逐一比较,若有比第一个球更轻的,就交换过来。
程序如下:i=1WHILE i<=8INPUT “输入小球的重量”;a(i)i=i+1WENDi=2m=a(1)j=1WHILE i<=8IF m>a(i) T HE NM=a(i)j=1END IFi=i+1WENDPRINT jEND点评:该程序中利用了两个循环语句,第一个循环语句是用于将这八个号码球的重量输入,第二个循环语句是用来将第一个号码球的重量与其它各球的重量进行比较。
例2 设计程序计算的值。
算法分析:这是一个累乘问题,利用循环结构设计算法。
设置一个累乘变量和一个计数变量,将累乘变量的初始值设为,计数变量初始值设为。
下面分别用语句和语句设计程序。
型程序为:S=1 S=1i=3 i=3WHILE i<=99DOS=S﹡i S=S﹡ii=i+2 i=i+2WEND LOOP UNTIL i>99PRINT S PRINT SEND END点评:在含有循环语句的程序里面,变量的初始值和控制循环的条件是两个关键点,它们直接影响程序输出的结果。
例3 用分期付款的方式购买价格为元的冰箱,如果购买时先付元,以后每月付元,加上欠款的利息,若一个月后付第一个月的分期付款,月利率为,那么购冰箱钱全部付清后,实际共付出款额多少元?试设计程序。
算法分析:购买时付款元,余款元分次分清,设次的付款数为元,则(元),(元),(元)。
所以(元)。
高中数学 1.3 基本算法语句《循环语句》教案 苏教版必修3(2021年整理)
高中数学1.3 基本算法语句《循环语句》教案苏教版必修3编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(高中数学1.3 基本算法语句《循环语句》教案苏教版必修3)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为高中数学1.3 基本算法语句《循环语句》教案苏教版必修3的全部内容。
基本算法语句《循环语句》 重点难点重点:正确理解循环语句的概念,并掌握其结构;会应用循环语句编写程序;并能进行简单的综合应用.难点:理解循环语句的表示方法、结构和用法;会编写程序中的循环语句.【学习导航】 知识网络 循环语句→当型循环语句⎩⎨⎧语句语句for while学习要求1.正确理解循环语句的概念,并掌握其结构;会应用循环语句编写程序;并能进行简单的综合应用.2.理解并掌握循环语句在计算机程序语言中的作用,掌握两种循环语句应用的实例:数列求和、求积。
【课堂互动】自学评价1.问题:设计计算997531⨯⨯⨯⨯⨯ 的一个算法。
【分析】将上述表达式看成49个乘法,用公式表示为:S ←S ×IS 初始为1,I 为1,将每次的乘积都赋予S,I 从1到99,每次增加2,公式S ←S ×I会被重复执行,这种执行过程可用循环结构表示。
算法一:S1 S←1;S2 I←1;S3 I←I+2;S4 S←S×I;S5 如果I小于99,那么转S3;S6 输出S上述算法用流程图表示如下:【说明】算法一是先执行后判断的直到型循环结构,常用“Do"语句表示,我们不再学习.算法二:S1 S←1;S2 I←1;S3 当I不大于99时转S4,否则转S6; S4 S←S×S5 I←I+2;S6 输出S上述算法用流程表示如图所示:【说明】算法二可以理解为:当I〉99时,才循环执行S4和S5两步,这种先判断后执行的循环结构我们称为当型循环,常用“While"语句和“For"语句表示,其中“While语句”可以用如下代码表示:While条件P成立要执行的语句用伪代码表示为:S←1I←1While I≤99S←S×II←I+2End WhilePrint S由此可见,同一个问题可以用不同的循环方式来解决,直到型循环和当型循环的控制条件是不同的,请注意流程图中判断分支的流向条件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用循环语句设计程序的途径
我们知道编写程序的基本方法是“自上而下,逐步求精”,即先把一个复杂的大问题分解为若干相对独立的小问题,然后对每一个小问题编写出一个功能相对独立的程序块,最后再统一组装,这样编写的程序具有结构清晰的特点。
而在程序设计中,我们经常会遇到需要对一条或一组语句重复执行多次,以最终完成某项任务的问题,对这类题处理的一个特点是对不同的运算对象进行若干次相同的运算或处理,这种处理模式在程序设计中是用循环结构来实现的,那么怎样才能用循环语句实现这种程序设计,下面介绍几个常用方法。
一列举法
这种方法就是根据提出的问题,列举所有可能的情况,并用问题提出的条件检验哪些是需要的,哪些是不需要的,对需要的保留,对不需要的剔除。
对于不定方程的求解常用列举法。
例1、在《张丘建算法》中有一个很有影响的不定方程问题,即“百钱买百鸡”,其意思是:一只公鸡价为5钱,一只母鸡价为3钱,三只小鸡价为1钱,要想用100钱买100
只鸡,问公鸡、母鸡、小鸡可各买几只?
分析:(1)先建方程:设x , y, z 分别代表公鸡,母鸡,小鸡数,
x + y +z =100
则
5x+3y+z/3=100
(2)确定变量范围:若100钱全买公鸡最多买20只,所以 x∈[0,20] 且x ∈N。
同理,
y ∈[0,33] 且y∈N,x, y 确定后小鸡的只数z=100-x-y 也确定。
(3)解不定方程,应先固定一个变量的值,然后其他两个变量的值一一列举
如x=0 , y=0 , z=100
y=1, z=99
……
y=33 , z=67
当x=1时,再对y,z的值进行一一列举,直到y,z的值一一列举完,再取x =2,重复进行上述过程。
这时x, y ,z是一组满足“百鸡”的解是否也满足“百钱”还当检验,满足则为解,否则删除。
解:程序如下: x = 0
while x <=20 y=0
框图:
评:本题是解一个不定方程问题,在先确定x 值后,列举出 y,、z 的所有可能情况,重复进行检验x 、y 、z 的值是否满足 5x+3y+z/3=1=100,满足则为解,否则不是。
二 递推法
所谓递推就是在一系列数中,已知第一个数,则其后的每一个数都可利用递推公式有前数推出,并且能重复进行,因此可用循环结构来处理, 例2、:裴波那契数列表示这样一系列数:0 ,1 ,1,2,3,5,8 … 后一项等于前一项的
和,请设计一个算法框图,输出这个数列的前100 项并编写程序 分析:如设 21,,i i i A A A --分别表示该数列中连续的三项,则有12i i i A A A --=+
由这个递推关系可知,只要已知这个数列的前2项,就可重复利用这个递推关系,将后面所有的项递推出来。
因为算法中,反复计算和输出的步骤是一样的,因此可以用循环结构来解决。
解:程序:
1201
A A ==
for 100i <=
then 12i i i A A A --=+ print i A
1i i =+
end
评:本题是先寻找出递推公式,也就是找出循环体,
再确定循环变量的初试值和终止值,由于递推公式
重复运用才能由前项推得后项,因此可用循环语句来处理。
三迭代法
所谓迭代就是一个不断用新值取代变量的旧值或由旧值递推出变量的新值的过程。
例3、计算:
123100
123100
111 1
23100 S
T
W
=++++
=⨯⨯⨯⨯
=++++
分析:其迭代方法如下:首先确定迭代变量的初试值1,其次确定迭代变量公式:S=S+I,
T=T*I,W=W+1
i
,当i分别取2,3,4…,100时,利用迭代公式重复计算,迭代100次后
即可求出100项的和或积,其中i的取值是一个有序数列即i的值由1开始每迭代一次就加1直到100。
解:程序: 框图:
0s =
1,1T W ==
1i =
while 100i <=
then S=S+1
T=T ×i W=W +1i
print S ,T ,W
评:迭代与下列因素有关:迭代变量的初值、迭代公式、迭代次数。
解决这类问题需要先确定迭代变量、迭代公式、迭代次数各是多少,然后再利用迭代公式进行重复迭代。
以上介绍了用循环语句进行程序设计的几种常用的方法,这几种方法与我们前面学过的函数、方程等都有着密切的联系,这要在以后的学习中逐步体会。