2006算法初步教学详解新课标人教版A[上学期]

资源下载
  1. 二一教育资源

2006算法初步教学详解新课标人教版A[上学期]

资源简介


算法初步教学详解
东莞群英学校 梁斌玉
1.1算法与程序框图
1.1.1算法的概念
计算机的问世可谓20世纪最伟大的发明,它把人类社会带进了信息技术的时代,而算法是计算机科学的重要基础,就像使用算盘一样,人们要给计算机编制“口诀”——算法,才能让它工作。要想了解计算机的工作原理,算法的学习是一个开始。
做任何事情都有一定的步骤。例如,你想考大学首先要填报名志愿表,拿到准考证,参加考试,得到录取通知书,到大学报名注册等。这些步骤都是按一定顺序进行的,缺一不可。现实生活中,我们很多事情都是这样一步一步的完成的。 可见算法并不是一个全新的概念,它融入在我们的现实生活中。在我国古代,“算法”取得了辉煌的成就。

烧水泡茶
请看一下烧水泡茶的过程
解:烧水泡茶可分下面4步完成。
Step1:洗好开水壶;
Step2:灌上凉水,放在火上,等待水开;
Step3:洗茶杯,茶杯里放好茶叶;
Step4:水开后再冲水泡茶。
例2.人鬼过河
现在河的岸边有三个人和三个鬼,河上只有一条小船,船上最多能坐两个“人”,在河的任何一边,当鬼的个数比人多时,鬼就会吃掉人。请问如何才能使人和鬼都平安的到达对岸。
解: 要想使人鬼都安全过河,需要下面11步。
Step1: Step2:

Step3: Step4:

Step5: Step6:

Step7: Step8:

Step9: Step10:

Step11:

从事各种工作和活动,都要事先想好工作的步骤,然后按部就班的进行,这样就可以避免产生错误。

定义:我们把用来解决问题的一系列步骤叫做算法(algorithm)。
算法一词源于算术(algorism),即算术方法,是指一个由已知推求未知的运算过程。随着计算机的出现,人们常把这些“步骤”编写为“程序”由计算机来解决。算法必须符合以下条件:
1.算法的每一步要做什么必须是明确的,不能含糊不清,模棱两可;例如,要把全班同学分成两队,“高个子的同学站出来”这个步骤就是不确定的,含糊的,哪些同学算高,哪些同学算矮?个子中等的同学就会不知所措。
2.算法的每一步都应当能有效的执行,并得到确定的结果。例如若是无效的,不能执行的。
3.算法必须在有限步内完成,如果需要无限步完成,就失去了实际意义。算法的有限性往往指“在合理的范围之内”。如果让计算机执行一个历时1000年才结束的算法,虽然是有限的,但超过了合理的限度,人们也不把它视作有效算法。究竟什么算“合理限度”并无严格标准,由人们的常识和需要而定。
例3. 给计算机编写一个算法,输入一个自变量的值,求分段函数的函数值.
解:Step1:输入x的值;
Step2:进行判断,如果,则, 否则。
Step3: 输出y的值。


2.计算y

说明:1.输入x的值就是把自变量x的值由键盘输入计算机,例如要计算x=2时的函数值,就输入2。
2.根据相应的x的值计算相应的函数值,比如输入3,则 ;如果输入-4,则。
3.输出结果就是把计算结果显示在计算机屏幕上。
以上算法可以通过输给计算机一系列“命令”来实现,这些命令叫做计算机语言。
例4.筛选法求质数
质数亦叫作素数,是大于1的自然数,并且除了该数本身和1以外没有其它的数能整除它,如2,3,5,7,11,13,…,质数有无穷多个。
(1)判断143是否为质数。
解:
Step1:143÷2不为整数;
Step2:143÷3不为整数;
Step3:143÷4不为整数;
Step4:143÷5不为整数;
Step5:143÷6不为整数;
Step6:143÷7不为整数;
Step7:143÷8不为整数;
Step8:143÷9不为整数;
Step9:143÷10不为整数;
Step10:143÷11=13,143能被11整除;
Step11:结论:143不是质数。
(2)判断17是否为质数。
解:
Step1:17÷2不为整数;
Step2:17÷3不为整数;
Step3:17÷4不为整数;
Step4:17÷5不为整数;
Step5:17÷6不为整数;
Step6:17÷7不为整数;
Step7:17÷8不为整数;
Step8:17÷9不为整数;
Step9:17÷10不为整数;
Step10:17÷11不为整数;
Step11:17÷12不为整数;
Step12:17÷13不为整数;
Step13:17÷14不为整数;
Step14:17÷15不为整数;
Step15:17÷16不为整数;
Step16:结论:17是质数。

(3)判断216091是不是质数
该题的计算量非常大,我们可以把算法编为程序,由计算机帮我们计算。
(4)设计一个算法,输入大于2的整数n,由计算机判断它是不是质数。
解:Step1:输入整数n;
Step2:依次检验2~(n-1)是不是n的因数,若有这样的数,则n不是质数,否则,n为质数。
Step3:输出结果。
说明:其中第3步在计算机中可以通过一个循环来实现,今后会学到。

[思考] 你能举出跟多算法的例子吗?与一般的解决问题的过程比较,你认为算法最重要的特征是什么?
______________________________________________________________________________________________________________________
[练习]:
1.任意给定一个正数,设计一个算法,求以这个数为半径的圆的面积。
2.设计一个算法,求的值。
3.牛虎过河。
一个人带三只老虎和三头牛过河。只有一条船,可以容一个人和两只动物。没有人在的时候,如果老虎的数量不少于牛的数量就会吃掉牛。设计安全渡河的算法。
4.任意给定一个大于1 的正整数n,设计一个算法,求出n的所有因数。
1.1算法与程序框图
1.2.2程序框图

算法可以用自然语言来表示,但为了使算法的步骤表达得更为直观,我们更经常地用图形方式来表达,这就是程序框图。 程序有三种基本逻辑结构——顺序结构、选择结构和循环结构。复杂的程序都是由这三种结构组成。
一、顺序结构

例5.请叙述一下烧水泡茶的过程
解:该算法用自然语言表述为
Step1:洗好开水壶;
Step2:灌上凉水,放在火上,等待水开;
Step3:洗茶杯,茶杯里放好茶叶;
Step4:水开后再冲水泡茶。
可以用程序框图表示为:


例6. 已知一个三角形的三边长分别是,它的面积可用海伦—秦九韶公式计算。,其中。为计算机设计一个算法,输入三角形的三条边长,输出三角形的面积S。
解:程序框图为


程序框图符号和它们所表示的功能:
图形符号
名称
功能
起止框(终端框)
表示一个算法的起始和结束
输入输出框
表示一个算法输入和输出的信息

处理框(执行框)
赋值、计算
流程线
连接程序框
顺序结构由若干个依次执行的处理步骤组成。这是任何一个算法都离不开的基本结构。
二、选择结构
例7.给计算机编写一个算法,输入一个自变量的值,求分段函数的函数值
解:该算法用自然语言表述为
Step1:输入x的值;
Step2:进行判断,如果,则, 否则。
Step3: 输出结果。
可以用程序框图表示为:
 
其中被虚线框起来的是选择结构 选择结构的一般形式

[探究] 当x取7,0,-5时,程序分别沿着哪条路线运行?请画出来。
______________________________________________________________________________________________________________________
选择结构由一个判断框和两个分支组成。当条件框内的条件成立时,程序沿着分支1进行;否则程序沿分支2进行。
图形符号
名称
功能

判断框
判断某一条件是否成立,它有两个出口:“是”或“否”。条件成立时,程序沿着“是”这个分支走下去;当条件不成立时,程序沿着“否”这个分支进行。

流程线
连接程序框
连接点
当一个程序框图很大,一页纸写不下时,用来连接程序框图的两部分。一般在连接处标上相同的数字序号。

例8.判断一元二次函数是否有根。
分析:,当时,方程有实根;当时,方程无实根。
解:程序框图表示为

[思考]
(1)比较例7和例8,说出何时使用平行四边形,何时使用直角矩形?
___________________________________________________________
(2)例8中为什么只有这一个判断框,而没有时的判断框?
___________________________________________________________
选择结构的嵌套
例9.函数,编写一个算法,输入x的值,输出y的值
解: 此框图是嵌套选择结构,外层选择结构的“Yes”分支很简单,“No”分支中又包含了一个条件结构。

[探究] 当x取2,0,-2时,程序分别沿着哪条路线运行?请画出来。
______________________________________________________________________________________________________________________
三、循环结构
(1)当型循环结构(WHILE型)
例10.智力竞赛的中,主持人提问,选手回答,若回答正确,加10分,如果错误,不加分,然后主持人继续提问,选手继续回答,如此循环下去,直到提问结束。用程序框图来描述这一情况。
解:由于过程中出现了循环,需要用循环结构果来表示。
 循环结构的一般形式
虚线框起来的不分是循环结构,它由一个判断框和循环体组成。
[探究]
(1)何时循环进行,何时循环结束?
__________________________________________________________________________________________________________________________
(2)“分数=分数+ 10分”的含义是:“后来的分数=原分数+10分”。假设前三个问题选手都回答正确,请在下表中填入相应的数字。

(3)如果用变量s表示分数,上述表达式该如何表示?
_________________________________________________________

例11. 写出求1+2+3+4+5+6的一个算法。
解: Step1:计算1+2得到3;
Step2:将第一步中的运算结果3与3相加得到6;
Step3:将第二步中的运算结果6与4相加得到10;
Step4:将第三步中的运算结果10与5相加得到15;
Step5:将第四步中的运算结果15与6相加得到21。

例12.设计一个计算的算法
解:如果按例11的方法,步骤很多。
我们可以设想有一个空箱子S,第1次放入1个球,第2次放入2个球……第100次放入100个球。这样重复100次后,箱子里的总球数就是个。每放一次球我们可以看作一次循环,总共循环了100次。

该算法用程序框图可表示为:


说明:
(1)程序按箭头所指方向进行, 在判断框处 ,如果,则按yes所指方向进行循环,否则按No所指方向进行。
(2)i叫做计数变量,用于记录循环次数,同时它的取值还可以用来判断循环是否中止。循环第一圈时i的值为1,第二圈时i的值为2……第100圈时,i的值为100。这种变化是通过语句i=i+1来实现的。其含义是
“后来的i值=原i值+1”
每循环一圈,i=i+1被执行一遍,i的值就增加了1。
(3)S叫做累加变量,用于记录累加结果。
循环第1圈在S上加1;
循环第2圈在S上加2;
循环第3圈在S上加3;
…………
循环第i圈在S上加i;
…………
循环第100圈在S上加100;
“循环第i圈在S上加i”用语句S=S+i表示,把这时i的值加到S上。当循环到100圈时,S的值就是的和。
为了真正理解该程序,请在下表中填入相应的数字。
累加变量 计数变量

[思考] 计数变量和累加变量的作用。
______________________________________________________________________________________________________________________
例13.设计一个计算的算法,并模仿例12进行分析。
分析:先考虑清楚下面两个问题。
从2到100的偶数共有多少个?______
两个相邻偶数的间隔是多少?_______
解:程序框图为:

请在下表中填入相应的数字。
累加变量 计数变量

(2)直到型循环结构(UNTIL型)
例.14 饿汉吃饼
下面是描述描述一个饿汉吃饼的情况,如果饥饿的话就吃一张饼,直到吃饱为止。分别用当型和直到型两种循环结构进行描述。
当型 直到型

[探究] 找出当型和直到型的区别
(1) 当 型:先判断条件,再执行循环体;
直到型:______________________________。
(2) 当型和直到型的条件_________。
(3) 当 型:满足条件时执行循环体;
直到型:____________________________。
直到型循环结构(UNTIL型)的一般形式:

当型型循环结构在执行循环体之前,对循环条件进行判断,当条件满足时执行循环体,不满足则停止循环,执行循环结构后面的步骤。
直到型循环结构在执行了一次循环体之后,对循环条件进行判断,当条件不满足时执行循环体,满足则停止循环,执行循环结构后面的步骤。
总之:当型循环结构的特点是“当满足条件时就循环”;
直到型循环结高的特点是“直到满足条件时退出”。

[练习]
设计一个求任意数的绝对值得算法,并划出程序框图。
任意给定3个正实数,设计一个算法,判断分别以这3个数为边长的三角形是否存在。画出这个算法的程序框图。
某居民区的物业部门每月向居民收取卫生费,计费方法是:3人和三人以下的住户,每人收取5元;超过3人的住户,每超出一人,加收1.2元。写出一人数x为自变量,以卫生费y为函数值的分段函数。设计一个算法,根据输入的人数,计算应收取的卫生费,画出程序框图。
设计一个求解一元二次方程的算法,画出程序框图。
设计一个计算的算法,画出程序框图。
设计一个算法,求的值.,画出程序框图。
1.2基本算法语句
计算机完成任何一项任务都需要算法。但是,我们用自然语言或程序框图描述的算法,计算机是无法“理解”的。因此还需要把算法翻译成计算机能理解的“计算机程序设计语言”(Progamming Language),编制成计算机程序。
我们前面学过,算法有三种基本结构:顺序结构、条件结构和循环结构。为了实现算法中三种基本的逻辑结构,各种程序设计语言都包括下列算法语句:输入语句、输出语句、赋值语句、条件语句和循环语句。
程序设计语言有很多种,如BASIC,Foxbase,C语言,C++,J++,VB等。它们的基本原理是相同的。本章中,我们学习的程序设计语言是“QuickBASIC”语言,它是一种类BASIC语言。BASIC是Beginner Allpurpose Symbolic Instruction Code(初学者通用符号指令代码)的英文缩写,与1964年由美国的两位教授设计,具有简单、易学的特点。
1.2.1输入语句、输出语句和赋值语句
输入语句、输出语句、和赋值语句基本上对应于算法中的顺序结构。计算机从上而下按照语句排列的顺序执行这些语句。
一、输入语句
例15.编制一个程序,在电脑屏幕上显示“Hello,evryone!”。
解:运行QuickBASIC软件,在编辑窗口内输入下面程序。


编辑程序 运行结果
其中的PRINT是一个命令,它的作用是输出它后面引号中的内容。运行该程序,会在电脑屏幕上显示:Hello,everyone!
例16. 设变量x=123,编制一个程序,在屏幕上显示出x的值。
解:“运行QuickBASIC软件,在编辑窗口内输入下面程序。


编辑程序 运行结果
[思考] PRINT语句后的输出内容中,加引号和不加引号的区别? __________________________________________________________________________________________________________________________________
上面几个例子中“PRINT”语句就是输出语句,对应于程序框图中的输出语句。其一般格式为:
注意,提示内容和变量之间用分号“:”隔开;如果要输出多个变量,用逗号隔开,例如 PRINT “ a,b,c=”; a,b,c
想一想下面语句会输出什么结果?


编辑程序 运行结果
例17.当x=123时求函数的值。
解:“运行QuickBASIC软件,在编辑窗口内输入下面程序。


编辑程序 运行结果
程序中的运算符,和我们平常用的有所不同,具体如下:
数学运算




程序符号
+
-
*
/
x^n
sqr(a)
abs(a)
二、输出语句
例18.编写一个程序,输入x的值求函数的值。
解:“运行QuickBASIC软件,在编辑窗口内输入下面程序。
编辑程序
这个程序中,第一行的INPUT语句就是输出语句,其后的x是一个变量。该语句的作用是从键盘输入x的值。例如要计算x=100时的函数值,就输入100。
输出语句对应于程序框图中的输出框,其一般格式为:

输出语句可以在计算机屏幕上输出常量、变量和提示信息。
运行程序后会出现如下提示窗口:
运行后程序提示输入x的值
输入x的值111后程序自动计算出y=1401960
三、赋值语句
赋值语句前面已经见过,请再在看一下例3 :
x=123
y=x^3+3*x^2-24*x+30
PRINT “y=” ; y
END.
第一行和第二行叫做赋值语句,顾名思义,赋值语句就是将表达式所带表的值赋给变量。
赋值语句中的“=”叫做赋值号,它和数学中的等号不完全一样。计算机执行赋值语句时,先计算“=”右边的表达式式的值,然后把这个值赋给左边的变量。
例如第一行中,就把左边的123赋给右边的变量x(即让x等于123);第二行,先计算出左边的表达式的值为1401960,然后把1401960赋给变量y。
赋值语句的一般格式为:

可以把变量看作一个存放数据的盒子,而且是最多只能存放一个数据的盒子。当一个新数据放进去时,原来的数就被“挤”了出去。
请说出下面程序输出的结果
a=10
a=a+20
PRINT “a=”;a
END
第一行:把等号右边的数值10赋给左边的变量a;
aa a:
第二行:先计算等号右边a+20的值10+20=30,然后把数据30存入变量a,a中原来的10被冲掉。
1 a:
输出结果:a =30
例19.编写程序,计算一个学生数学、语文、英语三门课的平均成绩。
解:程序为:
INPUT “Maths=”;a
INPUT “ Chines=”;b
INPUT “ English=”;c
x=(a+b+c)/3
PRINT “ The average is”;x
END
[探究] 请把下面的程序框图翻译为程序,并说出那些框图对应输出语句,那些框图对应输入语句,那些框图对应赋值语句。

例20.已知,,交换的值。
分析:请看下面的程序
a=2
b=5
a=b
b=a
PRINT a,b
END
把上述程序输入QuikeBASIC,运行,得到结果:5 ,5
没有达到我们的目的,为什么会这样呢?请分析程序每行中a、b的值,并填写下表。
a b
第1行:
第2行:
第3行:
第4行:
第5行:
第一行:a的值为2;
第二行:b的值为5;
第三行: 把b的值赋给a,这时b的值为5,所以a=5;
(注意:这时a中原来存储的数值2 已经被冲掉了。)
第四行:把a的值赋给b,而这时a的值为5,所以b的值还是5;
第五行:因为a,b的值均为5,所以输出结果为5 5。

解:(空桶法)交换装满水的两个水桶里的水需要再找一个空桶,交换两个变量正确的方法是设置一个中间变量t。
a=2
b=5
t=a
a=b
b=t
PRINT a,b
END

请分析一下每行中a、b、t的值,并填表。
a b t
第1行:
第2行:
第3行:
第4行:
第5行:
第6行:
第三行t=a的作用:把a的值2保存在变量x中,这样当执行a=b时,a中的值仍可以在t中找到。
[练习]
已知华氏温度和摄氏温度的转化公式为:

编写一个程序,输入一个华氏温度,输出其相应的摄氏温度。
编写一个程序,输入两个非零实数,输出他们加、减、乘、除的结果。
已知一个三角形的三边长分别是,它的面积可用海伦—秦九韶公式计算。
,其中
设计一个算法,输入三角形的三条边长,输出三角形的面积S。写出程序框图和相应的程序。
春节到了,糖果店的售货员忙极了。已知水果糖每千克10.4元,奶糖每千克15.6元,果仁巧克力每千克25.2元,那么依次购买这三种果糖千克,应收取多少钱?请你设计一个程序,帮售货员算账。
编写一个程序,输入梯形的上底、下底和高的值,计算并输出其面积。
编写一个程序,交换两个变量a 、b的值,并输出交换前后的值。
1.2.2条件语句
算法中的条件结构由条件语句来表达。
一、基本条件语句
(1)两个分支的条件结构
例21. 给计算机编写一个程序,输入一个自变量的值,输出分段函数的函数值.
解: 程序框图 QuickBASIC程序语句


QuickBASIC语言中的符号。
数学运算
等于
不等于
大于
小于
大于等于
小于等于
程序符号
=
<>
>
<
>=
<=
[探究] 比较程序框图和QuickBASIC程序语句,回答下列问题。
(1)条件结构和那一段语句对应?条件语句以什么开始,以什么结尾?
__________________________________________________________________________________________________________________________________
(2)判断框中的“条件”在条件语句中处于什么位置?
__________________________________________________________________________________________________________________________________
(3)“Yes”分支中的步骤在条件语句中处于什么位置?
__________________________________________________________________________________________________________________________________
(4)“No”分支中的步骤在条件语句中处于什么位置?
__________________________________________________________________________________________________________________________________
(5)当x=5的时候,计算机会执行哪些语句?
__________________________________________________________________________________________________________________________________
(6)当x=-5的时候,计算机会执行哪些语句?
__________________________________________________________________________________________________________________________________
条件语句的一般形式

条件结构框图 条件语句
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件成立,就执行THEN之后的语句体,否则执行ELSE之后的语句体。
(2)一个分支的条件结构

当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件成立,就执行THEN之后的语句体,否则条件语句结束,执行END IF之后的语句
二、条件结构的嵌套
例22.函数,编写一个程序,输入x的值,输出y的值
解:用程序框图表示为

用QuickBASIC 语言可写为

INPUT “x =” ; x
IF x>0 THEN
y = 1
ELSE
IF x=0 THEN
y = 0
ELSE
y = -1
END IF
END IF

PRINT “ y=”; y
END
该程序中有两个IF语句,大IF语句中嵌套了一个小IF语句。
[思考] 请将程序框图和相应的语句对应起来。
_________________________________________________________________________________________________________________________________
例23 编写一个程序,求一元二次方程的根.
分析:,
当时方程有两个不相等的实根;
当时,方程有两个相等的实根;
当时,方程没有实根。
解:程序框图为

由程序框图写出QuickBASIC 程序
INPUT a,b,c
D=b^2-4*a*c
IF D>=0 THEN
IF D>0 THEN
x1=(-b+sqr(D))/2*a
x1=(-b-sqr(D))/2*a
PRINT “x1=”;x1,”x2=”;x2
ELSE
x=-b/2*a
PRINT “x=”;x
END IF
ELSE
PRINT “No root.”
END IF
END
[思考]比较程序框图和程序语句,回答下列问题。
(1)在程序框图中找出外层条件结构和内层条件结构。
__________________________________________________________________________________________________________________________________
(2)在程序语句中找出外层条件语句和内层条件语句。
__________________________________________________________________________________________________________________________________
(3)找出程序框图和程序语句的对应关系。
__________________________________________________________________________________________________________________________________
(4)试给a,b,c取不同的值,使程序沿着三条不同的路线由开始走到结束。
__________________________________________________________________________________________________________________________________
例24. 排序
编写一个程序,使得任意输入的3个整数按从大到小的顺序输出。
算法分析:
我们用a,b,c表示输入的三个整数,比较三个整数,把最大的整数存入变量a中,次大的整数存入b中,最小的整数存入c中。
Step1:输入三个整数a,b,c;
Step2:将a与b比较,如果aStep3:将a与c比较,如果a (第2步和第3步后,a中存储的已经是最大的整数)
Step4:将b与c比较,如果b (第4步后,b中存储的是次大的整数,c中存储的是最小的整数)
Step5:按顺序输出a,b,c。
注意:交换两个变量的值要用例20的“空桶法”。
解:程序框图为

根据程序框图,写出计算机程序为:

INPUT “a,b,c=”;a,b,c

IF b>a THEN
t=a
a=b
b=t
END IF

IF c>a THEN
t=a
a=c
c=t
END IF
IF c>b THEN
t=b
b=c
c=t
END IF
PRINT a,b,c
END
[探究]
(1)假设输入的数据是4,6,5,在右面填入相应的数字。
_________________________________________________________________
(2) 程序运行到第5行可以达到的目的是:
__________________________________________________________________________________________________________________________________
(3) 程序运行到第10行可以达到的目的是:
__________________________________________________________________________________________________________________________________
(4) 程序运行到第15行可以达到的目的是:
__________________________________________________________________________________________________________________________________
[练习]
1.读程序,说出该程序的功能。
INPUT “Please input an inter:”;x
IF 9 a=x10
b=x MOD 10
PRINT a,b
END IF
END
QuickBASIC语言中的符号。
数学运算


的商
的余数
程序符号
AND
OR
a MOD b
注:(1)在程序中用“AND”表示“且”,用“OR”表示“或”。
(2)用“a/b”表示,而商用“ab”表示。例如3410=3,578=7。
(3)的余数用“a MOD b”表示,例如34 MOD 10=4,57 MOD 8=1。
2.编写程序,判断一个整数是偶数还是奇数,即从键盘上输入一个整数,输出该数的奇偶性。
3.闰年是指年份能被4整除但不能被100整除,或者能被400整除的年份。编写一个程序,判断输入的年份是否为闰年。
4.编写一个程序,输入两个整数a,b,判断a是否能否被b整除。
5.已知函数编写一个程序,输入自变量x的值,输出相应的函数值。
1.2.3循环语句
算法中的循环结构是由循环语句来实现的。
一、当型循环语句
程序语言中,当型循环结构由当型循环语句(While)表示。
例25设计一个计算的算法并写出相应的程序。
解: 程序框图 程序语言

[探究] 比较程序框图和程序语句,回答下列问题。
(1)循环结构和那一段语句对应?当型循环语句以什么开始,以什么结尾?
__________________________________________________________________________________________________________________________________
(2)判断框中的“循环条件”在循环语句中处于什么位置?
__________________________________________________________________________________________________________________________________
(3)循环结构中的“循环体”在当型循环语句中处于什么位置?
__________________________________________________________________________________________________________________________________
(4)请说出程序中每一条语句被执行了多少次。
__________________________________________________________________________________________________________________________________
_________________________________________________________________
循环结构的一般形式为:

循环结构框图 循环语句
当计算机遇到WHILE语句时,先判断条件是否成立,如果符合条件,就执行WHILE和WEND之间的循环体;然后再检查条件,如果仍然符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时计算机将不执行循环体,直接跳到WEND之后,执行WEND之后的语句。
例26下面是一个计算的算法。请填写程序框图和相应的程序。
解:程序框图 程序语句

例27下面是一个计算的算法。请填写程序框图并写出相应的程序。
解:

[思考] 综合例25、例26、例27思考计数变量和累加变量如何配合从而达到目的的?
___________________________________________________________________________________________________________________________________________________________________________________________________
二、直到型循环结构
程序语言中,直到型循环结构由直到型循环语句(Until)表示。
例28设计一个计算的算法并写出相应的程序。
解: 程序框图 程序语言

注:英文LOOP是循环的意思。
[探究] 比较程序框图和程序语句,回答下列问题。
(1)直到型循环结构和那一段语句对应?循环语句以何开始,以何结尾?
__________________________________________________________________________________________________________________________________
(2)判断框中的“循环条件”在直到型循环语句中处于什么位置?
_________________________________________________________________
(3)循环结构中的“循环体”在直到型循环语句中处于什么位置?
_________________________________________________________________
循环结构的一般形式为:

直到型循环结构框图 UNTIL循环语句
[思考]参照直到型循环结构,说说计算机是按怎样的顺序执UNTI语句的?
__________________________________________________________________________________________________________________________________
例29.编写一个程序,输入大于2的整数n,由计算机判断它是不是质(Prime Number)。
解:根据例3的算法,程序框图为

[思考]
(1)哪一部分为循环结构,哪一部分为条件结构?
__________________________________________________________________________________________________________________________________
(2)怎么判断n能够被i整除?
_________________________________________________________________
(3)根据例3的算法,什么时候循环结束?
_________________________________________________________________
(4)循环结束后,意味着什么?意味着什么?
_________________________________________________________________
由程序框图写出程序:
INPUT “n=”;n
i=2

DO
r= n MOD i
i=i+1
LOOP UNTIL i >= n AND r =0
IF r=0 THEN
PRINT “n is not a prime mumber.”
ELSE
PRINT “n is a prime mumber.”
END IF
END
[探究]
(1)如果n= 35,请填写下表

(2)请说出程序中每一条语句被执行了多少次。
__________________________________________________________________________________________________________________________________
_________________________________________________________________
(3)输出结果为:___________________________。
(4)如果n=11,请用上述方法进行分析。
[练习]
编写程序,输入正整数n,计算它的阶乘。
编写程序,计算下面n个数的和:。
某牛奶厂2002年初有资金1000万元,由于引进了先进的设备,资金年平均增长率可达到50%。请你设计一个程序,计算这家牛奶厂2008年底的资金总额。
(待续)
这是第四稿,非常感谢大家的鼓励,能够得到大家的认可,我感到非常欣慰。还望大家多提宝贵意见。
本文既适合学生阅读,也可用来代替教材,进行教学,我就是这样做的。教完后的感受是,对学生来说算法初步并不难,比三角函数等要简单,只是教师感到很陌生罢了。
有出版社愿意出版本书,但要包销5000本,我觉得数量太多,还在犹豫。这本书包含了我大量的心血,当然很想出版。如果哪位老师能帮忙,请和我联系,您能帮我销售100本左右就可以了。只要能保证不亏很多,我就出版。
梁斌玉 waterwoodl@163.com QQ25804226 手机:13925528030

展开更多......

收起↑

资源预览