必修Ⅲ算法初步全章教案和学案

文档属性

名称 必修Ⅲ算法初步全章教案和学案
格式 rar
文件大小 1.3MB
资源类型 教案
版本资源 人教新课标A版
科目 数学
更新时间 2008-07-26 18:00:00

文档简介

1.3 算法案例(1)
一、教学目标:
(1)理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析;
(2)基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序;
二、教学过程
[问题情境]
在初中,我们已经学过求最大公约数的知识,你能求出18与30的公约数吗?
我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们的最大公约数?比如求8251与6105的最大公约数?这就是我们这一堂课所要探讨的内容.
[算法设计思想]
1.辗转相除法:
例1.求两个正数8251和6105的最大公约数.
(分析:8251与6105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)
解:8251=6105×1+2146
显然8251和的2146最大公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数,所以8251与6105的最大公约数也是6105与2146的最大公约数.
6105=2146×2+1813
2146=1813×1+333
1813=333×5+148
333=148×2+37
148=37×4+0
则37为8251与6105的最大公约数.
以上我们求最大公约数的方法就是辗转相除法.也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的.利用辗转相除法求最大公约数的步骤如下:
第一步:用较大的数除以较小的数得到一个商和一个余数;
第二步:若,则为的最大公约数;若,则用除数除以余数得到一个商和一个余数;
第三步:若,则为的最大公约数;若,则用除数除以余数得到一个商和一个余数;
……
依次计算直至,此时所得到的即为所求的最大公约数.
请依据算法画出程序框图,并设计出程序:
程序框图: 程序:
练习:利用辗转相除法求两数4081与20723的最大公约数
2.更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术.
更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母之数,以少减多,更相减损,求其等也,以等数约之.
翻译出来为:
第一步:任意给出两个正数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.
第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.
例2. 用更相减损术求98与63的最大公约数.
解:由于63不是偶数,把98和63以大数减小数,并辗转相减,
即:98-63=35
63-35=28
35-28=7
28-7=21
21-7=14
14-7=7
所以,98与63的最大公约数是7.
请依据算法画出程序框图,并设计出程序:
程序框图: 程序:
练习:用更相减损术求两个正数84与72的最大公约数.
3.比较辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显.
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.
课堂课本P45练习1
[小结]
辗转相除法与更相减损术及比较①都是求最大公约数的方法,辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少;②结果上,辗转相除法体现结果是以相除余数为0得到,而更相减损术则以减数与差相等而得到.
补充:一、选择题:
1.用辗转相除法求294和84的最大公约数时,需要做除法的次数是( )
A.2 B.3 C.4 D.5
2.两个整数228和1995的最大公约数是( )
A. 38 B.57 C.76 D.171
二、填空题
3. 是我国古代数学专著《 》中介绍的一种求两数最大公约数的方法。
4.117与182的最大公约数是 。
三、解答题
5.求三个数168,56,264的最大公约数。1.1.1算法的概念
一、教学目标:
1、知识与技能:(1)了解算法的含义,体会算法的思想。(2)能够用自然语言叙述算法。(3)掌握正确的算法应满足的要求。(4)会写出解线性方程(组)的算法。
2、过程与方法:通过求解二元一次方程组,体会解方程的一般性步骤,从而得到一个解二元一次方程组的步骤,这些步骤就是算法,不同的问题有不同的算法。由于思考问题的角度不同,同一个问题也可能有多个算法,能模仿求解二元一次方程组的步骤,写出一个求有限整数序列中的最大值的算法。
二、重点与难点:
重点:算法的含义、解二元一次方程组和判断一个数为质数的算法设计。
难点:把自然语言转化为算法语言。
三、学法与教学用具:
学法:1、写出的算法,必须能解决一类问题(如:判断一个整数n(n>1)是否为质数;求任意一个方程的近似解;……),并且能够重复使用。
2、要使算法尽量简单、步骤尽量少。
3、要保证算法正确,且计算机能够执行,如:让计算机计算1×2×3×4×5是可以做到的,但让计算机去执行“倒一杯水”“替我理发”等则是做不到的。
四、教学设想:
1、 创设情境:
算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。我们知道解一元二次方程的算法,求解一元一次不等式、一元二次不等式的算法,解线性方程组的算法,求两个数的最大公因数的算法等。因此,算法其实是重要的数学对象。
2、 探索研究
算法(algorithm)一词源于算术(algorism),即算术方法,是指一个由已知推求未知的运算过程。后来,人们把它推广到一般,把进行某一工作的方法和步骤称为算法。
广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。比如解方程的算法、函数求值的算法、作图的算法,等等。
3、 例题分析:
例1 阅读课本例1,任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判定。
算法分析:根据质数的定义,很容易设计出下面的步骤:
第一步:判断n是否等于2,若n=2,则n是质数;若n>2,则执行第二步。
第二步:依次从2至(n-1)检验是不是n的因数,即整除n的数,若有这样的数,则n不是质数;若没有这样的数,则n是质数。
这是判断一个大于1的整数n是否为质数的最基本算法。
例2 用二分法设计一个求议程x2–2=0的近似根的算法。
算法分析:回顾二分法解方程的过程,并假设所求近似根与准确解的差的绝对值不超过0.005,则不难设计出以下步骤:
第一步:令f(x)=x2–2。因为f(1)<0,f(2)>0,所以设x1=1,x2=2。
第二步:令m=(x1+x2)/2,判断f(m)是否为0,若则,则m为所长;若否,则继续判断f(x1)·f(m)大于0还是小于0。
第三步:若f(x1)·f(m)>0,则令x1=m;否则,令x2=m。
第四步:判断|x1–x2|<0.005是否成立?若是,则x1、x2之间的任意取值均为满足条件的近似根;若否,则返回第二步。
例3 给出求1+2+3+4+5的一个算法.
解: 算法1 按照逐一相加的程序进行.
算法2 运用公式直接计算.
算法3 用循环方法求和.
说明:①一个问题的算法可能不唯一.
②若将本例改为“给出求的一个算法”,则上述算法2和算法3表达较为方便.
例4 给出求解方程组的一个算法.
分析:解线性方程组的常用方法是加减消元法和代入消元法,这两种方法没有本质的差别,为了适用于解一般的线性方程组,以便于在计算机上实现,我们用高斯消元法(即先将方程组化为一个三角形方程组,在通过回代过程求出方程组的解)解线性方程组.
解:用消元法解这个方程组,步骤是:
第一步:方程①不动,将方程②中的系数除以方程①中的系数,得到乘数;
第二步:方程②减去乘以方程①,消去方程②中的项,得到

第三步:将上面的方程组自下而上回代求解,得到,.
所以原方程组的解为.
引申:下面写出求方程组的解的算法:
说明:(1).从例1、例2可以看出,算法具有两个主要特点:
①有限性:一个算法在执行有限个步骤后必须结束.
“有限性”往往指在合理的范围之内,如果让计算机执行一个历时1000年才结束的算法,这虽然是有限的,但超过了合理的限度,人们也不把它视作有效算法.“合理限度”一般由人们的常识和需要以及计算机的性能而定.
②确定性:算法的每一个步骤和次序应当是确定的.
例如,一个健身操中一个动作“手举过头顶”,这个步骤就是不确定的、含糊的.是双手都举过头,还是左手或右手?举过头顶多少厘米不同的人可以有不同的理解.算法中的每一个步骤不应产生歧义,而应当是明确无误的.
(2).一般来说,算法应有一个或多个输出,算法的目的是为了求解,没有输出的算法是没有意义的.
例5 写出一个求有限整数列中的最大值的算法。
五.回顾小结
1.算法的概念:对一类问题的机械的、统一的求解方法.算法是由基本运算及规定的运算顺序所构成的完整的解题步骤,或者是按照要求设计好的有限的计算序列,并且这样的步骤或序列能解决一类问题.
2.算法的重要特征:
(1)有限性:一个算法在执行有限步后必须结束;
(2)确切性:算法的每一个步骤和次序必须是确定的;
(3)输入:一个算法有0个或多个输入,以刻划运算对象的初始条件.所谓0个输入是指算法本身定出了初始条件.
(4)输出:一个算法有1个或多个输出,以反映对输入数据加工后的结果.没有输出的
算法是毫无意义的.
六.课后作业
1. 有A、B、C三个相同规格的玻璃瓶,A装着酒精,B装着醋,C为空瓶,请设计一个算法,把A、B瓶中的酒精与醋互换.
2.写出解方程的一个算法.
3.已知,,写出求直线AB斜率的一个算法.
4.“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:
“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”
请你先列出解决这个问题的方程组,并设计一个解该方程组的算法.
5.写出解一元二次方程ax2+bx+c=0(a≠0)的一个算法。
6.写出求1至1000的正数中的3倍数的一个算法(打印结果)
7.一个人带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.请设计过河的算法.
8.写出求的一个算法.1.3.3 算法案例---进位制
一、教学要求:了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换;学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律.
二、教学过程:
[复习准备]
1. 试用秦九韶算法求多项式当时的值,分析此过程共需多少次乘法运算?多少次加法运算?
2. 提问:生活中我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制,旧式的秤是十六进制的,计算一打数值时是12进制的......那么什么是进位制?不同的进位制之间又有什么联系呢?
[讲授新课]
1. 教学进位制的概念:
① 进位制是人们为了计数和运算方便而约定的记数系统,“满几进一”就是几进制,几进制的基数就是几. 如:“满十进一”就是十进制,“满二进一”就是二进制. 同一个数可以用不同的进位制来表示,比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的. 表示各种进位制数一般在数字右下脚加注来表示,如上例中:
② 一般地,任意一个进制数都可以表示成不同位上数字与基数的幂的乘积之和的形式,即如:把化为十进制数,
=125+124+023+022+121+120=32+16+2+1=51.
把八进制数化为十进制数,
.
2. 教学进位制之间的互化:
①例1:把二进制数化为十进制数.
(学生板书教师点评师生共同总结将非十进制转为十进制数的方法),分析此过程的算法过程,编写过程的程序语言. 见P42
②练习:将、转化成十进制数.
③例2 设计一个程序,把K进制数(共有位数)化成十进制数
程序框图: 程序设计:
④例2、把89化为二进制数.
分析:根据进位制的定义,二进制就是“满二进一”,可以用2连续去除89或所得商,然后取余数. (教师板书)
上述方法也可以推广为把十进制化为k进制数的算法,这种算法成为除k取余法.
设计一个程序,实现“除k取余法”.
程序框图: 程序设计:
练习:用除k取余法将89化为四进制数、六进制数.
⑤例3、把二进制数化为十进制数.
解:
(小数也可利用上述方法化进行不同进位制之间的互化. )
变式:化为八进制方法:进制互化
3. 小结:进位制的定义;进位制之间的互化.
三、巩固练习:1、练习:教材P35第3题  2、作业:教材P38第3题 1.1.1算法的概念
一、教学目标:
1、知识与技能:(1)了解算法的含义,体会算法的思想。(2)能够用自然语言叙述算法。(3)掌握正确的算法应满足的要求。(4)会写出解线性方程(组)的算法。
2、过程与方法:通过求解二元一次方程组,体会解方程的一般性步骤,从而得到一个解二元一次方程组的步骤,这些步骤就是算法,不同的问题有不同的算法。由于思考问题的角度不同,同一个问题也可能有多个算法,能模仿求解二元一次方程组的步骤,写出一个求有限整数序列中的最大值的算法。
二、重点与难点:
重点:算法的含义、解二元一次方程组和判断一个数为质数的算法设计。
难点:把自然语言转化为算法语言。
三、学法与教学用具:
学法:1、写出的算法,必须能解决一类问题(如:判断一个整数n(n>1)是否为质数;求任意一个方程的近似解;……),并且能够重复使用。
2、要使算法尽量简单、步骤尽量少。
3、要保证算法正确,且计算机能够执行,如:让计算机计算1×2×3×4×5是可以做到的,但让计算机去执行“倒一杯水”“替我理发”等则是做不到的。
四、教学设想:
1、 创设情境:
算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。我们知道解一元二次方程的算法,求解一元一次不等式、一元二次不等式的算法,解线性方程组的算法,求两个数的最大公因数的算法等。因此,算法其实是重要的数学对象。
2、 探索研究
算法(algorithm)一词源于算术(algorism),即算术方法,是指一个由已知推求未知的运算过程。后来,人们把它推广到一般,把进行某一工作的方法和步骤称为算法。
广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。比如解方程的算法、函数求值的算法、作图的算法,等等。
3、 例题分析:
例1 阅读课本例1,任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判定。
算法分析:根据质数的定义,很容易设计出下面的步骤:
第一步:判断n是否等于2,若n=2,则n是质数;若n>2,则执行第二步。
第二步:依次从2至(n-1)检验是不是n的因数,即整除n的数,若有这样的数,则n不是质数;若没有这样的数,则n是质数。
这是判断一个大于1的整数n是否为质数的最基本算法。
例2 用二分法设计一个求议程x2–2=0的近似根的算法。
算法分析:回顾二分法解方程的过程,并假设所求近似根与准确解的差的绝对值不超过0.005,则不难设计出以下步骤:
第一步:令f(x)=x2–2。因为f(1)<0,f(2)>0,所以设x1=1,x2=2。
第二步:令m=(x1+x2)/2,判断f(m)是否为0,若则,则m为所长;若否,则继续判断f(x1)·f(m)大于0还是小于0。
第三步:若f(x1)·f(m)>0,则令x1=m;否则,令x2=m。
第四步:判断|x1–x2|<0.005是否成立?若是,则x1、x2之间的任意取值均为满足条件的近似根;若否,则返回第二步。
小结:算法具有以下特性:(1)有穷性;(2)确定性;(3)顺序性;(4)不惟一性;(5)普遍性
例3 给出求1+2+3+4+5的一个算法.
解: 算法1 按照逐一相加的程序进行.
第一步:计算1+2,得到3;
第二步:将第一步中的运算结果3与3相加,得到6;
第三步:将第二步中的运算结果6与4相加,得到10;
第四步:将第三步中的运算结果10与5相加,得到15.
算法2 运用公式直接计算.
第一步:取=5;
第二步:计算;
第三步:输出运算结果.
算法3 用循环方法求和.
第一步:使,;
第二步:使;
第三步:使;
第四步:使;
第五步:如果,则返回第三步,否则输出.
说明:①一个问题的算法可能不唯一.
②若将本例改为“给出求的一个算法”,则上述算法2和算法3表达较为方便.
例4 给出求解方程组的一个算法.
分析:解线性方程组的常用方法是加减消元法和代入消元法,这两种方法没有本质的差别,为了适用于解一般的线性方程组,以便于在计算机上实现,我们用高斯消元法(即先将方程组化为一个三角形方程组,在通过回代过程求出方程组的解)解线性方程组.
解:用消元法解这个方程组,步骤是:
第一步:方程①不动,将方程②中的系数除以方程①中的系数,得到乘数;
第二步:方程②减去乘以方程①,消去方程②中的项,得到

第三步:将上面的方程组自下而上回代求解,得到,.
所以原方程组的解为.
引申:下面写出求方程组的解的算法:
说明:(1).从例1、例2可以看出,算法具有两个主要特点:
①有限性:一个算法在执行有限个步骤后必须结束.
“有限性”往往指在合理的范围之内,如果让计算机执行一个历时1000年才结束的算法,这虽然是有限的,但超过了合理的限度,人们也不把它视作有效算法.“合理限度”一般由人们的常识和需要以及计算机的性能而定.
②确定性:算法的每一个步骤和次序应当是确定的.
例如,一个健身操中一个动作“手举过头顶”,这个步骤就是不确定的、含糊的.是双手都举过头,还是左手或右手?举过头顶多少厘米不同的人可以有不同的理解.算法中的每一个步骤不应产生歧义,而应当是明确无误的.
(2).一般来说,算法应有一个或多个输出,算法的目的是为了求解,没有输出的算法是没有意义的.
例5 写出一个求有限整数列中的最大值的算法。
解:算法如下。
S1 先假定序列中的第一个整数为“最大值”。
S2 将序列中的下一个整数值与“最大值”比较,如果它大于此“最大值”,这时你就假定“最大值”是这个整数。
S3 如果序列中还有其他整数,重复S2。
S4 在序列中一直到没有可比的数为止,这时假定的“最大值”就是这个序列中的最大值。
六.回顾小结
1.算法的概念:对一类问题的机械的、统一的求解方法.算法是由基本运算及规定的运算顺序所构成的完整的解题步骤,或者是按照要求设计好的有限的计算序列,并且这样的步骤或序列能解决一类问题.
2.算法的重要特征:
(1)有限性:一个算法在执行有限步后必须结束;
(2)确切性:算法的每一个步骤和次序必须是确定的;
(3)输入:一个算法有0个或多个输入,以刻划运算对象的初始条件.所谓0个输入是指算法本身定出了初始条件.
(4)输出:一个算法有1个或多个输出,以反映对输入数据加工后的结果.没有输出的
算法是毫无意义的.
课后作业
1、写出解一元二次方程ax2+bx+c=0(a≠0)的一个算法。
2、写出求1至1000的正数中的3倍数的一个算法(打印结果)
1. 有A、B、C三个相同规格的玻璃瓶,A装着酒精,B装着醋,C为空瓶,请设计一个算法,把A、B瓶中的酒精与醋互换.
2.写出解方程的一个算法.
3.已知,,写出求直线AB斜率的一个算法.
4.“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:
“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”
请你先列出解决这个问题的方程组,并设计一个解该方程组的算法.
1.一个人带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.请设计过河的算法.
解:算法或步骤如下:
S1 人带两只狼过河;
S2 人自己返回;
S3 人带一只羚羊过河;
S4 人带两只狼返回;
S5 人带两只羚羊过河;
S6 人自己返回;
S7 人带两只狼过河;
S8 人自己返回;
S9 人带一只狼过河.
2.写出求的一个算法.
解:第一步:使,;
第二步:使;
第三步:使;
第四步:使;
第五步:使;
第六步:如果,则返回第三步,否则输出.
1、写出解一元二次方程ax2+bx+c=0(a≠0)的一个算法。
2、写出求1至1000的正数中的3倍数的一个算法(打印结果)
6、评价标准
1、解:算法如下
S1 计算△=b2-4ac
S2 如果△〈0,则方程无解;否则x1=
S3 输出计算结果x1,x2或无解信息。
2、解:算法如下:
S1 使i=1
S2 i被3除,得余数r
S3 如果r=0,则打印i,否则不打印
S4 使i=i+1
S5 若i≤1000,则返回到S2继续执行,否则算法结束。
7、作业:1、写出解不等式x2-2x-3<0的一个算法。
解:第一步:x2-2x-3=0的两根是x1=3,x2=-1。
第二步:由x2-2x-3<0可知不等式的解集为{x | -1评注:该题的解法具有一般性,下面给出形如ax2+bx+c>0的不等式的解的步骤(为方便,我们设a>0)如下:
第一步:计算△= ;
第二步:若△>0,示出方程两根(设x1>x2),则不等式解集为{x | x>x1或x第三步:若△= 0,则不等式解集为{x | x∈R且x};
第四步:若△<0,则不等式的解集为R。
2、求过P(a1,b1)、Q(a2,b2)两点的直线斜率有如下的算法:
第一步:取x1= a1,y1= b1,x2= a2,y1= b2;
第二步:若x1= x2;
第三步:输出斜率不存在;
第四步:若x1≠x2;
第五步:计算;
第六步:输出结果。
3、写出求过两点M(-2,-1)、N(2,3)的直线与坐标轴围成面积的一个算法。
解:算法:第一步:取x1=-2,y1=-1,x2=2,y2=3;
第二步:计算;
第三步:在第二步结果中令x=0得到y的值m,得直线与y轴交点(0,m);
第四步:在第二步结果中令y=0得到x的值n,得直线与x轴交点(n,0);
第五步:计算S=;
第六步:输出运算结果本资料来自于资源最齐全的21世纪教育网www.21cnjy.com
1.2.1输入、输出语句和赋值语句
一、教学目标:
(1)正确理解输入语句、输出语句、赋值语句的结构。
(2)会写一些简单的程序。
(3)掌握赋值语句中的“=”的作用。
二、教学设计
【创设情境】
在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具,如:听MP3,看电影,玩游戏,打字排版,画卡通画,处理数据等等,那么,计算机是怎样工作的呢?
计算机完成任何一项任务都需要算法,但是,我们用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的。因此还需要将算法用计算机能够理解的程序设计语言(programming language)翻译成计算机程序。
程序设计语言有很多种。如BASIC,Foxbase,C语言,C++,J++,VB等。为了实现算法中的三种基本的逻辑结构:顺序结构、条件结构和循环结构,各种程序设计语言中都包含下列基本的算法语句:
这就是这一节所要研究的主要内容——基本算法语句。今天,我们先一起来学习输入、输出语句和赋值语句。
【探究新知】
我们知道,顺序结构是任何一个算法都离不开的基本结构。输入、输出语句和赋值语句基本上对应于算法中的顺序结构。(如右图)计算机从上而下按照语句排列的顺序执行这些语句。
输入语句和输出语句分别用来实现算法的输入信息,输出结果的功能。如下面的例子:
用描点法作函数的图象时,需要求出自变量与函数的一组对应值。编写程序,分别计算当时的函数值。
程序:(教师可在课前准备好该程序,教学中直接调用运行)
(学生先不必深究该程序如何得来,只要求懂得上机操作,模仿编写程序,通过运行自己编写的程序发现问题所在,进一步提高学生的模仿能力。)
〖提问〗:在这个程序中,你们觉得哪些是输入语句、输出语句和赋值语句呢?(同学们互相交流、议论、猜想、概括出结论。提示:“input”和“print”的中文意思等)
(一)输入语句
在该程序中的第1行中的INPUT语句就是输入语句。这个语句的一般格式是:
其中,“提示内容”一般是提示用户输入什么样的信息。如每次运行上述程序时,依次输入-5,-4,-3,-2,-1,0,1,2,3,4,5,计算机每次都把新输入的值赋给变量“x”,并按“x”新获得的值执行下面的语句。
INPUT语句不但可以给单个变量赋值,还可以给多个变量赋值,其格式为:
例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:
INPUT “数学,语文,英语”;a,b,c
注:①“提示内容”与变量之间必须用分号“;”隔开。
②各“提示内容”之间以及各变量之间必须用逗号“,”隔开。但最后的变量的后面不需要。
(二)输出语句
在该程序中,第3行和第4行中的PRINT语句是输出语句。它的一般格式是:
同输入语句一样,表达式前也可以有“提示内容”。例如下面的语句可以输出斐波那契数列:
此时屏幕上显示:
The Fibonacci Progression is:1 1 2 3 5 8 13 21 34 55 …
输出语句的用途:
(1)输出常量,变量的值和系统信息。(2)输出数值计算的结果。
〖思考〗:在1.1.2中程序框图中的输入框,输出框的内容怎样用输入语句、输出语句来表达?(学生讨论、交流想法,然后请学生作答)
参考答案:
输入框:INPUT “请输入需判断的整数n=”;n
输出框:PRINT n;“是质数。”
PRINT n;“不是质数。”
(三)赋值语句
用来表明赋给某一个变量一个具体的确定值的语句。
除了输入语句,在该程序中第2行的赋值语句也可以给变量提供初值。它的一般格式是:
赋值语句中的“=”叫做赋值号。
赋值语句的作用:先计算出赋值号右边表达式的值,然后把这个值赋给赋值号左边的变量,使该变量的值等于表达式的值。
注:①赋值号左边只能是变量名字,而不能是表达式。如:2=X是错误的。
②赋值号左右不能对换。如“A=B”“B=A”的含义运行结果是不同的。
③不能利用赋值语句进行代数式的演算。(如化简、因式分解、解方程等)
④赋值号“=”与数学中的等号意义不同。
〖思考〗:在1.1.2中程序框图中的输入框,哪些语句可以用赋值语句表达?并写出相应的赋值语句。(学生思考讨论、交流想法。)
【例题精析】
〖例1〗:编写程序,计算一个学生数学、语文、英语三门课的平均成绩。
分析:先写出算法,画出程序框图,再进行编程。
算法: 程序:
〖例2〗:给一个变量重复赋值。
程序:
[变式引申]:在此程序的基础上,设计一个程序,要求最后A的输出值是30。
(该变式的设计意图是学生加深对重复赋值的理解)
程序:
〖例3〗:交换两个变量A和B的值,并输出交换前后的值。
分析:引入一个中间变量X,将A的值赋予X,又将B的值赋予A,再将X的值赋予B,从而达到交换A,B的值。(比如交换装满水的两个水桶里的水需要再找一个空桶)
程序:
〖补例〗:编写一个程序,要求输入一个圆的半径,便能输出该圆的周长和面积。( 取3.14)
分析:设圆的半径为R,则圆的周长为,面积为,可以利用顺序结构中的INPUT语句,PRINT语句和赋值语句设计程序。
程序:
【课堂精练】
P15 练习 1. 2. 3
参考答案:
1.程序: INPUT “请输入华氏温度:”;x
y=(x-32)*5/9
PRINT “华氏温度:”;x
PRINT “摄氏温度:”;y
END
〖提问〗:如果要求输入一个摄氏温度,输出其相应的华氏温度,又该如何设计程序?(学生课后思考,讨论完成)
2. 程序: INPUT “请输入a(a0)=”;a
INPUT “请输入b(b0)=”;b
X=a+b
Y=a-b
Z=a*b
Q=a/b
PRINT a,b
PRINT X,Y,Z,Q
END
3. 程序: p=(2+3+4)/2
t=p*(p-2)*(p-3)*(p-4)
s=SQR(t)
PRINT “该三角形的面积为:”;s
END
注:SQR()是函数名,用来求某个数的平方根。
【课堂小结】
本节课介绍了输入语句、输出语句和赋值语句的结构特点及联系。掌握并应用输入语句,输出语句,赋值语句编写一些简单的程序解决数学问题,特别是掌握赋值语句中“=”的作用及应用。编程一般的步骤:先写出算法,再进行编程。我们要养成良好的习惯,也有助于数学逻辑思维的形成。
【评价设计】
1.P23 习题1.2 A组 1(2)、2
2.试对生活中某个简单问题或是常见数学问题,利用所学基本算法语句等知识来解决自己所提出的问题。要求写出算法,画程序框图,并写出程序设计。
输入语句 输出语句 赋值语句 条件语句 循环语句
语句n+1
语句n
INPUT “x=”;x
y=x^3+3*x^2-24*x+30
PRINT x
PRINT y
END
INPUT “提示内容”;变量
INPUT “提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,…
PRINT “提示内容”;表达式
PRINT “The Fibonacci Progression is:”;
1 1 2 3 5 8 13 21 34 55 “…”
变量=表达式
开始
输入a,b,c
结束
输出y
INPUT “数学=”;a
INPUT “语文=”;b
INPUT “英语=”;c
y=(a+b+c)/3
PRINT “The average=”;y
END
A=10
A=A+10
PRINT A
END
A=10
A=A+15
PRINT A
A=A+5
PRINT A
END
INPUT A
INPUT B
PRINT A,B
X=A
A=B
B=X
PRINT A,B
END
INPUT “半径为R=”;R
C=2*3.14*R
S=3.14*R^2
PRINT “该圆的周长为:”;C
PRINT “该圆的面积为:”;S
END
21世纪教育网 -- 中国最大型、最专业的中小学教育资源门户网站。 版权所有@21世纪教育网1.1.2 程序框图与算法的基本逻辑结构
一、教学目标:
1、知识与技能:掌握程序框图的概念;会用通用的图形符号表示算法。
2、过程与方法:通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图。
二、重点与难点:重点是程序框图的基本概念、基本图形符号。
三、学法与教学用具:
1、通过上节学习我们知道,算法就是解决问题的步骤,在我们利用计算机解决问题的时候,首先我们要设计计算机程序,在设计计算机程序时我们首先要画出程序运行的流程图,使整个程序的执行过程直观化,使抽象的问题就得十分清晰和具体。
2、我们在学习这部分内容时,首先要弄清各种图形符号的意义,明确每个图形符号的使用环境,图形符号间的联结方式。
四、教学设想:
1、创设情境:
算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表示它。
2、程序框图:
(1)起止框图: 起止框是任何流程图都不可缺少的,它表明程序的开始和结束,所以一个完整的流程图的首末两端必须是起止框。
(2)输入、输出框: 表示数据的输入或结果的输出,它可用在算法中的任何需要输入、输出的位置。
(3)处理框: 它是采用来赋值、执行计算语句、传送运算结果的图形符号。图1-1中出现了两个处理框。第一个处理框的作用是计算D=a11a22-a21a12的值,第二个处理框的作用是计算x1=(b1a22-b2a12)/D,x2=(b2a11-b1a21)/D的值。
(4)判断框: 判断框一般有一个入口和两个出口,有时也有多个出口,它是惟一的具有两个或两个以上出口的符号,在只有两个出口的情形中,通常都分成“是”与“否”(也可用“Y”与“N”)两个分支,在图1-1中,通过判断框对D的值进行判断,若判断框中的式子是D=0,则说明D=0时由标有“是”的分支处理数据;若D≠0,则由标有“否”的分支处理数据。例如,我们要打印x的绝对值,可以设计如下框图。
开始
输入x
是 x≥0? 否
打印x -打印x
结束
从图中可以看到由判断框分出两个分支,构成一个选择性结构,其中选择的标准是“x≥0”,若符合这个条件,则按照“是”分支继续往下执行;若不符合这个条件,则按照“否”分支继续往下执行,这样的话,打印出的结果总是x 的绝对值。
在学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:
(1)使用标准的图形符号。
(2)框图一般按从上到下、从左到右的方向画。
(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过一个退出点的惟一符号。
(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。
(5)在图形符号内描述的语言要非常简练清楚。
练习:写出下列问题的一个算法框图:
1. 有A、B、C三个相同规格的玻璃瓶,A装着酒精,B装着醋,C为空瓶,请设计一个算法,把A、B瓶中的酒精与醋互换.
2.写出解方程的一个算法.
3.已知,,写出求直线AB斜率的一个算法.
2.算法的基本逻辑结构
1.顺序结构:顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。
例1:已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。
算法分析:这是一个简单的问题,只需先算出p的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。
程序框图:
(2)条件结构:根据指定条件选择执行不同指令的控制结构。
例2:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的程序框图。
算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。
程序框图:
a+b>c , a+c>b, b+c>a是 否
否同时成立?

(3)循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。
循环结构又称重复结构,循环结构可细分为两类:
(1)一类是当型循环结构,如图所示。
(2)另一类是直到型循环结构,如下图所示。
A A
P1?
成立 P2? 成立
不成立
成立
a b
(1) (2)
例3:设计一个计算1+2+…+100的值的算法,并画出程序框图。
算法分析:只需要一个累加变量和一个计数变量,将累加变量的初始值为0,计数变量的值可以从1到100。
程序框图:
i≤100? 是

3、课堂小结:本节课主要讲述了程序框图的基本知识,包括常用的图形符号、算法的基本逻辑结构,算法的基本逻辑结构有三种,即顺序结构、条件结构和循环结构。其中顺序结构是最简单的结构,也是最基本的结构,循环结构必然包含条件结构,所以这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过这三种结构来表达
五、作业:
(1)设x为为一个正整数,规定如下运算:若x为奇数,则求3x+2;若x为偶数,则为5x,写出算法,并画出程序框图。
开始
p=(2+3+4)/2
s=sqr(p(p-2)(p-3)(p-4))
输出s
结束
开始
输入a,b,c
存在这样的三角形
不存在这样的三角形
结束
开始
i=1
Sum=0
i=i+1
Sum=sum+i
输出sum
结束1.1.2 程序框图与算法的基本逻辑结构习题课
一、顺序结构
例1.半径为的圆的面积计算公式为,当时,写出计算圆面积的算法,画出流程图.
解:算法如下:


输出.
说明:上述算法的流程图如右图所示,它是一个顺序结构.
二、条件结构
例2.某铁路客运部门规定甲、乙两地之间旅客托运行李的费用为
其中(单位:)为行李的重量.
试给出计算费用(单位:元)的一个算法,并画出流程图.
解:算法为:
输入行李的重量;
如果,那么,
否则;
输出行李的重量和运费.
上述算法可以用流程图表示为:
例3.设计求解一元二次方程的一个算法,并画出流程图.
分析:由于一元二次方程未必总有实数根,因此,求解时,要先计算判别式,然后比较与的大小,再决定能否用求根公式求解.所以,在算法中应含有选择结构.解:算法如下:
输入;

如果,则输出“方程无实数根”,否则
,,
并输出,.
算法流程图如右.
思考:如果要输出根的详细信息(区分是两个
相等的实数根还是不等的实数根),如何
修改上述算法和流程图?
例4.设计一个求任意数的绝对值的算法,并画出流程图.
解: 输入任意实数;
若,则;否则;
输出.
算法流程图如右.
三、循环结构
例5.设计一个计算10个数平均数的算法,并画出流程图.
分析:由于需要依次输入10个数,并计算它们的和,因此,需要用一个循环结构,并用一个变量存放数的累加和。在求出10个数的总和后,再除以10,就得到10个数的平均数。
解: ; {使}
; {使}
输入; {输入一个数}
; {求,其和仍放在变量中}
; {使的值增加1}
如果,转, {如果,退出循环}
; {将平均数存放到中}
输出。 {输出平均数}
说明:1.本题中的第一步将赋值于,是为这些数的和建立
存放空间;
2.在循环结构中都有一个计数变量(本题中的)和累
加变量(本题中的),计数变量用于记录循环次数
(本题实质是为了记录输入的数的个数),累加变量
用于输出结果。计数变量与累加变量一般是同步进行
的,累加一次,计数一次。
算法流程图如右.
例6.根据给出的算法,分析该算法所解决的是什么问题,
并画出相应的流程图?
S1 ;
S2 ;
S3 输入;
S4 ;
S5 ;
S6 若不大于100,转S3;否则,转S7
S7 ;
S8 输出.
输出
输入
输出本资料来自于资源最齐全的21世纪教育网www.21cnjy.com
1.2.1输入、输出语句和赋值语句
一、教学目标:
(1)正确理解输入语句、输出语句、赋值语句的结构。
(2)会写一些简单的程序。
(3)掌握赋值语句中的“=”的作用。
二、教学设计
【创设情境】
在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具,如:听MP3,看电影,玩游戏,打字排版,画卡通画,处理数据等等,那么,计算机是怎样工作的呢?
计算机完成任何一项任务都需要算法,但是,我们用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的。因此还需要将算法用计算机能够理解的程序设计语言(programming language)翻译成计算机程序。
程序设计语言有很多种。如BASIC,Foxbase,C语言,C++,J++,VB等。为了实现算法中的三种基本的逻辑结构:顺序结构、条件结构和循环结构,各种程序设计语言中都包含下列基本的算法语句:
这就是这一节所要研究的主要内容——基本算法语句。今天,我们先一起来学习输入、输出语句和赋值语句。
【探究新知】
我们知道,顺序结构是任何一个算法都离不开的基本结构。输入、输出语句和赋值语句基本上对应于算法中的顺序结构。(如右图)计算机从上而下按照语句排列的顺序执行这些语句。
输入语句和输出语句分别用来实现算法的输入信息,输出结果的功能。如下面的例子:
用描点法作函数的图象时,需要求出自变量与函数的一组对应值。编写程序,分别计算当时的函数值。
程序:(教师可在课前准备好该程序,教学中直接调用运行)
(学生先不必深究该程序如何得来,只要求懂得上机操作,模仿编写程序,通过运行自己编写的程序发现问题所在,进一步提高学生的模仿能力。)
〖提问〗:在这个程序中,你们觉得哪些是输入语句、输出语句和赋值语句呢?(同学们互相交流、议论、猜想、概括出结论。提示:“input”和“print”的中文意思等)
(一)输入语句
在该程序中的第1行中的INPUT语句就是输入语句。这个语句的一般格式是:
其中,“提示内容”一般是提示用户输入什么样的信息。如每次运行上述程序时,依次输入-5,-4,-3,-2,-1,0,1,2,3,4,5,计算机每次都把新输入的值赋给变量“x”,并按“x”新获得的值执行下面的语句。
INPUT语句不但可以给单个变量赋值,还可以给多个变量赋值,其格式为:
例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:
INPUT “数学,语文,英语”;a,b,c
注:①“提示内容”与变量之间必须用分号“;”隔开。
②各“提示内容”之间以及各变量之间必须用逗号“,”隔开。但最后的变量的后面不需要。
(二)输出语句
在该程序中,第3行和第4行中的PRINT语句是输出语句。它的一般格式是:
同输入语句一样,表达式前也可以有“提示内容”。例如下面的语句可以输出斐波那契数列:
此时屏幕上显示:
The Fibonacci Progression is:1 1 2 3 5 8 13 21 34 55 …
输出语句的用途:
(1)输出常量,变量的值和系统信息。(2)输出数值计算的结果。
〖思考〗:在1.1.2中程序框图中的输入框,输出框的内容怎样用输入语句、输出语句来表达?(学生讨论、交流想法,然后请学生作答)
(三)赋值语句
用来表明赋给某一个变量一个具体的确定值的语句。
除了输入语句,在该程序中第2行的赋值语句也可以给变量提供初值。它的一般格式是:
赋值语句中的“=”叫做赋值号。
赋值语句的作用:先计算出赋值号右边表达式的值,然后把这个值赋给赋值号左边的变量,使该变量的值等于表达式的值。
注:①赋值号左边只能是变量名字,而不能是表达式。如:2=X是错误的。
②赋值号左右不能对换。如“A=B”“B=A”的含义运行结果是不同的。
③不能利用赋值语句进行代数式的演算。(如化简、因式分解、解方程等)
④赋值号“=”与数学中的等号意义不同。
〖思考〗:在P7的1.1.2中程序框图中的输入框,哪些语句可以用赋值语句表达?并写出相应的赋值语句。(学生思考讨论、交流想法。)
【例题精析】
〖例1〗:编写程序,计算一个学生数学、语文、英语三门课的平均成绩。
分析:先写出算法,画出程序框图,再进行编程。
算法: 程序:
〖例2〗:给一个变量重复赋值。
程序:
[变式引申]:在此程序的基础上,设计一个程序,要求最后A的输出值是30。
(该变式的设计意图是学生加深对重复赋值的理解)
程序:
〖例3〗:交换两个变量A和B的值,并输出交换前后的值。
分析:引入一个中间变量X,将A的值赋予X,又将B的值赋予A,再将X的值赋予B,从而达到交换A,B的值。(比如交换装满水的两个水桶里的水需要再找一个空桶)
程序:
〖补例〗:编写一个程序,要求输入一个圆的半径,便能输出该圆的周长和面积。( 取3.14)
分析:设圆的半径为R,则圆的周长为,面积为,可以利用顺序结构中的INPUT语句,PRINT语句和赋值语句设计程序。
程序:
【课堂精练】
P24 练习 1. 2. 3
【课堂小结】
本节课介绍了输入语句、输出语句和赋值语句的结构特点及联系。掌握并应用输入语句,输出语句,赋值语句编写一些简单的程序解决数学问题,特别是掌握赋值语句中“=”的作用及应用。编程一般的步骤:先写出算法,再进行编程。我们要养成良好的习惯,也有助于数学逻辑思维的形成。
输入语句 输出语句 赋值语句 条件语句 循环语句
语句n+1
语句n
INPUT “x=”;x
y=x^3+3*x^2-24*x+30
PRINT x
PRINT y
END
INPUT “提示内容”;变量
INPUT “提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,…
PRINT “提示内容”;表达式
PRINT “The Fibonacci Progression is:”;
1 1 2 3 5 8 13 21 34 55 “…”
变量=表达式
21世纪教育网 -- 中国最大型、最专业的中小学教育资源门户网站。 版权所有@21世纪教育网算法初步测试题
姓名:
一、选择题 (每小题5分,共50分)
1.已知直角三角形两直角边长为,,求斜边长的一个算法分下列三步:
①计算;②输入直角三角形两直角边长,的值;
③输出斜边长的值,其中正确的顺序是 ( )
A.①②③ B.②③① C.①③② D.②①③
2.给出以下一个算法的程序框图(如下图所示),该程序框图的功能是 ( )
A.求输出三数的最大数 B.求输出三数的最小数
C.将按从小到大排列 D.将按从大到小排列
3.右边的程序框图(如上图所示),能判断任意输入的数的奇偶性:其中判断框内的条件( )
A. B. C. D.
4.将两个数=8,=7交换,使=7,=8,使用赋值语句正确的一组 ( )
A. =,= B. =,=,=
C. =,= D. =,=,=
5.下列给出的输入语句、输出语句和赋值语句
⑴输出语句INPUT ;; (2)输入语句INPUT =3
(3)赋值语句3=B (4)赋值语句A=B=2
则其中正确的个数是 ( )
A.0个 B. 1个 C. 2个 D. 3个
6.直到型循环结构为 ( )
7.下边程序执行后输出的结果是 ( )
A. -1 B. 0 C. 1 D. 2
8.当时,下面的程序段结果是 ( )
A. 3 B. 7 C. 15 D. 17
9.下面为一个求20个数的平均数的程序,在横线上应填充的语句为 ( )
___________
A. B. C. D.
10.下列各数中最小的数是 ( )
A. B. C. D.
二、填空题 (每小题5分,共20分)
11.如图⑵程序框图箭头a指向①处时,输出 s=__________.
箭头a指向②处时,输出 s=__________.
12.此题程序运行结果为___________。
13.若输入的数字是“37”,输出的结果是________________.
14.2183 和1947的最大公约数是___________________.
三、解答题 (每小题10分,共30分)
15.已知= 编写一个程序,对每输入的一个值,都得到相应的函数值.
 
16.用WHILE语句求的值。
17.设个人月收入在5000元以内的个人所得税档次为(单位: 元):
0%
10%
25%
设某人的月收入为元,试编一段程序,计算他应交的个人所得税.
18.求100~999中的水仙花数,所谓水仙花数是一个三位数,它的各位数字的立方和等于该数,例如153是一个水仙花数,因为.试编一段程序,找出所有的水仙花数.
附2008高考试题:
1. 选择题:
1.(广东卷9.阅读图3的程序框图,若输入,,则输出 12 , 3(注:框图中的赋值符号“”也可以写成“”或“”)
2.(海南卷5、右面的程序框图5,如果输入三个实数a、b、c,要求输出这三个数中最大的数,那么在空白的判断框中,应该填入下面四个选项中的( )
A. c > x B. x > c
C. c > b D. b > c
3.(陕西卷12)为提高信息在传输中的抗干扰能力,通常在原信息中按一定规则加入相关数据组成传输信息.设定原信息为(),传输信息为,其中,运算规则为:,,,,例如原信息为111,则传输信息为01111.传输信息在传输过程中受到干扰可能导致接收信息出错,则下列接收信息一定有误的是( )
A.11010 B.01100
C.10111 D.00011
2. 填空题:
1.(山东卷13)执行右边的程序框图6,若p=0.8,则输出的n=  .
算法练习:
1. 对赋值语句的描述正确的是 ( )
①可以给变量提供初值 ②将表达式的值赋给变量
③可以给一个变量重复赋值 ④不能给同一变量重复赋值
A.①②③ B.①② C.②③④ D.①②④
2. 用“辗转相除法”求得和的最大公约数是( )
A. B. C. D.
3. 用秦九韶算法求n 次多项式,当时,求需要算乘方、乘法、加法的次数分别为 ( )
A. B. n,2n,n C. 0,2n,n D. 0,n,n
4. 右边程序运行后输出的结果为( )
A. 3 B. C. 2 D.
5. 算法
:输入
:判断是否是2;若,则满足条件;
若,则执行
:依次从2到检验能不能整除.
若不能整除满足条件,
上述的满足条件是什么 ( )
A.质数 B.奇数 C.偶数 D.约数
6、把六进制数转换成三进制数:=
7、如图所示算法,则输出的i值为
8、若a=7,b=6,左边程序运行结果是
开始
输入
>?


>?
输出
结束

开始
输入
除以2的余数
输出“是偶数”

输出“是奇数”

结束
第2题图
第3题图

满足条件?


循环体
AA
满足条件?
循环体


循环体
满足条件?


循环体
满足条件?
A
B
C


D
=2
=3
=4
=
=+2
=+4
PRINT “=”;d
第12题
INPUT x
IF x>9 AND x<100 THEN
a=x\10
b=x MOD 10
x=10*b+a
PRINT x
END IF
END
第13题程序
开始
i=1
s=0
s=s+i
i=i+1
i≤5
Y


a
N
结束
11题
输出s


开始
输入a,b,c
x=a
b>x
输出x
结束
x=b
x=c


图5
开始
n整除a

输入
结束
输出
图3

图6
j=1
n=0
WHILE j<=11
j=j+1
IF j MOD 4=0 THEN
n=n+1
END IF
j=j+1
WEND
PRINT n
END
第4题
IF a>5 THEN
IF b<4 THEN
c=a–b
ELSE
c=b–a
END IF
ELSE
IF a>3 THEN
c=a*b
ELSE
c=aMODb
END IF
END IF
PRINT c
第8题
i=1;
DO
s=i*i;
i=i+1;
LOOP UNTIL s>121
i=i-1
PRINT i
END
第7题1.3.1 算法案例(1)
一、教学目标:
(1)理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析;
(2)基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序;
二、教学过程
[问题情境]
在初中,我们已经学过求最大公约数的知识,你能求出18与30的公约数吗?
我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们的最大公约数?比如求8251与6105的最大公约数?这就是我们这一堂课所要探讨的内容.
[算法设计思想]
1.辗转相除法:
例1.求两个正数8251和6105的最大公约数.
(分析:8251与6105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)
解:8251=6105×1+2146
显然8251和的2146最大公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数,所以8251与6105的最大公约数也是6105与2146的最大公约数.
6105=2146×2+1813
2146=1813×1+333
1813=333×5+148
333=148×2+37
148=37×4+0
则37为8251与6105的最大公约数.
以上我们求最大公约数的方法就是辗转相除法.也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的.利用辗转相除法求最大公约数的步骤如下:
第一步:用较大的数除以较小的数得到一个商和一个余数;
第二步:若,则为的最大公约数;若,则用除数除以余数得到一个商和一个余数;
第三步:若,则为的最大公约数;若,则用除数除以余数得到一个商和一个余数;
……
依次计算直至,此时所得到的即为所求的最大公约数.
请依据算法画出程序框图,并设计出程序:
程序框图: 程序:
练习:利用辗转相除法求两数4081与20723的最大公约数(答案:53)
2.更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术.
更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母之数,以少减多,更相减损,求其等也,以等数约之.
翻译出来为:
第一步:任意给出两个正数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.
第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.
例2. 用更相减损术求98与63的最大公约数.
解:由于63不是偶数,把98和63以大数减小数,并辗转相减,
即:98-63=35
63-35=28
35-28=7
28-7=21
21-7=14
14-7=7
所以,98与63的最大公约数是7.
请依据算法画出程序框图,并设计出程序:
程序框图: 程序:
练习:用更相减损术求两个正数84与72的最大公约数.(答案:12)
3.比较辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显.
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.
课堂课本P45练习1
[小结]
辗转相除法与更相减损术及比较①都是求最大公约数的方法,辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少;②结果上,辗转相除法体现结果是以相除余数为0得到,而更相减损术则以减数与差相等而得到.
补充:一、选择题:
1.用辗转相除法求294和84的最大公约数时,需要做除法的次数是( )
A.2 B.3 C.4 D.5
2.两个整数228和1995的最大公约数是( )
A. 38 B.57 C.76 D.171
二、填空题
3. 是我国古代数学专著《 》中介绍的一种求两数最大公约数的方法。
4.117与182的最大公约数是 。
三、解答题
5.求三个数168,56,264的最大公约数。
参考答案:1.A 2. B 3.更相减损术 九章算术 4.13
5.56(提示先求168与56的最大公约数,再将前两个数的最大公约数与第三个数求最大公约数)本资料来自于资源最齐全的21世纪教育网www.21cnjy.com
1.2.3 循环语句
一、教学目标:
(1)正确理解循环语句的概念,并掌握其结构的区别与联系。
(2)会应用循环语句编写程序。
二、教学设计
【创设情境】
试求自然数1+2+3+……+99+100的和。
显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的循环语句
【循环语句】
算法中的循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。即WHILE语句和UNTIL语句。
(1)WHILE语句的一般格式是:
其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构框图为:(如上右图)
(2)UNTIL语句的一般格式是:
其对应的程序结构框图为:(如上右图)
〖思考〗:直到型循环又称为“后测试型”循环,参照其直到型循环结构对应的程序框图,说说计算机是按怎样的顺序执行UNTIL语句的?(让学生模仿执行WHILE语句的表述)
从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。
〖提问〗:通过对照,大家觉得WHILE型语句与UNTIL型语句之间有什么区别呢?
区别:在WHILE语句中,是当条件满足时执行循环体,而在UNTIL语句中,是当条件不满足时执行循环体。
【例题精析】
〖例1〗:编写程序,计算自然数1+2+3+……+99+100的和。
分析:这是一个累加问题。我们可以用WHILE型语句,也可以用UNTIL型语句。由此看来,解决问题的方法不是惟一的,当然程序的设计也是有多种的,只是程序简单与复杂的问题。
程序: WHILE型: UNTIL型:
〖例2〗:根据1.1.2中的图1.1-2,将程序框图转化为程序语句。
分析:仔细观察,该程序框图中既有条件结构,又有循环结构。
程序:
〖思考〗:上述判定质数的算法是否还能有所改进?(让学生课后思考。)
〖例3〗:某纺织厂1997年的生产总值为300万元,如果年生产增产率为5﹪,计算最早在哪一年生产总值超过400万元。
分析:从1997年底开始,经过x年后生产总值为300×(1+5﹪)x,可将1997年生产总值赋给变量a,然后对其进行累乘,用n作为计数变量进行循环,直到a的值超过400万元为止。
解:程序框图为: 程序:
〖例4〗:用描点法作函数的图象时,需要求出自变量与函数的一组对应值。编写程序,连续输入自变量的11个取值,输出相应的函数值。
【课堂精练】
1.设计一个计算10个数平均数的算法,并画出流程图,设计出程序.
2.写出1到1000中3的倍数的一个算法,并画出框图,设计出程序。
3.设计出用二分法求方程的近似解的程序。
4. 练习 1.2
【课堂小结】
本节课主要学习了循环语句的结构、特点、作用以及用法,并懂得利用解决一些简单问题。有些复杂问题可用两层甚至多层循环解决。注意内外层的衔接,可以从循环体内转到循环体外,但不允许从循环体外转入循环体内。
循环语句主要用来实现算法中的循环结构,在处理一些需要反复执行的运算任务。如累加求和,累乘求积等问题中常用到。
【课后作业】
1. P33 习题1.2 A组 3 P34 习题1.2 B组 2. 4
2.试设计一个生活中某个简单问题或是常见数学问题,并利用所学基本算法语句等知识编程。(要求所设计问题利用条件语句或循环语句)
满足条件?
循环体


WHILE 条件
循环体
WEND
满足条件?
循环体


DO
循环体
LOOP UNTIL 条件
21世纪教育网 -- 中国最大型、最专业的中小学教育资源门户网站。 版权所有@21世纪教育网1.1.2 程序框图与算法的基本逻辑结构习题课
一、顺序结构
例1.半径为的圆的面积计算公式为,当时,写出计算圆面积的算法,画出流程图.
二、条件结构
例2.某铁路客运部门规定甲、乙两地之间旅客托运行李的费用为
其中(单位:)为行李的重量.
试给出计算费用(单位:元)的一个算法,并画出流程图.
例3.设计求解一元二次方程的一个算法,并画出流程图.
思考:如果要输出根的详细信息(区分是两个相等的实数根还是不等的实数根),如何修改上述算法和流程图?
例4.设计一个求任意数的绝对值的算法,并画出流程图.
三、循环结构
例5.设计一个计算10个数平均数的算法,并画出流程图.
例6.根据给出的算法,分析该算法所解决的是什么问题,并画出相应的流程图?
S1 ;
S2 ;
S3 输入;
S4 ;
S5 ;
S6 若不大于100,转S3;否则,转S7
S7 ;
S8 输出.1.3.2 算法案例---秦九韶算法
一、教学要求:了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数、提高计算效率的实质;理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用.
二、教学过程:
[复习准备]
1. 分别用辗转相除法和更相减损术求出两个正数623和1513的最大公约数.
2. 设计一个求多项式当时的值的算法. (学生自己提出一般的解决方案:将代入多项式进行计算即可)
提问:上述算法在计算时共用了多少次乘法运算?多少次加法运算?此方案有何优缺点?(上述算法一共做了5+4+3+2+1=15次乘法运算,5次加法运算. 优点是简单、易懂;缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高.)
[讲授新课]
1. 教学秦九韶算法:
① 提问:在计算的幂值时,可以利用前面的计算结果,以减少计算量,即先计算,然后依次计算,,的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法 (上述算法一共做了4次乘法运算,5次加法运算)
② 结论:第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.
③ 更有效的一种算法是:将多项式变形为

依次计算 ,



故.
――这种算法就是“秦九韶算法”. (注意变形,强调格式)
④ 练习:用秦九韶算法求多项式当时的值.
⑤ 如何用秦九韶算法完成一般多项式的求值问题?
改写:.
首先计算最内层括号内一次多项式的值,即,然后由内向外逐层计算一次多项式的值,即,,,.
⑥ 结论:秦九韶算法将求次多项式的值转化为求个一次多项式的值,整个过程只需 次乘法运算和次加法运算;观察上述个一次式,可发出的计算要用到的值,若令,可得到下列递推公式:. 这是一个反复执行的步骤,因此可用循环结构来实现.
试画出程序框图,并设计出程序;
程序框图: 程序设计:
⑦ 练习:用秦九韶算法求多项式当时的值并画出程序框图.
[小结] 秦九韶算法的特点及其程序设计
三、巩固练习:1、练习:教材P45第2题  2、作业:教材P48第2题1.3.2 算法案例---秦九韶算法
一、教学要求:了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数、提高计算效率的实质;理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用.
二、教学过程:
[复习准备]
1. 分别用辗转相除法和更相减损术求出两个正数623和1513的最大公约数.
2. 设计一个求多项式当时的值的算法. (学生自己提出一般的解决方案:将代入多项式进行计算即可)
提问:上述算法在计算时共用了多少次乘法运算?多少次加法运算?此方案有何优缺点?(上述算法一共做了5+4+3+2+1=15次乘法运算,5次加法运算. 优点是简单、易懂;缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高.)
[讲授新课]
1. 教学秦九韶算法:
① 提问:在计算的幂值时,可以利用前面的计算结果,以减少计算量,即先计算,然后依次计算,,的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法 (上述算法一共做了4次乘法运算,5次加法运算)
② 结论:第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法能更快地得到结果.
③ 更有效的一种算法是:将多项式变形为

依次计算 ,



故.
――这种算法就是“秦九韶算法”. (注意变形,强调格式)
④ 练习:用秦九韶算法求多项式当时的值.
(学生板书师生共评教师提问:上述算法共需多少次乘法运算?多少次加法运算?)
⑤ 如何用秦九韶算法完成一般多项式的求值问题?
改写:.
首先计算最内层括号内一次多项式的值,即,然后由内向外逐层计算一次多项式的值,即,,,.
⑥ 结论:秦九韶算法将求次多项式的值转化为求个一次多项式的值,整个过程只需 次乘法运算和次加法运算;观察上述个一次式,可发出的计算要用到的值,若令,可得到下列递推公式:. 这是一个反复执行的步骤,因此可用循环结构来实现.
试画出程序框图,并设计出程序;
程序框图: 程序设计:
⑦ 练习:用秦九韶算法求多项式当时的值并画出程序框图.
[小结] 秦九韶算法的特点及其程序设计
三、巩固练习:1、练习:教材P45第2题  2、作业:教材P48第2题1.1.2 程序框图与算法的基本逻辑结构
一、教学目标:
1、知识与技能:掌握程序框图的概念;会用通用的图形符号表示算法。
2、过程与方法:通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图。
二、重点与难点:重点是程序框图的基本概念、基本图形符号。
三、学法与教学用具:
1、通过上节学习我们知道,算法就是解决问题的步骤,在我们利用计算机解决问题的时候,首先我们要设计计算机程序,在设计计算机程序时我们首先要画出程序运行的流程图,使整个程序的执行过程直观化,使抽象的问题就得十分清晰和具体。
2、我们在学习这部分内容时,首先要弄清各种图形符号的意义,明确每个图形符号的使用环境,图形符号间的联结方式。
四、教学设想:
1、创设情境:
算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表示它。
2、程序框图:
(1)起止框图: 起止框是任何流程图都不可缺少的,它表明程序的开始和结束,所以一个完整的流程图的首末两端必须是起止框。
(2)输入、输出框: 表示数据的输入或结果的输出,它可用在算法中的任何需要输入、输出的位置。
(3)处理框: 它是采用来赋值、执行计算语句、传送运算结果的图形符号。图1-1中出现了两个处理框。第一个处理框的作用是计算D=a11a22-a21a12的值,第二个处理框的作用是计算x1=(b1a22-b2a12)/D,x2=(b2a11-b1a21)/D的值。
(4)判断框: 判断框一般有一个入口和两个出口,有时也有多个出口,它是惟一的具有两个或两个以上出口的符号,在只有两个出口的情形中,通常都分成“是”与“否”(也可用“Y”与“N”)两个分支,在图1-1中,通过判断框对D的值进行判断,若判断框中的式子是D=0,则说明D=0时由标有“是”的分支处理数据;若D≠0,则由标有“否”的分支处理数据。例如,我们要打印x的绝对值,可以设计如下框图。
从图中可以看到由判断框分出两个分支,构成一个选择性结构,其中选择的标准是“x≥0”,若符合这个条件,则按照“是”分支继续往下执行;若不符合这个条件,则按照“否”分支继续往下执行,这样的话,打印出的结果总是x 的绝对值。
在学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:
(1)使用标准的图形符号。
(2)框图一般按从上到下、从左到右的方向画。
(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过一个退出点的惟一符号。
(4)判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。
(5)在图形符号内描述的语言要非常简练清楚。
练习:写出下列问题的一个算法框图:
1. 有A、B、C三个相同规格的玻璃瓶,A装着酒精,B装着醋,C为空瓶,请设计一个算法,把A、B瓶中的酒精与醋互换.
2.写出解方程的一个算法.
3.已知,,写出求直线AB斜率的一个算法.
2.算法的基本逻辑结构
1.顺序结构:顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。
例1:已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。
算法分析:这是一个简单的问题,只需先算出p的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。
程序框图:
2.条件结构:根据指定条件选择执行不同指令的控制结构。
例2:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的程序框图。
算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。
程序框图:
3.循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。
循环结构又称重复结构,循环结构可细分为两类:
(1)一类是当型循环结构,如图所示。
(2)另一类是直到型循环结构,如下图所示。
当型循环:在每次执行循环体前对控制循环条件进行判断,当条件满足时执行循环体,不满足则停止.
直到型循环:在执行了一次循环体之后,对控制循环体进行判断,当条件不满足时执行循环体,满足则停止.
例3:设计一个计算1+2+…+100的值的算法,并画出程序框图。
算法分析:只需要一个累加变量和一个计数变量,将累加变量的初始值为0,计数变量的值可以从1到100。
程序框图:
3、课堂小结:本节课主要讲述了程序框图的基本知识,包括常用的图形符号、算法的基本逻辑结构,算法的基本逻辑结构有三种,即顺序结构、条件结构和循环结构。其中顺序结构是最简单的结构,也是最基本的结构,循环结构必然包含条件结构,所以这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过这三种结构来表达
五、作业:
1.设x为为一个正整数,规定如下运算:若x为奇数,则求3x+2;若x为偶数,则为5x,写出算法,并画出程序框图。
2.情境:北京获得了2008年第29届奥运会的主办权。你知道在申奥的最后阶段,国际奥委会是如何通过投票决定主办权归属的吗?
对遴选出的5个申办城市进行表决的操作程序是:首先进行第一轮投票,如果有一个
城市得票超过总票数的一半,那么该城市就获得举办权;如果所有申办城市得票数都
不超过总票数的一半,则将得票数最少的城市淘汰,然后重复上述过程,直到选出一
个申办城市为止。
写出上述投票过程的一个算法,并画出程序框图。
3.写出求值的一个算法,并画出流程图.
4.某高中男子体育小组的50米跑成绩为(单位:):
,,,,,,,,。设计一个算法,从这些成绩中找出所有小于的成绩,并画出流程图。本资料来自于资源最齐全的21世纪教育网www.21cnjy.com
1.2.2条件语句
一、教学目标:
(1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。
(2)会应用条件语句和循环语句编写程序。
二、教学设计
【探究新知】
(一)条件语句
算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF-THEN-ELSE格式)
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
在某些情况下,也可以只使用IF-THEN语句:(即IF-THEN格式)
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)
条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。
【例题精析】
〖例1〗编写一个程序,求实数的绝对值。
〖例2〗:编写程序,输入一元二次方程的系数,输出它的实数根。
分析:先把解决问题的思路用程序框图表示出来,然后再根据程序框图给出的算法步骤,逐步把算法用对应的程序语句表达出来。
算法分析:我们知道,若判别式,原方程有两个不相等的实数根、;若,原方程有两个相等的实数根; 若,原方程没有实数根。也就是说,在求解方程之前,需要首先判断判别式的符号。因此,这个过程可以用算法中的条件结构来实现。
又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算和之前,先计算,。程序框图:(参照课本)
程序:(如右图所示)
注:SQR()和ABS()是两个函数,分别用来求某个数的平方根和绝对值。
即 ,
〖例3〗:编写程序,使得任意输入的3个整数按从大到小的顺序输出。
算法分析:用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≥b≥c.具体操作步骤如下。
第一步:输入3个整数a,b,c.
第二步:将a与b比较,并把小者赋给b,大者赋给a.
第三步:将a与c比较. 并把小者赋给c,大者赋给a,此时a已是三者中最大的。
第四步:将b与c比较,并把小者赋给c,大者赋给b,此时a,b,c已按从大到小的顺序排列好。
第五步:按顺序输出a,b,c.
程序框图:(参照课本)
程序:(如右框图所示)
〖补例〗:铁路部门托运行李的收费方法如下:
y是收费额(单位:元),x是行李重量(单位:kg),当0<x≤20时,按0.35元/kg收费,当x>20kg时,20kg的部分按0.35元/kg,超出20kg的部分,则按0.65元/kg收费,请根据上述收费方法编写程序。
分析:首先由题意得:该函数是个分段函数。需要对行李重量作出判断,因此,这个过程可以用算法中的条件结构来实现。
程序: INPUT “请输入旅客行李的重量(kg)x=”;x
IF x>0 AND x<=20 THEN
y=0.35*x
ELSE
y=0.35*20+0.65*(x-20)
END IF
PRINT “该旅客行李托运费为:”;y
END
【课堂精练】
1. 练习1——4(题略)
分析:如果有两个或是两个以上的并列条件时,用“AND”把它们连接起来。
参考答案: INPUT “请输入三个正数a,b,c=”; a,b,c
IF a+b>c AND a+c>b AND b+c>a THEN
PRINT “以下列三个数:”;a,b,c,“可以构成三角形。”
ELSE
PRINT “以下列三个数:”;a,b,c,“不可以构成三角形!”
END IF
END
满足条件?
语句1
语句2


IF 条件 THEN
语句1
ELSE
语句2
END IF
满足条件?
语句


IF 条件 THEN
语句
END IF
INPUT “Please input a,b,c =”;a,b,c
d=b*b-4*a*c
p=-b/(2*a)
q=SQR(ABS(d))/(2*a)
IF d>=0 THEN
x1=p+q
x2=p-q
IF x1=x2 THEN
PRINT “One real root:”;x1
ELSE
PRINT “Two real roots:x1”;x1,“and x2”;x2
END IF
ELSE
PRINT “No real root!”
END IF
END
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
21世纪教育网 -- 中国最大型、最专业的中小学教育资源门户网站。 版权所有@21世纪教育网本资料来自于资源最齐全的21世纪教育网www.21cnjy.com
1.2.2条件语句
一、教学目标:
(1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。
(2)会应用条件语句和循环语句编写程序。
二、教学设计
【探究新知】
(一)条件语句
算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF-THEN-ELSE格式)
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
在某些情况下,也可以只使用IF-THEN语句:(即IF-THEN格式)
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)
条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。
【例题精析】
〖例1〗编写一个程序,求实数的绝对值。
〖例2〗:编写程序,输入一元二次方程的系数,输出它的实数根。
分析:先把解决问题的思路用程序框图表示出来,然后再根据程序框图给出的算法步骤,逐步把算法用对应的程序语句表达出来。
算法分析:我们知道,若判别式,原方程有两个不相等的实数根、;若,原方程有两个相等的实数根; 若,原方程没有实数根。也就是说,在求解方程之前,需要首先判断判别式的符号。因此,这个过程可以用算法中的条件结构来实现。
又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算和之前,先计算,。程序框图:(参照课本)
注:SQR()和ABS()是两个函数,分别用来求某个数的平方根和绝对值。
即 ,
〖例3〗:编写程序,使得任意输入的3个整数按从大到小的顺序输出。
算法分析:用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≥b≥c.具体操作步骤如下。
第一步:输入3个整数a,b,c.
第二步:将a与b比较,并把小者赋给b,大者赋给a.
第三步:将a与c比较. 并把小者赋给c,大者赋给a,此时a已是三者中最大的。
第四步:将b与c比较,并把小者赋给c,大者赋给b,此时a,b,c已按从大到小的顺序排列好。
第五步:按顺序输出a,b,c.
程序框图: 程序设计:
〖例4〗:铁路部门托运行李的收费方法如下:
y是收费额(单位:元),x是行李重量(单位:kg),当0<x≤20时,按0.35元/kg收费,当x>20kg时,20kg的部分按0.35元/kg,超出20kg的部分,则按0.65元/kg收费,请根据上述收费方法编写程序。
分析:首先由题意得:该函数是个分段函数。需要对行李重量作出判断,因此,这个过程可以用算法中的条件结构来实现。
【课堂精练】
1. 练习1——4(题略)
【课后作业】
P33,A组 1,2 B组1,3 P20 习题1.1 A组 3 设计出程序
补充:
1.已知,,写出求直线AB斜率的一个算法,画出程序框图,设计出程序.
2.任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的程序框图,并设计出程序。
满足条件?
语句1
语句2


IF 条件 THEN
语句1
ELSE
语句2
END IF
满足条件?
语句


IF 条件 THEN
语句
END IF
21世纪教育网 -- 中国最大型、最专业的中小学教育资源门户网站。 版权所有@21世纪教育网本资料来自于资源最齐全的21世纪教育网www.21cnjy.com
1.2.3 循环语句
一、教学目标:
(1)正确理解循环语句的概念,并掌握其结构的区别与联系。
(2)会应用循环语句编写程序。
二、教学设计
【创设情境】
试求自然数1+2+3+……+99+100的和。
显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的循环语句
【循环语句】
算法中的循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。即WHILE语句和UNTIL语句。
(1)WHILE语句的一般格式是:
其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构框图为:(如上右图)
(2)UNTIL语句的一般格式是:
其对应的程序结构框图为:(如上右图)
〖思考〗:直到型循环又称为“后测试型”循环,参照其直到型循环结构对应的程序框图,说说计算机是按怎样的顺序执行UNTIL语句的?(让学生模仿执行WHILE语句的表述)
从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。
〖提问〗:通过对照,大家觉得WHILE型语句与UNTIL型语句之间有什么区别呢?(让学生表达自己的感受)
区别:在WHILE语句中,是当条件满足时执行循环体,而在UNTIL语句中,是当条件不满足时执行循环体。
【例题精析】
〖例1〗:编写程序,计算自然数1+2+3+……+99+100的和。
分析:这是一个累加问题。我们可以用WHILE型语句,也可以用UNTIL型语句。由此看来,解决问题的方法不是惟一的,当然程序的设计也是有多种的,只是程序简单与复杂的问题。
程序: WHILE型: UNTIL型:
〖例2〗:根据1.1.2中的图1.1-2,将程序框图转化为程序语句。
分析:仔细观察,该程序框图中既有条件结构,又有循环结构。
程序:
〖思考〗:上述判定质数的算法是否还能有所改进?(让学生课后思考。)
〖例3〗:某纺织厂1997年的生产总值为300万元,如果年生产增产率为5﹪,计算最早在哪一年生产总值超过400万元。
分析:从1997年底开始,经过x年后生产总值为300×(1+5﹪)x,可将1997年生产总值赋给变量a,然后对其进行累乘,用n作为计数变量进行循环,直到a的值超过400万元为止。
解:程序框图为: 程序:
〖例4〗:用描点法作函数的图象时,需要求出自变量与函数的一组对应值。编写程序,连续输入自变量的11个取值,输出相应的函数值。
见课本P30
【课堂精练】
1.设计一个计算10个数平均数的算法,并画出流程图,设计出程序.
2.写出1到1000中3的倍数的一个算法,并画出框图,设计出程序。
3.设计出用二分法求方程的近似解的程序。
4. 练习 1.2
参考答案:
2.解:程序: X=1
WHILE X<=20
Y=X^2-3*X+5
X=X+1
PRINT “Y=”;Y
WEND
END
3.解:程序: INPUT “请输入正整数n=”;n
a=1
i=1
WHILE i<=n
a=a*i
i=i+1
WEND
PRINT “n!=” ;a
END
【课堂小结】
本节课主要学习了条件语句和循环语句的结构、特点、作用以及用法,并懂得利用解决一些简单问题。条件语句使程序执行产生的分支,根据不同的条件执行不同的路线,使复杂问题简单化。有些复杂问题可用两层甚至多层循环解决。注意内外层的衔接,可以从循环体内转到循环体外,但不允许从循环体外转入循环体内。
条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套。
循环语句主要用来实现算法中的循环结构,在处理一些需要反复执行的运算任务。如累加求和,累乘求积等问题中常用到。
【评价设计】
1. P33 习题1.2 A组 3
P34 习题1.2 B组 2. 4
2.试设计一个生活中某个简单问题或是常见数学问题,并利用所学基本算法语句等知识编程。(要求所设计问题利用条件语句或循环语句)
满足条件?
循环体


WHILE 条件
循环体
WEND
满足条件?
循环体


DO
循环体
LOOP UNTIL 条件
i=1
sum=0
DO
sum=sum+i
i=i+1
LOOP UNTIL i>100
PRINT sum
END
i=1
sum=0
WHLIE i<=100
sum=sum+i
i=i+1
WEND
PRINT sum
END
INPUT “n=”;n
flag=1
IF n>2 THEN
d=2
WHILE d<=n-1 AND flag=1
IF n MOD d=0 THEN
flag=0
ELSE
d=d+1
END IF
WEND
ELSE
IF flag=1 THEN
PRINT n;“是质数。”
ELSE
PRINT n;“不是质数。”
END IF
END IF
END
开始
a>400
a=a*p
a=300,p=1.05,n=1997
n=n+1
输出n
结束


a=300
p=1.05
n=1997
DO
a=a*p
n=n+1
LOOP UNTIL a>400
PRINT n
END
21世纪教育网 -- 中国最大型、最专业的中小学教育资源门户网站。 版权所有@21世纪教育网1.3.3 算法案例---进位制
一、教学要求:了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换;学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律.
二、教学过程:
[复习准备]
1. 试用秦九韶算法求多项式当时的值,分析此过程共需多少次乘法运算?多少次加法运算?
2. 提问:生活中我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制,旧式的秤是十六进制的,计算一打数值时是12进制的......那么什么是进位制?不同的进位制之间又有什么联系呢?
[讲授新课]
1. 教学进位制的概念:
① 进位制是人们为了计数和运算方便而约定的记数系统,“满几进一”就是几进制,几进制的基数就是几. 如:“满十进一”就是十进制,“满二进一”就是二进制. 同一个数可以用不同的进位制来表示,比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的. 表示各种进位制数一般在数字右下脚加注来表示,如上例中:
② 一般地,任意一个进制数都可以表示成不同位上数字与基数的幂的乘积之和的形式,即如:把化为十进制数,
=125+124+023+022+121+120=32+16+2+1=51.
把八进制数化为十进制数,
.
2. 教学进位制之间的互化:
①例1:把二进制数化为十进制数.
②练习:将、转化成十进制数.
③例2、把89化为二进制数.
分析:根据进位制的定义,二进制就是“满二进一”,可以用2连续去除89或所得商,然后取余数.
上述方法也可以推广为把十进制化为k进制数的算法,这种算法成为除k取余法.
设计一个程序,实现“除k取余法”.
程序框图: 程序设计:
④练习:用除k取余法将89化为四进制数、六进制数.
⑤例3、把二进制数化为十进制数.
3. 小结:进位制的定义;进位制之间的互化.
三、巩固练习:1、练习:教材P45第3题  2、作业:教材P48第3题