高中算法与程 序设计 教学建议 ---循环结构部分 高中算法与程 序设计 教学建议 ---循环结构部分 算法教学研究组 2009年2月
主要知识点 基本概念 循环结构算法的设计 循环语句 选用例题分析
(一)、基本概念 1、定义 2、组成 3、特点 4、基本模式 5、流程图规范画法 直到型循环 当型循环 :有返回的流程线;一入一出 :当型循环(重点),直到型循环 5、流程图规范画法 循环条件 循环体 当型循环 直到型循环
(二)循环结构算法的设计 (三)程序设计语句 1、计数法: 2、标志法: 循环变量 循环变量三要素:循环变量的初值,终值,递增量。 用一个特殊的数据作为循环条件。 用一个或几个变量满足的规定,作为循环条件。 (三)程序设计语句 DO WHILE <循环条件> 循环体 LOOP 循环条件 DO WHILE LOOP
当型循环 直到型循环 【例1】过马路问题 规范循环结构流程图的画法。 尝试先画循环体和循环条件,再添流程线的画法。 不宜提循环三要素。
通过提问或练习,发现循环变量三要素 ,体会三要素在计数循环中的作用 【例2】输出由30个“=”组成的一行分割线。 介绍计数法设计循环结构算法的方法。 分析结束,引入循环变量的概念 i=0 阅读流程图,体会循环变量 通过提问或练习,发现循环变量三要素 ,体会三要素在计数循环中的作用 i<30 5 推荐学生使用:当循环变量i=1,i<=n,i=i+1位于循环体最后时,循环体执行n次。 推荐学生使用:当循环变量i=1,i<=n,i=i+1位于循环体最后时,循环体执行n次。
【例2】输出由30个“=”组成的一行分割线。 循环语句 i=1 Do while i<=30 For i=初值 To 终值 Print “=” i=i+1 loop For i=初值 To 终值 循环体 Next i
累加器的理解是一难点,要用变量跟踪表阅读流程,体会等号两边s的含义是不同的,一个是原先的和,一个刷新以后的和。 巩固计数法,引入累加的思想。 累加器的理解是一难点,要用变量跟踪表阅读流程,体会等号两边s的含义是不同的,一个是原先的和,一个刷新以后的和。 分析累加器的特点:赋值号左右变量相同,但含义不同,累加器初值为0 输入x 求和 s=+x s=s+x
【例4】计算s=1+2+3+4+5的值。 用累加的方法,解决有规律数据的求和问题。 从例3入手,启发学生思考:如何让计算机自动产生数据?
案例1:学生误认为后一个数据比前一个数据大1,所以用s=s+1 F F 案例1:学生误认为后一个数据比前一个数据大1,所以用s=s+1 案例2:提醒同学累加器赋初值0。 案例3:用x=x+1自动产生求和数据。应指出:一要尽量利用已有变量,二要养成给新变量赋初值的习惯。 案例4:颠倒了i=i+1和s=s+i的次序,求的是s=2+3+4+5+6。
【练习2】求s=1+2+3+……+n的值,其中n由键盘输入。 不能直接将练习2作为例题,学生要有一个从特殊到一般的认识过程。
【例5】求s=1×2×3×……×n的值,其中n由键盘输入。 把累加求和的思想推广到数据累乘求积。 提醒同学累乘器初值为1。
案例1:此图错误。将定值n误认为循环变量。 案例2:此图正确。通常采用检测边界值的方法来验证流程图。 案例3:此图错误。学生往往认为可以从2开始累乘,检测累乘数据的边界值后发现累乘的第一个数据是正确的,但最后一个数据为n+1。
数据=2*i-1 s=s*(2*i-1) 【练习3】求s=2+4+6+……+2n的值,其中n为自然数,由键盘输入。 用计数循环解决有规律数据的求和、求积问题 帮助学生归纳解决有规律数据求和、求积问题的方法:先考虑数据个数(即循环次数),后分析数据与循环变量的关系。 例如【练习4】:若i=1 i<=n i=i+1 1 2 3 . n 5 2n-1 循环变量i 数据 _______________ 数据=2*i-1 s=s*(2*i-1)
【例6】求满足1+2+3+4+…+n>20最小的n值。 引入标志法控制循环的方法。 先画循环体部分,再考虑循环条件 要注意当型循环的规范画法 帮助学生理解满足条件的最小n=i-1。
*【练习5】求满足1+2+3+4+…+n<20最大的n值。
【例7】输入若干数x,当输入为999时结束,求输入数据的和s。 输入一个特定的数据作为循环条件的标志法。 可以先设计循环体,得出循环条件为x≠999 读图,发现问题,解决问题。 要给一个处理此类问题一般方法 输入x s=s+x
【例8】输入某次考试成绩mark,统计100分人数good。(输入-1表示结束) 一是巩固标志法,二是在循环体中出现分支结构,为枚举算法作准备 。 要掌握处理特定数字作为结束标志的一般做法 让学生了解循环体可以是顺序的、分支的、循环的,若循环体本身是循环结构就是嵌套循环。
【练习6】求S=1/2+1/4+…+1/2n的值, 其中n由键盘输入。 【练习7】求s=1×2+2×3+3×4+4×5+…+n×(n+1)的值,其中n由键盘输入。 【练习8】用循环结构解决求s=a*b的值。(a,b为正数,由键盘输入) 【练习9】求s=1-1/2+1/3-1/4+…-1/n的值(n为偶数,由键盘输入) 【练习10】输入n个数,统计正数的个数nz和非正数的个数nfz。(n的值由键盘输入) 【练习11】输入若干个正数,当输入为0时结束,求所有输入数据的平均值average。 【练习12】输入20个数,求其中最大值max和最小值min。
更正 【例3】更改为:键盘输入五个数,求它们的和 s。 【练习1】删去 【练习3】更改为:求s=2+4+6+……+2n的值,
谢 谢 !