资源描述
第一章算法初步
1.1.1算法的概念
一、教学目标:
1、知识与技能:(1)了解算法的含义,体会算法的思想。(2)能够用自然语言叙述算法。(3)掌握正确的算法应满足的要求。(4)会写出解线性方程(组)的算法。(5)会写出一个求有限整数序列中的最大值的算法。(6)会应用Scilab求解方程组。
2、过程与方法:通过求解二元一次方程组,体会解方程的一般性步骤,从而得到一个解二元一次方程组的步骤,这些步骤就是算法,不同的问题有不同的算法。由于思考问题的角度不同,同一个问题也可能有多个算法,能模仿求解二元一次方程组的步骤,写出一个求有限整数序列中的最大值的算法。
3、情感态度与价值观:通过本节的学习,使我们对计算机的算法语言有一个基本的了解,明确算法的要求,认识到计算机是人类征服自然的一各有力工具,进一步提高探索、认识世界的能力。
二、重点与难点:
重点:算法的含义、解二元一次方程组和判断一个数为质数的算法设计。
难点:把自然语言转化为算法语言。
三、学法与教学用具:
学法:1、写出的算法,必须能解决一类问题(如:判断一个整数n(n>1)是否为质数;求任意一个方程的近似解;……),并且能够重复使用。
2、要使算法尽量简单、步骤尽量少。
3、要保证算法正确,且计算机能够执行,如:让计算机计算1×2×3×4×5是可以做到的,但让计算机去执行“倒一杯水”“替我理发”等则是做不到的。
教学用具:电脑,计算器,图形计算器
四、教学设想:
1、 创设情境:
算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。我们知道解一元二次方程的算法,求解一元一次不等式、一元二次不等式的算法,解线性方程组的算法,求两个数的最大公因数的算法等。因此,算法其实是重要的数学对象。
2、 探索研究
算法(algorithm)一词源于算术(algorism),即算术方法,是指一个由已知推求未知的运算过程。后来,人们把它推广到一般,把进行某一工作的方法和步骤称为算法。
广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。比如解方程的算法、函数求值的算法、作图的算法,等等。
3、 例题分析:
例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)普遍性
典例剖析:
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<x<3}。
评注:该题的解法具有一般性,下面给出形如ax2+bx+c>0的不等式的解的步骤(为方便,我们设a>0)如下:
第一步:计算△= ;
第二步:若△>0,示出方程两根(设x1>x2),则不等式解集为{x | x>x1或x<x2};
第三步:若△= 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=;
第六步:输出运算结果
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的值,再将它代入公式,最后输出结果,只用顺序结构就能够表达出算法。
程序框图:
开始
p=(2+3+4)/2
s=√p(p-2)(p-3)(p-4)
输出s
结束
2)条件结构:一些简单的算法可以用顺序结构来表示,但是这种结构无法对描述对象进行逻辑判断,并根据判断结果进行不同的处理。因此,需要有另一种逻辑结构来处理这类问题,这种结构叫做条件结构。它是根据指定打件选择执行不同指令的控制结构。
例3:任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,画出这个算法的程序框图。
算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。
程序框图:
开始
输入a,b,c
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=1
Sum=0
i=i+1
Sum=sum+i
i≤100?
否 是
输出sum
结束
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=1
p=0
i=i+1
p=pxi
i≤30? 是
否
输出p
结束
2、 解:序框图如下图:
开始
i=1
p=0
i=i+1
p=p+2i
i≥100? 否
是
输出p
结束
6、作业:课本P11习题1.1 A组2、3
1.2.1输入、输出语句和赋值语句(第一课时)
教学目标:
知识与技能
(1)正确理解输入语句、输出语句、赋值语句的结构。
(2)会写一些简单的程序。
(3)掌握赋值语句中的“=”的作用。
过程与方法
(1)让学生充分地感知、体验应用计算机解决数学问题的方法;并能初步操作、模仿。
(2)通过对现实生活情境的探究,尝试设计出解决问题的程序,理解逻辑推理的数学方法。
情感态度与价值观
通过本节内容的学习,使我们认识到计算机与人们生活密切相关,增强计算机应用意识,提高学生学习新知识的兴趣。
重点与难点
重点:正确理解输入语句、输出语句、赋值语句的作用。
难点:准确写出输入语句、输出语句、赋值语句。
学法与教学用具
计算机、图形计算器
教学设想
【创设情境】
在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具,如:听MP3,看电影,玩游戏,打字排版,画卡通画,处理数据等等,那么,计算机是怎样工作的呢?
计算机完成任何一项任务都需要算法,但是,我们用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的。因此还需要将算法用计算机能够理解的程序设计语言(programming language)翻译成计算机程序。
程序设计语言有很多种。如BASIC,Foxbase,C语言,C++,J++,VB等。为了实现算法中的三种基本的逻辑结构:顺序结构、条件结构和循环结构,各种程序设计语言中都包含下列基本的算法语句:
输入语句 输出语句 赋值语句 条件语句 循环语句
这就是这一节所要研究的主要内容——基本算法语句。今天,我们先一起来学习输入、输出语句和赋值语句。(板出课题)
语句n+1
语句n
【探究新知】
我们知道,顺序结构是任何一个算法都离不开的基本结构。输入、输出语句和赋值语句基本上对应于算法中的顺序结构。(如右图)计算机从上而下按照语句排列的顺序执行这些语句。
输入语句和输出语句分别用来实现算法的输入信息,输出结果的功能。如下面的例子:
用描点法作函数的图象时,需要求出自变量与函数的一组对应值。编写程序,分别计算当时的函数值。
程序:(教师可在课前准备好该程序,教学中直接调用运行)
INPUT “x=”;x
y=x^3+3*x^2-24*x+30
PRINT x
PRINT y
END
(学生先不必深究该程序如何得来,只要求懂得上机操作,模仿编写程序,通过运行自己编写的程序发现问题所在,进一步提高学生的模仿能力。)
〖提问〗:在这个程序中,你们觉得哪些是输入语句、输出语句和赋值语句呢?(同学们互相交流、议论、猜想、概括出结论。提示:“input”和“print”的中文意思等)
(一)输入语句
在该程序中的第1行中的INPUT语句就是输入语句。这个语句的一般格式是:
INPUT “提示内容”;变量
其中,“提示内容”一般是提示用户输入什么样的信息。如每次运行上述程序时,依次输入-5,-4,-3,-2,-1,0,1,2,3,4,5,计算机每次都把新输入的值赋给变量“x”,并按“x”新获得的值执行下面的语句。
INPUT语句不但可以给单个变量赋值,还可以给多个变量赋值,其格式为:
INPUT “提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,…
例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:
INPUT “数学,语文,英语”;a,b,c
注:①“提示内容”与变量之间必须用分号“;”隔开。
②各“提示内容”之间以及各变量之间必须用逗号“,”隔开。但最后的变量的后面不需要。
(二)输出语句
在该程序中,第3行和第4行中的PRINT语句是输出语句。它的一般格式是:
PRINT “提示内容”;表达式
同输入语句一样,表达式前也可以有“提示内容”。例如下面的语句可以输出斐波那契数列:
PRINT “The Fibonacci Progression is:”;
1 1 2 3 5 8 13 21 34 55 “…”
此时屏幕上显示:
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〗:编写程序,计算一个学生数学、语文、英语三门课的平均成绩。
分析:先写出算法,画出程序框图,再进行编程。
算法: 程序:
开始
输入a,b,c
结束
输出y
INPUT “数学=”;a
INPUT “语文=”;b
INPUT “英语=”;c
y=(a+b+c)/3
PRINT “The average=”;y
END
〖例2〗:给一个变量重复赋值。
A=10
A=A+10
PRINT A
END
程序:
[变式引申]:在此程序的基础上,设计一个程序,要求最后A的输出值是30。
(该变式的设计意图是学生加深对重复赋值的理解)
A=10
A=A+15
PRINT A
A=A+5
PRINT A
END
程序:
〖例3〗:交换两个变量A和B的值,并输出交换前后的值。
分析:引入一个中间变量X,将A的值赋予X,又将B的值赋予A,再将X的值赋予B,从而达到交换A,B的值。(比如交换装满水的两个水桶里的水需要再找一个空桶)
INPUT A
INPUT B
PRINT A,B
X=A
A=B
B=X
PRINT A,B
END
程序:
〖补例〗:编写一个程序,要求输入一个圆的半径,便能输出该圆的周长和面积。( 取3.14)
分析:设圆的半径为R,则圆的周长为,面积为,可以利用顺序结构中的INPUT语句,PRINT语句和赋值语句设计程序。
程序:
INPUT “半径为R=”;R
C=2*3.14*R
S=3.14*R^2
PRINT “该圆的周长为:”;C
PRINT “该圆的面积为:”;S
END
【课堂精练】
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.试对生活中某个简单问题或是常见数学问题,利用所学基本算法语句等知识来解决自己所提出的问题。要求写出算法,画程序框图,并写出程序设计。
1.2.2-1.2.3条件语句和循环语句(第二、三课时)
教学目标:
知识与技能
(1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。
(2)会应用条件语句和循环语句编写程序。
过程与方法
经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力
情感态度与价值观
了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到循环语句在解决大量重复问题中起重要作用。减少大量繁琐的计算。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。
重点与难点
重点:条件语句和循环语句的步骤、结构及功能。
难点:会编写程序中的条件语句和循环语句。
学法与教学用具
计算机、图形计算器
教学设想
【创设情境】
试求自然数1+2+3+……+99+100的和。
显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要”,因此,还需要进一步学习基本算法语句中的另外两种:条件语句和循环语句(板出课题)
【探究新知】
(一)条件语句
算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF-THEN-ELSE格式)
满足条件?
语句1
语句2
是
否
IF 条件 THEN
语句1
ELSE
语句2
END IF
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
在某些情况下,也可以只使用IF-THEN语句:(即IF-THEN格式)
满足条件?
语句
是
否
IF 条件 THEN
语句
END IF
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)
条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。
【例题精析】
〖例1〗:编写程序,输入一元二次方程的系数,输出它的实数根。
分析:先把解决问题的思路用程序框图表示出来,然后再根据程序框图给出的算法步骤,逐步把算法用对应的程序语句表达出来。
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
算法分析:我们知道,若判别式,原方程有两个不相等的实数根、;若,原方程有两个相等的实数根; 若,原方程没有实数根。也就是说,在求解方程之前,需要首先判断判别式的符号。因此,这个过程可以用算法中的条件结构来实现。
又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算和之前,先计算,。程序框图:(参照课本)
程序:(如右图所示)
注:SQR()和ABS()是两个函数,分别用来求某个数的平方根和绝对值。
即 ,
〖例2〗:编写程序,使得任意输入的3个整数按从大到小的顺序输出。
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
算法分析:用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≥b≥c.具体操作步骤如下。
第一步:输入3个整数a,b,c.
第二步:将a与b比较,并把小者赋给
展开阅读全文