1.1.1算法的概念
一、三维目标:
知识与技能:
(1)了解算法的含义,体会算法的思想。(2)能够用自然语言叙述算法。(3)掌握正确的算法应满足的要求。(4)会写出解线性方程(组)的算法。(5)会写出一个求有限整数序列中的最大值的算法。(6)会应用Scilab求解方程组。
过程与方法:
通过求解二元一次方程组,体会解方程的一般性步骤,从而得到一个解二元一次方程组的步骤,这些步骤就是算法,不同的问题有不同的算法。由于思考问题的角度不同,同一个问题也可能有多个算法,能模仿求解二元一次方程组的步骤,写出一个求有限整数序列中的最大值的算法。
情感态度与价值观:
通过本节的学习,使我们对计算机的算法语言有一个基本的了解,明确算法的要求,认识到计算机是人类征服自然的一各有力工具,进一步提高探索、认识世界的能力。
二、重点与难点:
重点:算法的含义、解二元一次方程组和判断一个数为质数的算法设计。
难点:把自然语言转化为算法语言。
三、学法与教学用具:
学法:1、写出的算法,必须能解决一类问题(如:判断一个整数n(n>1)是否为质数;求任意一个方程的近似解;……),并且能够重复使用。
2、要使算法尽量简单、步骤尽量少。
3、要保证算法正确,且计算机能够执行,如:让计算机计算1×2×3×4×5是可以做到的,但让计算机去执行“倒一杯水”“替我理发”等则是做不到的。
教学用具:电脑,计算器,图形计算器
四、教学设想:
创设情境:
算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。我们知道解一元二次方程的算法,求解一元一次不等式、一元二次不等式的算法,解线性方程组的算法,求两个数的最大公因数的算法等。因此,算法其实是重要的数学对象。
探索研究
算法(algorithm)一词源于算术(algorism),即算术方法,是指一个由已知推求未知的运算过程。后来,人们把它推广到一般,把进行某一工作的方法和步骤称为算法。
广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。比如解方程的算法、函数求值的算法、作图的算法,等等。
例题分析:
例1
任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数 [1] 做出判定。
算法分析:根据质数的定义,很容易设计出下面的步骤:
第一步:判断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)普遍性
典例剖析:
1、基本概念题
x-2y=-1,①
例3
写出解二元一次方程组
的算法
2x+y=1②
解:第一步,②-①×2得5y=3;③
第二步,解③得y=3/5;
第三步,将y=3/5代入①,得x=1/5
学生做一做:对于一般的二元一次方程组来说,上述步骤应该怎样进一步完善?
老师评一评:本题的算法是由加减消元法求解的,这个算法也适合一般的二元一次方程组的解法。下面写出求方程组的解的算法:
第一步:②×A1-①×A2,得(A1B2-A2B1)y+A1C2-A2C1=0;③
第二步:解③,得;
第三步:将代入①,得。
此时我们得到了二元一次方程组的求解公式,利用此公司可得到倒2的另一个算法:
第一步:取A1=1,B1=-2,C1=1,A2=2,B2=1,C2=-1;
第二步:计算与
第三步:输出运算结果。
可见利用上述算法,更加有利于上机执行与操作。
基础知识应用题
例4
写出一个求有限整数列中的最大值的算法。
解:算法如下。
S1
先假定序列中的第一个整数为“最大值”。
S2
将序列中的下一个整数值与“最大值”比较,如果它大于此“最大值”,这时你就假定“最大值”是这个整数。
S3
如果序列中还有其他整数,重复S2。
S4
在序列中一直到没有可比的数为止,这时假定的“最大值”就是这个序列中的最大值。
学生做一做
写出对任意3个整数a,b,c求出最大值的算法。
老师评一评
在例2中我们是用自然语言来描述算法的,下面我们用数学语言来描述本题的算法。
S1
max=a
S2
如果b>max,
则max=b.
S3
如果C>max,
则max=c.
S4
max就是a,b,c中的最大值。
综合应用题
例5
写出求1+2+3+4+5+6的一个算法。
分析:可以按逐一相加的程序进行,也可以利用公式1+2+…+n=进行,也可以根据加法运算律简化运算过程。
解:算法1:
S1:计算1+2得到3;
S2:将第一步中的运算结果3与3相加得到6;
S3:将第二步中的运算结果6与4相加得到10;
S4:将第三步中的运算结果10与5相加得到15;
S5:将第四步中的运算结果15与6相加得到21。
算法2:
S1:取n=6;
S2:计算;
S3:输出运算结果。
算法3:
S1:将原式变形为(1+6)+(2+5)+(3+4)=3×7;
S2:计算3×7;
S3:输出运算结果。
小结:算法1是最原始的方法,最为繁琐,步骤较多,当加数较大时,比如1+2+3+…+10000,再用这种方法是行不通的;算法2与算法3都是比较简单的算法,但比较而言,算法2最为简单,且易于在计算机上执行操作。
学生做一做
求1×3×5×7×9×11的值,写出其算法。
老师评一评
算法1;第一步,先求1×3,得到结果3;
第二步,将第一步所得结果3再乘以5,得到结果15;
第三步,再将15乘以7,得到结果105;
第四步,再将105乘以9,得到945;
第五步,再将945乘以11,得到10395,即是最后结果。
算法2:用P表示被乘数,i表示乘数。
S1
使P=1。
S2
使i=3
S3
使P=P×i
S4
使i=i+2
S5
若i≤11,则返回到S3继续执行;否则算法结束。
小结
由于计算机动是高速计算的自动机器,实现循环的语句。因此,上述算法2不仅是正确的,而且是在计算机上能够实现的较好的算法。在上面的算法中,S3,S4,S5构成一个完整的循环,这里需要说明的是,每经过一次循环之后,变量P、i的值都发生了变化,并且生循环一次之后都要在步骤S5对i的值进行检验,一旦发现i的值大于11时,立即停止循环,同时输出最后一个P的值,对于循环结构的详细情况,我们将在以后的学习中介绍。
4、课堂小结
本节课主要讲了算法的概念,算法就是解决问题的步骤,平时列论我们做什么事都离不开算法,算法的描述可以用自然语言,也可以用数学语言。
例如,某同学要在下午到体育馆参加比赛,比赛下午2时开始,请写出该同学从家里发到比赛地的算法。
若用自然语言来描述可写为
(1)1:00从家出发到公共汽车站
(2)1:10上公共汽车
(3)1:40到达体育馆
(4)1:45做准备活动。
(5)2:00比赛开始。
若用数学语言来描述可写为:
S1
1:00从家出发到公共汽车站
S2
1:10上公共汽车
S3
1:40到达体育馆
S4
1:45做准备活动
S5
2:00比赛开始
大家从中要以看出,实际上两种写法无本质区别,但我们在书写时应尽量用教学语言来描述,它的优越性在以后的学习中我们会体会到。
5、自我评价
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=;
第六步:输出运算结果
^11.3.1
辗转相除法与更相减损术
一、三维目标
(a)知识与技能
1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析。
2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序。
(b)过程与方法
在辗转相除法与更相减损术求最大公约数的学习过程中对比我们常见的约分求公因式的方法,比较它们在算法上的区别,并从程序的学习中体会数学的严谨,领会数学算法计算机处理的结合方式,初步掌握把数学算法转化成计算机语言的一般步骤。
(c)情态与价值观
1.通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献。
2.在学习古代数学家解决数学问题的方法的过程中培养严谨的逻辑思维能力,在利用算法解决数学问题的过程中培养理性的精神和动手实践的能力。
二、教学重难点
重点:理解辗转相除法与更相减损术求最大公约数的方法。
难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言。
三、学法与教学用具
学法:在理解最大公约数的基础上去发现辗转相除法与更相减损术中的数学规律,并能模仿已经学过的程序框图与算法语句设计出辗转相除法与更相减损术的程序框图与算法程序。
教学用具:电脑,计算器,图形计算器
四、教学设计
(一)创设情景,揭示课题
1.教师首先提出问题:在初中,我们已经学过求最大公约数的知识,你能求出18与30的公约数吗?
2.接着教师进一步提出问题,我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们的最大公约数?比如求8251与6105的最大公约数?这就是我们这一堂课所要探讨的内容。
(二)研探新知
1.辗转相除法
例1
求两个正数8251和6105的最大公约数。
(分析:8251与6105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)
解:8251=6105×1+2146
显然8251的最大公约数也必是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年左右首先提出的。利用辗转相除法求最大公约数的步骤如下:
第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;
第二步:若r0=0,则n为m,n的最大公约数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;
第三步:若r1=0,则r1为m,n的最大公约数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;
……
依次计算直至rn=0,此时所得到的rn-1即为所求的最大公约数。
练习:利用辗转相除法求两数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则得到,而更相减损术则以减数与差相等而得到
4.
辗转相除法与更相减损术计算的程序框图及程序
利用辗转相除法与更相减损术的计算算法,我们可以设计出程序框图以及BSAIC程序来在计算机上实现辗转相除法与更相减损术求最大公约数,下面由同学们设计相应框图并相互之间检查框图与程序的正确性,并在计算机上验证自己的结果。
(1)辗转相除法的程序框图及程序
程序框图:
程序:
INPUT
“m=”;m
INPUT
“n=”;n
IF
mTHEN
x=m
m=n
n=x
END
IF
r=m
MOD
n
WHILE
r<>0
r=m
MOD
n
m=n
n=r
WEND
PRINT
m
END
5.课堂练习
一.用辗转相除法求下列各组数的最大公约数,并在自己编写的BASIC程序中验证。
(1)225;135
(2)98;196
(3)72;168
(4)153;119
二.思考:用求质因数的方法可否求上述4组数的最大公约数?可否利用求质因数的算法设计出程序框图及程序?若能,在电脑上测试自己的程序;若不能说明无法实现的理由。
三。思考:利用辗转相除法是否可以求两数的最大公倍数?试设计程序框图并转换成程序在BASIC中实现。
6.小结:
辗转相除法与更相减损术求最大公约数的计算方法及完整算法程序的编写。
五、评价设计
作业:P38
A(1)B(2)
补充:设计更相减损术求最大公约数的程序框图1.2.1输入、输出语句和赋值语句
一、三维目标:
1、知识与技能
(1)正确理解输入语句、输出语句、赋值语句的结构。
(2)会写一些简单的程序。
(3)掌握赋值语句中的“=”的作用。
2、过程与方法
(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
END1.2.2-1.2.3条件语句和循环语句
一、三维目标:
1、知识与技能
(1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。
(2)会应用条件语句和循环语句编写程序。
2、过程与方法
经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力
3、情感态度与价值观
了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到循环语句在解决大量重复问题中起重要作用。减少大量繁琐的计算。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。
二、重点与难点
重点:条件语句和循环语句的步骤、结构及功能。
难点:会编写程序中的条件语句和循环语句。
三、学法与教学用具
计算机、图形计算器
四、教学设计
【创设情境】
试求自然数1+2+3+……+99+100的和。
显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的另外两种:条件语句和循环语句(板出课题)
【探究新知】
(一)条件语句
算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF-THEN-ELSE格式)
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
在某些情况下,也可以只使用IF-THEN语句:(即IF-THEN格式)
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)
条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。
【例题精析】
〖例1〗:编写程序,输入一元二次方程的系数,输出它的实数根。
分析:先把解决问题的思路用程序框图表示出来,然后再根据程序框图给出的算法步骤,逐步把算法用对应的程序语句表达出来。
算法分析:我们知道,若判别式,原方程有两个不相等的实数根、;若,原方程有两个相等的实数根;
若,原方程没有实数根。也就是说,在求解方程之前,需要首先判断判别式的符号。因此,这个过程可以用算法中的条件结构来实现。
又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算和之前,先计算,。程序框图:(参照课本)
程序:(如右图所示)
注:SQR()和ABS()是两个函数,分别用来求某个数的平方根和绝对值。
即
,
〖例2〗:编写程序,使得任意输入的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.
练习
2.(题略)
分析:如果有两个或是两个以上的并列条件时,用“AND”把它们连接起来。
2.
练习
1.(题略)
参考答案:
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
(二)循环语句
算法中的循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。即WHILE语句和UNTIL语句。
(1)WHILE语句的一般格式是:
其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构框图为:(如上右图)
(2)UNTIL语句的一般格式是:
其对应的程序结构框图为:(如上右图)
〖思考〗:直到型循环又称为“后测试型”循环,参照其直到型循环结构对应的程序框图,说说计算机是按怎样的顺序执行UNTIL语句的?(让学生模仿执行WHILE语句的表述)
从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP
UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。
〖提问〗:通过对照,大家觉得WHILE型语句与UNTIL型语句之间有什么区别呢?(让学生表达自己的感受)
区别:在WHILE语句中,是当条件满足时执行循环体,而在UNTIL语句中,是当条件不满足时执行循环体。
【例题精析】
〖例3〗:编写程序,计算自然数1+2+3+……+99+100的和。
分析:这是一个累加问题。我们可以用WHILE型语句,也可以用UNTIL型语句。由此看来,解决问题的方法不是惟一的,当然程序的设计也是有多种的,只是程序简单与复杂的问题。
程序:
WHILE型:
UNTIL型:
〖例4〗:根据1.1.2中的图1.1-2,将程序框图转化为程序语句。
分析:仔细观察,该程序框图中既有条件结构,又有循环结构。
程序:
〖思考〗:上述判定质数的算法是否还能有所改进?(让学生课后思考。)
〖补例〗:某纺织厂1997年的生产总值为300万元,如果年生产增产率为5﹪,计算最早在哪一年生产总值超过400万元。
分析:从1997年底开始,经过x年后生产总值为300×(1+5﹪)x,可将1997年生产总值赋给变量a,然后对其进行累乘,用n作为计数变量进行循环,直到a的值超过400万元为止。
解:
程序框图为:
程序:
【课堂精练】
1.
练习
2.
3(题略)
参考答案:
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.
P23
习题1.2
A组
3、4
P24
习题1.2
B组
2.
2.试设计一个生活中某个简单问题或是常见数学问题,并利用所学基本算法语句等知识编程。(要求所设计问题利用条件语句或循环语句)
满足条件?
语句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
满足条件?
循环体
是
否
WHILE
条件
循环体
WEND
满足条件?
循环体
是
否
DO
循环体
LOOP
UNTIL
条件
i=1
sum=0
WHLIE
i<=100
sum=sum+i
i=i+1
WEND
PRINT
sum
END
i=1
sum=0
DO
sum=sum+i
i=i+1
LOOP
UNTIL
i>100
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
END1.3.3
进位制
一、三维目标
(a)知识与技能
了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
(b)过程与方法
学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律。
(c)情态与价值观
领悟十进制,二进制的特点,了解计算机的电路与二进制的联系,进一步认识到计算机与数学的联系。
二、教学重难点
重点:各进位制表示数的方法及各进位制之间的转换
难点:除k去余法的理解以及各进位制之间转换的程序框图的设计
三、学法与教学用具
学法:在学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k去余法。
教学用具:电脑,计算器,图形计算器
四、教学设计
(一)创设情景,揭示课题
我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制.那么什么是进位制 不同的进位制之间又又什么联系呢
(二)研探新知
进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。
对于任何一个数,我们可以用不同的进位制来表示。比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的。
表示各种进位制数一般在数字右下脚加注来表示,如111001(2)表示二进制数,34(5)表示5进制数.
电子计算机一般都使用二进制,下面我们来进行二进制与十进制之间的转化
例1
把二进制数110011(2)化为十进制数.
解:110011=1
25+1
24+0
23+1
24+0
22+1
21+1
20
=32+16+2+1
=51
例2
把89化为二进制数.
解:根据二进制数满二进一的原则,可以用2连续去除89或所得商,然后去余数.
具体的计算方法如下:
89=2
44+1
44=2
22+0
22=2
11+0
11=2
5+1
5=2
2+1
所以:89=2
(2
(2
(2
(2
2+1)+1)+0)+0)+1
=1
26+0
25+1
24+1
23+0
22+0
21+1
20
=1011001(2)
这种算法叫做除2取余法,还可以用下面的除法算式表示:
把上式中的各步所得的余数从下到上排列即可得到89=1011001(2)
上述方法也可以推广为把十进制化为k进制数的算法,这种算法成为除k取余法.
当数字较小时,也可直接利用各进位制表示数的特点,都是以幂的形式来表示各位数字,比如2
103表示千位数字是2,所以可以直接求出各位数字.即把89转换为二进制数时,直接观察得出89与64最接近故89=64
1+25
同理:25=16
1+9
9=8
!+1
即89=64
1+16
1+8
!+1=1
26+1
24+1
23+1
20
位数
6
5
4
3
2
1
0
数字
1
0
1
1
0
0
1
即89=1011001(2)
练习:(1)把73转换为二进制数
(2)利用除k取余法把89转换为5进制数
把k进制数a(共有n位)转换为十进制数b的过程可以利用计算机程序来实现,语句为:
INPUT
a,k,n
i=1
b=0
WHILE
i<=n
t=GET
a[i]
b=b+t
k^(i-1)
i=i+1
WEND
PRINT
b
END
练习:(1)请根据上述程序画出程序框图.
参考程序框图:
(2)设计一个算法,实现把k进制数a(共有n位)转换为十进制数b的过程的程序中的GET函数的功能,输入一个正5位数,取出它的各位数字,并输出.
小结:
(1)进位制的概念及表示方法
(2)十进制与二进制之间转换的方法及计算机程序
五、评价设计
作业:P38
A(4)
补充:设计程序框图把一个八进制数23456转换成十进制数.
89
44
22
11
5
2
1
2
2
2
2
2
2
2
0
余数
1
0
0
1
1
0
1算法初步
一、三维目标
(a)知识与技能
1.明确算法的含义,熟悉算法的三种基本结构:顺序、条件和循环,以及基本的算法语句。
2.能熟练运用辗转相除法与更相减损术、秦九韶算法、排序、进位制等典型的算法知识解决同类问题。
(b)过程与方法
在复习旧知识的过程中把知识系统化,通过模仿、操作、探索,经历设计程序框图表达解决问题的过程。在具体问题的解决过程中进一步理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。
(c)情态与价值观
算法内容反映了时代的特点,同时也是中国数学课程内容的新特色。中国古代数学以算法为主要特征,取得了举世公认的伟大成就。现代信息技术的发展使算法重新焕发了前所未有的生机和活力,算法进入中学数学课程,既反映了时代的要求,也是中国古代数学思想在一个新的层次上的复兴,也就成为了中国数学课程的一个新的特色。
二、教学重难点
重点:算法的基本知识与算法对应的程序框图的设计
难点:与算法对应的程序框图的设计及算法程序的编写
三、学法与教学用具
学法:利用实例让学生体会基本的算法思想,提高逻辑思维能力,对比信息技术课程中的程序语言的学习和程序设计,了解数学算法与信息技术上的区别。通过案例的运用,引导学生体会算法的核心是一般意义上的解决问题策略的具体化。面临一个问题时,在分析、思考后获得了解决它的基本思路(解题策略),将这种思路具体化、条理化,用适当的方式表达出来(画出程序框图,转化为程序语句)。
教学用具:电脑,计算器,图形计算器
四、教学设想
一.本章的知识结构
二.知识梳理
(1)四种基本的程序框
(2)三种基本逻辑结构
顺序结构
条件结构
循环结构
(3)基本算法语句
(一)输入语句
单个变量
多个变量
(二)输出语句
(三)赋值语句
(四)条件语句
IF-THEN-ELSE格式
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
IF-THEN格式
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)
(五)循环语句
(1)WHILE语句
其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构框图为:(如上右图)
(2)UNTIL语句
其对应的程序结构框图为:(如上右图)
(4)算法案例
案例1
辗转相除法与更相减损术
案例2
秦九韶算法
案例3
排序法:直接插入排序法与冒泡排序法
案例4
进位制
三.典型例题
例1
写一个算法程序,计算1+2+3+…+n的值(要求可以输入任意大于1的正自然数)
解:INPUT
“n=”;n
i=1
sum=0
WHILE
i<=n
sum=sum+i
i=i+1
WEND
PRINT
sum
END
思考:在上述程序语句中我们使用了WHILE格式的循环语句,能不能使用UNTIL循环?
例2
设计一个程序框图对数字3,1,6,9,8进行排序(利用冒泡排序法)
思考:上述程序框图中哪些是顺序结构?哪些是条件结构?哪些是循环结构?
例3
把十进制数53转化为二进制数.
解:53=1×25+1×24+0×23+1×22+0×21+1×20
=110101(2)
例4
利用辗转相除法求3869与6497的最大公约数与最小公倍数。
解:6497=3869×1+2628
3869=2628×1+1241
2628=1241
2+146
1241=146×8+73
146=73×2+0
所以3869与6497的最大公约数为73
最小公倍数为3869×6497/73=344341
思考:上述计算方法能否设计为程序框图?
练习:P40
A(3)
(4)
五、评价设计
作业:P40
A(5)(6)
INPUT
“提示内容”;变量
INPUT
“提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,…
PRINT
“提示内容”;表达式
变量=表达式
满足条件?
语句1
语句2
是
否
IF
条件
THEN
语句1
ELSE
语句2
END
IF
满足条件?
语句
是
否
IF
条件
THEN
语句
END
IF
满足条件?
循环体
是
否
WHILE
条件
循环体
WEND
满足条件?
循环体
是
否
DO
循环体
LOOP
UNTIL
条件1.1.2
程序框图
一、三维目标:
1、知识与技能:
掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构;掌握画程序框图的基本规则,能正确画出程序框图。
2、过程与方法:
通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图。
3、情感态度与价值观:
通过本节的学习,使我们对程序框图有一个基本的了解;掌握算法语言的三种基本逻辑结构,明确程序框图的基本要求;认识到学习程序框图是我们学习计算机的一个基本步骤,也是我们学习计算机语言的必经之路。
二、重点与难点:
重点是程序框图的基本概念、基本图形符号和3种基本逻辑结构,难点是能综合运用这些知识正确地画出程序框图。
三、学法与教学用具:
1、通过上节学习我们知道,算法就是解决问题的步骤,在我们利用计算机解决问题的时候,首先我们要设计计算机程序,在设计计算机程序时我们首先要画出程序运行的流程图,使整个程序的执行过程直观化,使抽象的问题就得十分清晰和具体。有了这个流程图,再去设计程序就有了依据,从而就可以把整个程序用机器语言表述出来,因此程序框图是我们设计程序的基本和开端。
2、我们在学习这部分内容时,首先要弄清各种图形符号的意义,明确每个图形符号的使用环境,图形符号间的联结方式。例如“起止框”只能出现在整个流程图的首尾,它表示程序的开始或结束,其他图形符号也是如此,它们都有各自的使用环境和作用,这是我们在学习这部分知识时必须要注意的一个方面。另外,在我们描述算法或画程序框图时,必须遵循一定的逻辑结构,事实证明,无论如何复杂的问题,我们在设计它们的算法时,只需用顺序结构、条件结构和循环结构这三种基本逻辑就可以了,因此我们必须掌握并正确地运用这三种基本逻辑结构。
3、教学用具:电脑,计算器,图形计算器
四、教学设计:
1、创设情境:
算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表示它。
基本概念:
(1)起止框图:
起止框是任何流程图都不可缺少的,它表明程序的开始和结束,所以一个完整的流程图的首末两端必须是起止框。
(2)输入、输出框:
表示数据的输入或结果的输出,它可用在算法中的任何需要输入、输出的位置。图1-1中有三个输入、输出框。第一个出现在开始后的第一步,它的作用是输入未知数的系数a11,a12,a21,a22和常数项b1,b2,通过这一步,就可以把给定的数值写在输入框内,它实际上是把未知数的系数和常数项的值通知给了计算机,另外两个是输出框,它们分别位于由判断分出的两个分支中,它们表示最后给出的运算结果,左边分支中的输出分框负责输出D≠0时未知数x1,x2的值,右边分支中的输出框负责输出D=0时的结果,即输出无法求解信息。
(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)在图形符号内描述的语言要非常简练清楚。
2、典例剖析:
例1:已知x=4,y=2,画出计算w=3x+4y的值的程序框图。
解:程序框如下图所示:
开始
输入4,2
4和2分别是x和y的值
w=3×4+4×2
输出w
结束
小结:此图的输入框旁边加了一个注释框
,它的作用是对框中的数据或内容进行说明,它可以出现在任何位置。
基础知识应用题
1)顺序结构:顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。
例2:已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。
算法分析:这是一个简单的问题,只需先算出p的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。
程序框图:
2)条件结构:一些简单的算法可以用顺序结构来表示,但是这种结构无法对描述对象进行逻辑判断,并根据判断结果进行不同的处理。因此,需要有另一种逻辑结构来处理这类问题,这种结构叫做条件结构。它是根据指定打件选择执行不同指令的控制结构。
例3:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的程序框图。
算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。
程序框图:
a+b>c
,
a+c>b,
b+c>a是
否
否同时成立?
是
3)循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。
循环结构又称重复结构,循环结构可细分为两类:
(1)一类是当型循环结构,如图1-5(1)所示,它的功能是当给定的条件P1成立时,执行A框,A框执行完毕后,再判断条件P1 是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P1 不成立为止,此时不再执行A框,从b离开循环结构。
(2)另一类是直到型循环结构,如下图所示,它的功能是先执行,然后判断给定的条件P2是否成立,如果P2 仍然不成立,则继续执行A框,直到某一次给定的条件P2成立为止,此时不再执行A框,从b点离开循环结构。
A
A
P1?
P2?
不成立
不成立
成立
b
b
当型循环结构
直到型循环结构
(1)
(2)
例4:设计一个计算1+2+…+100的值的算法,并画出程序框图。
算法分析:只需要一个累加变量和一个计数变量,将累加变量的初始值为0,计数变量的值可以从1到100。
程序框图:
i≤100?
否
是
3、课堂小结:
本节课主要讲述了程序框图的基本知识,包括常用的图形符号、算法的基本逻辑结构,算法的基本逻辑结构有三种,即顺序结构、条件结构和循环结构。其中顺序结构是最简单的结构,也是最基本的结构,循环结构必然包含条件结构,所以这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过这三种结构来表达
4、自我评价:
1)设x为为一个正整数,规定如下运算:若x为奇数,则求3x+2;若x为偶数,则为5x,写出算法,并画出程序框图。
2)画出求21+22+23+…2100的值的程序框图。
5、评价标准:
1.解:算法如下。
S1
输入x
S2
若x为奇数,则输出A=3x+2;否则输出A=5x
S3
算法结束。
程序框图如下图:
i≤30
是
否
解:序框图如下图:
i≥100
否
是
6、作业:课本P11习题1.1
A组2、3
开始
p=(2+3+4)/2
s=√p(p-2)(p-3)(p-4)
输出s
结束
开始
输入a,b,c
不存在这样的三角形
存在这样的三角形
结束
开始
i=1
Sum=0
i=i+1
Sum=sum+i
输出sum
结束
开始
i=1
p=0
i=i+1
p=pxi
输出p
结束
开始
i=1
p=0
i=i+1
p=p+2i
输出p
结束秦九韶算法与排序
一、三维目标
(a)知识与技能
1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
(b)过程与方法
模仿秦九韶计算方法,体会古人计算构思的巧妙。能根据排序法中的直接插入排序法与冒泡排序法的步骤,了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用。
(c)情态与价值观
通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。通过对排序法的学习,领会数学计算与计算机计算的区别,充分认识信息技术对数学的促进。
二、教学重难点
重点:1.秦九韶算法的特点
2.两种排序法的排序步骤及计算机程序设计
难点:1.秦九韶算法的先进性理解
2.排序法的计算机程序设计
三、学法与教学用具
学法:1.探究秦九韶算法对比一般计算方法中计算次数的改变,体会科学的计算。
2.模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。
教学用具:电脑,计算器,图形计算器
四、教学设计
(一)创设情景,揭示课题
我们已经学过了多项式的计算,下面我们计算一下多项式
当时的值,并统计所做的计算的种类及计算次数。
根据我们的计算统计可以得出我们共需要10次乘法运算,5次加法运算。
我们把多项式变形为:再统计一下计算当时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。显然少了6次乘法运算。这种算法就叫秦九韶算法。
(二)研探新知
1.秦九韶计算多项式的方法
例1
已知一个5次多项式为
用秦九韶算法求这个多项式当时的值。
解:略
思考:(1)例1计算时需要多少次乘法计算?多少次加法计算?
(2)在利用秦九韶算法计算n次多项式当时需要多少次乘法计算和多少次加法计算?
练习:利用秦九韶算法计算
当时的值,并统计需要多少次乘法计算和多少次加法计算?
例2
设计利用秦九韶算法计算5次多项式
当时的值的程序框图。
解:程序框图如下:
练习:利用程序框图试编写BASIC程序并在计算机上测试自己的程序。
2.排序
在信息技术课中我们学习过电子表格,电子表格对分数的排序非常简单,那么电子计算机是怎么对数据进行排序的呢
阅读课本P30—P31面的内容,回答下面的问题:
(1)排序法中的直接插入排序法与冒泡排序法的步骤有什么区别
(2)冒泡法排序中对5个数字进行排序最多需要多少趟
(3)在冒泡法排序对5个数字进行排序的每一趟中需要比较大小几次
游戏:5位同学每人拿一个数字牌在讲台上演示冒泡排序法对5个数据4,11,7,9,6排序的过程,让学生通过观察叙述冒泡排序法的主要步骤.并结合步骤解决例3的问题.
例3
用冒泡排序法对数据7,5,3,9,1从小到大进行排序
解:P32
练习:写出用冒泡排序法对5个数据4,11,7,9,6排序的过程中每一趟排序的结果.
例4
设计冒泡排序法对5个数据进行排序的程序框图.
解:
程序框图如下:
思考:直接排序法的程序框图如何设计 可否把上述程序框图转化为程序
练习:用直接排序法对例3中的数据从小到大排序
3.小结:
(1)秦九韶算法计算多项式的值及程序设计
(2)数字排序法中的常见的两种排序法直接插入排序法与冒泡排序法
(3)冒泡法排序的计算机程序框图设计
五、评价设计
作业:P38
A(2)(3)
补充:设计程序框图对上述两组数进行排序