§1.2.1输入、输出语句和赋值语句
珠海市斗门和风中学 邝国均
【教学目标】:
(1) 正确理解输入语句、输出语句、赋值语句的结构。
(2) 让学生充分地感知、体验应用计算机解决数学问题的方法;并能初步操作、模仿。
(3) 过实例,使学生理解3种基本的算法语句(输入语句、输出语句和赋值语句)的表示方法、结构和用法,能用这三种基本的算法语句表示算法,进一步体会算法的基本思想。
【教学重点】正确理解输入语句、输出语句、赋值语句的作用。
【教学难点】准确写出输入语句、输出语句、赋值语句。
【学法与教学用具】:
学法:
我们用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的。因此还需要将算法用计算机能够理解的程序设计语言翻译成计算机程序。程序设计语言有很多种。如BASIC,Foxbase,C语言,C++,J++,VB,VC,JB等。为了实现算法中的三种基本的逻辑结构:顺序结构、条件结构和循环结构,各种程序设计语言中都包含下列基本的算法语句:输入语句、输出语句、赋值语句条件语句和循环语句.今天,我们一起用类BASIC语言学习输入语句、输出语句、赋值语句。
教学用具:计算机,TI-voyage200图形计算器
【教学过程】
输入语句、输出语句和赋值语句基本上对应于算法中的顺序结构。下面的例题是用这三种基本的算法语句表示的一个算法。
例1:用描点法作函数y=x3+3x2-24x+30的图象时,需要求出自变量和函数的一组对应值。编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时的函数值。
程序:INPUT“x=”;x 输入语句
y=x^3+3*x^2-24*x+30 赋值语句
PRINT x 打印语句
PRINT y 打印语句
END
利用TI-voyage200图形计算器演示:
(学生先看,再跟着做, 学生先不必深究该程序如何得来,模仿编写程序,通过运行自己编写的程序发现问题所在,进一步提高学生的模仿能力,并观察与BASIC语言的异同)
探究:在这个程序中,你们觉得哪些是输入语句、输出语句和赋值语句呢?(同学们互相交流、议论、猜想、概括出结论。提示:“input”和“print”(”Disp”)的中文意思等)
输入语句
(1)输入语句的一般格式
(2)输入语句的作用是实现算法的输入信息功能;
(3)“提示内容”提示用户输入什么样的信息,变量是指程序在运行时其值是可以变化的量;
(4)输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式;
(5)提示内容与变量之间用分号“;”隔开,若输入多个变量,变量与变量之间用逗号“,”隔开。
输出语句
(1)输出语句的一般格式
(2)输出语句的作用是实现算法的输出结果功能;
(3)“提示内容”提示用户输入什么样的信息,表达式是指程序要输出的数据;
(4)输出语句可以输出常量、变量或表达式的值以及字符。
赋值语句
(1)赋值语句的一般格式
(2)赋值语句的作用是将表达式所代表的值赋给变量;
(3)赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的。赋值号的左右两边不能对换,它将赋值号右边的表达式的值赋给赋值号左边的变量;
(4)赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个数据、常量或算式;
(5)对于一个变量可以多次赋值。
注意:①赋值号左边只能是变量名字,而不能是表达式。如:2=X是错误的。
②赋值号左右不能对换。如“A=B”“B=A”的含义运行结果是不同的。
③不能利用赋值语句进行代数式的演算。(如化简、因式分解、解方程等)
④赋值号“=”与数学中的等号意义不同。
例2:编写程序,计算一个学生数学、语文、英语三门课的平均成绩。
分析:先写出算法,画出程序框图,再进行编程。
程序:
学生利用TI-voyage200图形计算器演示:
(利用图形计算器实验,学生会发现编程越来越有趣,从老师引导到自觉学习,不断的修改程序,直到自己创新)
例3、给一个变量重复赋值。
程序:
学生利用TI-voyage200图形计算器演示:
学生得到以下结论:对于一个变量可以多次赋值,变量的值就是最后一次的赋值。
例4、交换两个变量A和B的值,并输出交换前后的值。
程序:
分析:引入一个中间变量X,将A的值赋予X,
又将B的值赋予A,再将X的值赋予B,从
而达到交换A,B的值。(比如生活中交换装
满红墨水和蓝墨水的两个瓶子里的墨水,需要
再找一个空瓶子)
(完成程序后,学生可以利用TI-voyage200图形计算器编写自己的程序了)
P15 练习 1. 2. 3参考答案:
程序: INPUT “请输入华氏温度:”;x
y=(x-32)*5/9
PRINT “华氏温度:”;x
PRINT “摄氏温度:”;y
END
创新:如果要求输入一个摄氏温度,输出其相应的华氏温度,又该如何设计程序?(学生课后思考,讨论、再利用TI-voyage200图形计算器完成)
2. 程序: INPUT “请输入a(a 0)=”;a
INPUT “请输入b(b 0)=”;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()是函数名,用来求某个数的平方根)
其中要注意图形计算器的个别语句与BASIC语言有点差异,要灵活转换!
【课堂小结】
本节课介绍了输入语句、输出语句和赋值语句的结构特点及联系。掌握并应用输入语句,输出语句,赋值语句编写一些简单的程序解决数学问题,特别是掌握赋值语句中“=”的作用及应用。编程一般的步骤:先写出算法,再进行编程。我们要养成良好的习惯,也有助于数学逻辑思维的形成。注意:BASIC语言中的标准函数,如SQR(x)表示x的算术平方根,ABS(x)表示x的绝对值等。
有了图形计算器,学生的主动性明显加强,他们可以随时随地的编写属于自己的程序!
运行
INPUT“提示内容”;变量
PRINT“提示内容”;表达式
变量=表达式
INPUT “提示内容”,变量
图形计算器格式
Disp “提示内容”,变量
图形计算器格式
表达式变量
图形计算器格式
INPUT “Maths=”;a
INPUT “Chinese=”;b
INPUT “English=”;c
PRINT “The average=”;(a+b+c)/3
END
运行
A=10
A=A+15
PRINT
END
运行
运行
INPUT A
INPUT B
PRINT A,B
x=A
A=B
B=x
PRINT A,B
END秦九韶算法
1.教学任务分析
(1) 在学习中国古代数学中的算法案例的同(2) 时,进一步体会算法的特点。
(3) 体会中国古代数学对世界数学发展的贡献。
2. 重点与难点
重点:理解秦九韶算法的思想。
难点:用循环结构表示算法步骤。
3.教学情境设计
(1) 设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序。
学生提出一般的解决方案,如:
x=5
f=2 * x^5 – 5 * x^4 – 4 * x^3 + 3 * x^2 – 6 * x + 7
PRINT“f=”;f
END
教师点评:上述算法一共做了解15次乘法运算,5次加法运算,优点是简单,易懂。缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高。
(2)有没有更高效的算法?
师:计算x的幂时,可以利用前面的计算结果,以减少计算量,即先计算x2,然后依次计算x2.x,(x2.x).x, ((x2.x).x).x的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法
第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法更快地得到结果。
(3)能否探索更好的算法,解决任意多项式的求值问题
教师引导学生把多项式变形为:f(x)= 2x5-5x4-4x3+3x2-6x+7
=((((2x-5)x-4)x+3)x-6)x+7
并提问:从内到外,如果把每一个括号都看成一个常数,那么变形后的式子中有哪些“一次式”?x的系数依次是什么?
(4)若将x的值代入变形后的式子中,那么求值的计算过程是怎样的
师:计算的过程可以列表表示为:
多项式x系数 2 -5 -4 3 -6 7 运算
10 25 105 540 2670 +
变形后x的"系数" 2 5 21 108 534 2677 *5
最后的系数2677即为所求的值,让学生描述上述计算过程
师:指出这种算法就是“秦九韶算法”,同时介绍秦九韶的生平。
(5)用秦九韶算法求多项式的值,与多项式的组成有直接关系吗?用秦九韶算法计算上述多项式的值,需要多少次乘法运算和多少次加法运算
教师引导学生发现在求值的过程中,计算只与多项式的系数有关,让学生统计所进行的乘法和加法运算的次数。
(6) 秦九韶算法适用一般的多项式f(x)=anxn+an-1xn-1+….+a1x+a0的求值问题吗
师:怎样用秦九韶算法求一般多项式f(x)= anxn+an-1xn-1+….+a1x+a0当x=x0时的值
教师引导学生思考,把n次多项式的求值问题转化成求n个一次多项式的值的问题,即求v1=anx+an-1
v2=v1x+an-2
v3=v2x+an-3
……..
vn=vn-1x+a0
的值的过程,共做了多少次乘法运算,多少次加法运算?
(7)怎样用程序框图表示秦九韶算法
观察秦九韶算法的数学模型,计算vk时要用到vk-1的值,若令v0=an,我们可以得到下面的递推公式:
v0=an
vk=vk-1+an-k(k=1,2,…n)
这是一个在秦九韶算法中反复执行的步骤,可以用循环结构来实现。
(8)小结:通过对秦九韶算法的学习,你对算法本身有哪些进一步的认识?
教师引导学生思考、讨论、概括,小结时要关注如下几点:(1)算法具有通用的特点,可以解决一类问题;(2)解决同一类问题,可以有不同的算法,但计算的效率是不同的,应该选择高效的算法;(3)算法的种类虽多,但三种逻辑结构可以有效地表达各种算法;等等。
(9)课后作业:习题1.3A组第2题。1.1.1算法的概念 海口实验中学 李朝戟
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是否为质数 [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=;
第六步:输出运算结果
PAGE
6
^11.2 基本算法语句 · 海口实验中学 覃荣学·
第一课时 1.2.1输入、输出语句和赋值语句
教学目标:
知识与技能
(1)正确理解输入语句、输出语句、赋值语句的结构。
(2)会写一些简单的程序。
(3)掌握赋值语句中的“=”的作用。
过程与方法
(1)让学生充分地感知、体验应用计算机解决数学问题的方法;并能初步操作、模仿。
(2)通过对现实生活情境的探究,尝试设计出解决问题的程序,理解逻辑推理的数学方法。
情感态度与价值观
通过本节内容的学习,使我们认识到计算机与人们生活密切相关,增强计算机应用意识,提高学生学习新知识的兴趣。
重点与难点
重点:正确理解输入语句、输出语句、赋值语句的作用。
难点:准确写出输入语句、输出语句、赋值语句。
学法与教学用具
计算机、图形计算器
教学设想
【创设情境】
在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具,如:听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 “…”
变量=表达式
INPUT “数学=”;a
INPUT “语文=”;b
INPUT “英语=”;c
y=(a+b+c)/3
PRINT “The average=”;y
END
开始
输入a,b,c
结束
输出y
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§1.2.3循环语句
珠海市斗门和风中学 邝国均
【教学目标】:
(1) 正确理解循环语句的概念,并掌握其结构。
(2) 会应用循环语句编写程序。
【教学重点】两种循环语句的表示方法、结构和用法,用循环语句表示算法。
【教学难点】理解循环语句的表示方法、结构和用法,会编写程序中的循环语句。
【学法与教学用具】:
学法:了解循环语句在解决大量重复问题中起重要作用,减少大量繁琐的计算。
教学用具:计算机,TI-voyage200图形计算器
【教学过程】
算法中的循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构。即WHILE语句和UNTIL语句。
WHILE语句
(1)WHILE语句的一般格式是 对应的程序框图是
(2)当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。
UNTIL语句
(1)UNTIL语句的一般格式是 对应的程序框图是
(2)直到型循环又称为“后测试型”循环,从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。
分析:
当型循环与直到型循环的区别:(先由学生讨论再归纳)
(1) 当型循环先判断后执行,直到型循环先执行后判断;
(2) 在WHILE语句中,是当条件满足时执行循环体,而在UNTIL语句中,是当条件不满足时执行循环体。
例1:编写程序,计算自然数1+2+3+……+99+100的和。
分析:这是一个累加问题。我们可以用WHILE型语句,也可以用UNTIL型语句。(从而得到:解决问题的方法不是唯一的,当然程序的设计也是有多种的,只是程序简单与复杂的问题。)
程序(WHILE语句): 程序(UNTIL语句):
学生利用TI-voyage200图形计算器操作:
当型循环结构(WHILE语句)
(学生会发现,输入不同的n时,都可以很快的算出答案来。)
直到型循环结构(UNTIL语句)
(注意图形计算器里语句的特点)
补充:已知循环次数可以用For语句
例2、根据1.1.2中的图1.1-2,将程序框图转化为程序语句。
改进循环次数,实际上当循环次数等于的整数次时已足够了!
练习(课本23页)
1、 用二分法设计一个求方程的近似根的算法
利用TI-voyage200图形计算器演示:
运行结果:
2、计算函数
利用用For语句
利用WHILE语句:
3、计算阶乘n!(用函数来编)
小结
1、循环语句的两种不同形式:WHILE语句和UNTIL语句(另补充了For语句),掌握它们的一般格式。
2、在用WHILE语句和UNTIL语句编写程序解决问题时,一定要注意它们的格式及条件的表述方法。WHILE语句中是当条件满足时执行循环体,而UNTIL语句中是当条件不满足时执行循环体。
3、循环语句主要用来实现算法中的循环结构,在处理一些需要反复执行的运算任务。如累加求和,累乘求积等问题中常用到。
WHILE 条件
循环体
WEND
满足条件?
循环体
否
是
满足条件?
循环体
是
否
DO
循环体
LOOP UNTIL 条件
i=1
sum=0
WHILE 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
运行
运行
运行
运行
运行
运行§1.1.2 程序框图
珠海市斗门和风中学 邝国均
【教学目标】:
(1) 掌握程序框图的概念;会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构
(2) 掌握画程序框图的基本规则,能正确画出程序框图。
(3) 通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程;学会灵活、正确地画程序框图。
【教学重点】经过模仿、操作、探索,经历通过设计程序框图表达求解问题的过程,重点是程序框图的基本概念、基本图形符号和3种基本逻辑结构
【教学难点】 难点是能综合运用这些知识正确地画出程序框图。
【学法与教学用具】:
学法:
1、 要弄清各种图形符号的意义,明确每个图形符号的使用环境,图形符号间的联结方式。图形符号都有各自的使用环境和作用
2、 在我们描述算法或画程序框图时,必须遵循一定的逻辑结构,事实证明,无论如何复杂的问题,我们在设计它们的算法时,只需用顺序结构、条件结构和循环结构这三种基本逻辑就可以了,因此我们必须掌握并正确地运用这三种基本逻辑结构。
教学用具:计算机,TI-voyage200图形计算器
【教学过程】
引入:
算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表示它。
程序框图基本概念:
(1)程序构图的概念
程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。
一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要的文字说明。
(2)构成程序框的图形符号及其作用
程序框 名称 功能
起止框 表示一个算法的起始和结束,是任何流程图不可少的。
输入、输出框 表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。
处理框 赋值、计算,算法中处理数据需要的算式、公式等分别写在不同的用以处理数据的处理框内。
判断框 判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”。
学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:
1、使用标准的图形符号。
2、框图一般按从上到下、从左到右的方向画。
3、除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过一个退出点的唯一符号。
4、判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。
5、在图形符号内描述的语言要非常简练清楚。
(3)、算法的三种基本逻辑结构:顺序结构、条件结构、循环结构。
顺序结构
顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
顺序结构在程序框图中的体现就是用流程线将程序框自上而
下地连接起来,按顺序执行算法步骤。如在示意图中,A框和B
框是依次执行的,只有在执行完A框指定的操作后,才能接着执
行B框所指定的操作。
例3、已知一个三角形的三边分别为2、3、4,利用海伦公式设计一个算法,求出它的面积,并画出算法的程序框图。
(算法—自然语言)
第一步: a=2,b=3,c=4;
第二步:p=;
第三步:S=
利用TI-voyage200图形计算器演示:(学生先看,再跟着做)
应用:请写出求A(x1,y1),B(x2,y2)的两点距离的一个算法,并画出程序框图。
(学生动手先构思算法,然后画出程序框图,个别好学生利用做TI做实验)
条件结构
条件结构是指在算法中通过对条件的判断,
根据条件是否成立而选择不同流向的算法结构。
它的一般形式如右图所示:
注意:
1、 右图此结构中包含一个判断框,根据给定的
条件P是否成立而选择执行A框或B框。无论
P条件是否成立,只能执行A框或B框之一,不
可能同时执行A框和B框,也不可能A框、B框都不执行。
2、 一个判断结构可以有多个判断框。
例4、任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在。画出这个算法的程序框图。
解:
算法分析:判断分别以这3个数为三边边长的三角形是否存在,只需要验收这3个数当中任意两个数的和是否大于第3个数,这就需要用到条件结构。
程序框图:(见课本)
利用TI-voyage200图形计算器演示:(学生先看,再跟着做)
(学生在利用图形计算器的过程中已经渗透着算法的奥妙)
应用:设计求一个数x的绝对值的算法,并画出相应的程序框图。
(当然这个要求学生先画出程序框图,再利用图形计算器来解决,快的学生三分钟可以弄好)
循环结构:
在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。循环结构又称重复结构,循环结构可细分为两类:
(1)、一类是当型循环结构,如下左图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,再判断条件P是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P不成立为止,此时不再执行A框,离开循环结构。
(2)、另一类是直到型循环结构,如下右图所示,它的功能是先执行,然后判断给定的条件P是否成立,如果P仍然不成立,则继续执行A框,直到某一次给定的条件P成立为止,此时不再执行A框,离开循环结构。
当型循环结构 直到型循环结构
注意:
1、 循环结构要在某个条件下终止循环,这就需要条件结构来判断。因此,循环结构中一定包含条件结构,但不允许“死循环”。
2、 在循环结构中都有一个计数变量和累加变量。计数变量用于记录循环次数,累加变量用于输出结果。计数变量和累加变量一般是同步执行的,累加一次,计数一次。
例5、设计一个计算1+2+3+…+100的值的算法,并画出程序框图。
解:
算法如下:
第一步:sum=0;
第二步:i=1;
第三步:sum=sum+i;
第四步:i=i+1;
第五步:如果i不大于100,返回重新执行第三步,第四步,第五步,否则,算法结束,最后得到的sum值就是1+2+3+…+100的值。
程序框图(可参看课本)
利用TI-voyage200图形计算器演示:(先看当型循环结构)
(学生会思考:若取不同n, 计算1+2+3+…+n又如何?)
(再看直到型循环结构)
(已知循环次数可以用For语句)
应用:设计一个计算的值的算法,并画出程序框图。
(学生很快的把刚才那个程序改“he+ihe”为“he+he”即可)
课堂小结:
本节课主要讲述了程序框图的基本知识,包括常用的图形符号、算法的基本逻辑结构,算法的基本逻辑结构有三种,即顺序结构、条件结构和循环结构。其中顺序结构是最简单的结构,也是最基本的结构,循环结构必然包含条件结构,所以这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过这三种结构来表达。
在具体画程序框图时,要注意的问题:流程线上要有标志执行顺序的前头;判断框后边
的流程线应根据情况标注“是”或“否”;在循环结构中,要注意根据条件设计合理的计数变
量、累加变量等,特别要条件的表述要恰当、精确。
利用TI-voyage200图形计算器时,很多学生已对它着迷了,学生会想出更多的问题,互相进行比较、讨论,自己出发掘比课本更重要的东西。
B
A
结束
开始
p= EQ \F(2+3+4,2)
S= EQ \R(,p(p-2)(p-3)(p-4))
输入S
运行
否
是
B
A
p
成立
A
成立
A
P
不成立
运行
运行
不成立
P
p
运行
运行
运行§1.3进位制
珠海市斗门和风中学 邝国均
【教学目标】:
(1) 了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
(2) 学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律。
【教学重点】各进位制表示数的方法及各进位制之间的转换
【教学难点】除k取余法的理解以及各进位制之间转换的程序框图及其程序的设计
【学法与教学用具】:
学法:学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k取余法。
教学用具:计算机,TI-voyage200图形计算器
【教学过程】
引入
我们常见的数字都是十进制的,比如一般的数值计算,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制,旧式的称是十六进制的,计算一打数值时是12进制的......那么什么是进位制 不同的进位制之间又又什么联系呢
进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。
对于任何一个数,我们可以用不同的进位制来表示。比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的。
一般地,若k是一个大于一的整数,那么以k为基数的k进制可以表示为:
,
而表示各种进位制数一般在数字右下脚加注来表示,如111001(2)表示二进制数,34(5)表示5进制数
如:把二进制数110011(2)化为十进制数.
110011=1*25+1*24+0*23+0*22+1*21+1*20=32+16+2+1=51
把八进制数化为十进制数.
例4、把二进制数110011(2)化为十进制数.
解:110011=1*25+1*24+0*23+0*22+1*21+1*20=32+16+2+1=51
学生利用TI-voyage200图形计算器操作:(老师现场指导)
运行程序为:
学生可以把程序稍做更改,如怎样把八进制数化为十进制数等。
例5
把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取余法.
学生利用TI-voyage200图形计算器操作:(老师现场指导)
运行程序为:
即89=1011001(2)
例6
利用除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
学生利用TI-voyage200图形计算器操作:(老师现场指导)
运行程序为:
小结:
(1)进位制的概念及表示方法
(2)十进制与二进制之间转换的方法及程序
(3) 图形计算器进一步激发学生在算法方面的潜能,更能体现他们的创造精神。
注意:可以把“inputstr”是输入字符串的意思,"mid” 是表示对应字符串的记数字符。引导学生可以自我创新。
其中”a”输入的十进制数,本程序利用了数组,先向学生介绍数组的基本操作,再做更改!
注意:图形计算器没有GET a[i]函数,
可以用数组来代替。通过操作学生会想到十进制数化为八进制数,十进制数化为十六进制数...§1.1.1 算法的概念
珠海市斗门和风中学 邝国均
【教学目标】:
(1) 了解算法的含义,体会算法的思想。
(2) 能够用自然语言叙述算法。
(3) 掌握正确的算法应满足的要求。
(4) 会写出解线性方程(组)的算法。
(5) 会写出一个求有限整数序列中的最大值的算法。
【教学重点】算法的含义、解二元一次方程组和判断一个数为质数的算法设计。.
【教学难点】把自然语言转化为算法语言。.
【学法与教学用具】:
学法:
1、写出的算法,必须能解决一类问题(如:判断一个整数n(n>1)是否为质数;求任意一个方程的近似解;……),并且能够重复使用。
2、要使算法尽量简单、步骤尽量少。
3、要保证算法正确,且计算机能够执行,如:让计算机计算1×2×3×4×5是可以做到的,但让计算机去执行“倒一杯水”“替我理发”等则是做不到的。
教学用具:计算机,TI-voyage200图形计算器
【教学过程】
一、本章章头图说明
章头图体现了中国古代数学与现代计算机科学的联系,它们的基础都是“算法”。
算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。广义地说,算法就是做某一件事的步骤或程序。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。在数学中,主要研究计算机能实现的算法,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。
古代的计算工具:算筹与算盘.
20世纪最伟大的发明:计算机,计算机是强大的实现各种算法的工具。
例1:解二元一次方程组:
分析:解二元一次方程组的主要思想是消元的思想,有代入消元和加减消元两种消元的方法,下面用加减消元法写出它的求解过程.
解:第一步:② - ①×2,得: 5y=3; ③
第二步:解③得 ;
第三步:将代入①,得 .
学生探究:对于一般的二元一次方程组来说,上述步骤应该怎样进一步完善?
老师评析:本题的算法是由加减消元法求解的,这个算法也适合一般的二元一次方程组的解法。下面写出求方程组的解的算法:
例2:写出求方程组的解的算法.
解:第一步:②×a1 - ①×a2,得: ③
第二步:解③得 ;
第三步:将代入①,得
利用TI-voyage200图形计算器演示:(吸引学生的注意力)
运行结果:
算法概念:
在数学上,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题是程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.
说明:
1.“算法”没有一个精确化的定义,教科书只对它作了描述性的说明.
2. 算法的特点:
(1)有限性:
一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.
(2)确定性:
算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可.
(3)顺序性与正确性:
算法从初始步骤开始,分为若干明确的步骤,每一个步骤只能有一个确定的后继步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题.
(4)不唯一性:
求解某一个问题的解法不一定是唯一的,对于一个问题可以有不同的算法.
(5)普遍性:
很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限、事先设计好的步骤加以解决.
例题讲评:
例3、任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判断.
分析:(1)质数是只能被1和自身整除的大于1的整数.
(2)要判断一个大于1的整数n是否为质数,只要根据质数的定义,用比这个整数小的数去除n,如果它只能被1和本身整除,而不能被其它整数整除,则这个数便是质数.
解:算法:
第一步:判断n是否等于2.若n=2,则n是质数;若n>2,则执行第二步.
第二步:依次从2~(n-1)检验是不是n的因数,即整除n的数.若有这样的数,则n不是质数;若没有这样的数,则n是质数.
说明:本算法是用自然语言的形式描述的.设计算法一定要做到以下要求:
(1)写出的算法必须能解决一类问题,并且能够重复使用.
(2)要使算法尽量简单、步骤尽量少.
(3)要保证算法正确,且计算机能够执行.
利用TI-voyage200图形计算器演示:(学生已经被吸引住了)
例4、.用二分法设计一个求方程的近似根的算法.
分析:该算法实质是求的近似值的一个最基本的方法.
解:设所求近似根与精确解的差的绝对值不超过0.005,算法:
第一步:令.因为,所以设x1=1,x2=2.
第二步:令,判断f(m)是否为0.若是,则m为所求;若否,则继续判断大于0还是小于0.
第三步:若,则x1=m;否则,令x2=m.
第四步:判断是否成立?若是,则x1、x2之间的任意值均为满足条件的近似根;若否,则返回第二步.
说明:按以上步骤,我们将依次得到课本第4页的表1-1和图1.1-1.于是,开区间(1.4140625,1.41796875)中的实数都满足假设条件的原方程是近似根.
利用TI-voyage200图形计算器演示:
运行结果:
练习1:
写出解方程x2-2x-3=0的一个算法。
解:算法1:
第一步:移项,得x2-2x-3=0; ①
第二步:①式两边同加1并配方,得(x-1)2=4; ②
第三步:②式两边开方,得x-1=±2; ③
第四步:解③得x=3或x=-1。
算法2:
第一步:计算方程的判别式判断其符号△=22+4×3=16>0;
第二步:将a=1,b=-2,c=-3代入求根公式x= EQ \F(-b±,2),
得x1=3,x2=-1
评析:比较两种算法,算法2更简单,步骤少,所以利用公式解决问题是最理想、合算的算法。因此在寻求算法的过程中,首先是利用公式。
下面设计一个求一般的一元二次方程ax2+bx+c=0的根的算法如下:
第一步:计算△=b2+4ac;
第二步:若△<0;
第三步:输出方程无实根;
第四步:若△≥0;
第五步:计算并输出方程根x1,2= EQ \F(-b±,2)。
练习2、求1×3×5×7×9×11的值,写出其算法。
第一步,先求1×3,得到结果3;
第二步,将第一步所得结果3再乘以5,得到结果15;
第三步,再将15乘以7,得到结果105;
第四步,再将105乘以9,得到945;
第五步,再将945乘以11,得到10395,即是最后结果。
评析:求解某个问题的算法不同于求解一个具体问题的方法,算法必须能够解决一类问题,并且能够重复使用;算法过程要能一步一步地执行,每一步操作必须确切,能在有限步后得出结果。
练习3、有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,请你设计算法解决这一问题。
分析:由于两个墨水瓶中的墨水不能直接交换,故可以考虑通过引入第三个空墨水瓶的办法进行交换。
解:算法步骤如下:
第一步:取一只空的墨水瓶,设其为白色;
第二步:将黑墨水瓶中的蓝墨水装入白瓶中;
第三步:将蓝墨水瓶中的黑墨水装入黑瓶中;
第四步:将白瓶中的蓝墨水装入蓝瓶中;
第五步:交换结束。
评析:对于这种非数值性问题的算法设计问题,应当首先建立过程模型,根据过程设计步骤,完成算法。
小结
1、算法概念和算法的基本思想
(1)算法与一般意义上具体问题的解法的联系与区别;
(2)算法的五个特征。
2、利用算法的思想和方法解决实际问题,能写出一此简单问题的算法
3、两类算法问题
(1)数值性计算问题,如:解方程(或方程组),解不等式(或不等式组),套用公式判断性的问题,累加,累乘等一类问题的算法描述,可通过相应的数学模型借助一般数学计算方法,分解成清晰的步骤,使之条理化即可。
(2)非数值性计算问题,如:排序、查找、变量变换、文字处理等需先建立过程模型,通过模型进行算法设计与描述。
4、利用TI-voyage200图形计算器演示时,开始学生看,想,探究,然后模范、创新。图形计算器为学生创建一个自我发挥的平台。
作业: (课本第4页练习)
1、任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.
解:算法步骤:
第一步:输入任意一个正实数r;
第二步:计算以r为半径的圆的面积:;
第三步:输出圆的面积S.
2、任意给定一个大于1的正整数n,设计一个算法求出n的所有因数.
解:算法步骤:
第一步:依次以2~(n-1)为除数去除n,检查余数是否为0.若是,则是n的因数;若不是,则不是n的因数;
第二步:在n的因数中加入1和n;
第三步:输出n的所有因数.
利用TI-voyage200图形计算器演示:
运行结果:
(其中输入a1=1,b1=-2,m1=-1,a2=2
b2=1,m2=1,当然可输入其它数值)
运行
(即32的公因数为1,2,4,8,16,32)阅读与思考:割圆术
圆周率是一个极其驰名的数。从有文字记载的历史开始,这个数就引进了外行人和学者们的兴趣。作为一个非常重要的常数,圆周率最早是出于解决有关圆的计算问题。仅凭这一点,求出它的尽量准确的近似值,就是一个极其迫切的问题了。事实也是如此,几千年来作为数学家们的奋斗目标,古今中外一代一代的数学家为此献出了自己的智慧和劳动。回顾历史,人类对 π 的认识过程,反映了数学和计算技术发展情形的一个侧面。 π 的研究,在一定程度上反映这个地区或时代的数学水平。直到19世纪初,求圆周率的值应该说是数学中的头号难题。为求得圆周率的值,人类走过了漫长而曲折的道路,它的历史是饶有趣味的。我国的刘徽创立了割圆术,给出了“割圆”的一般法则,后世的割圆家可能在 π 的近似值上估计得比他精密,但若论及创始的功劳,则他的地位是无人可以替代的。
刘徽是魏人,经历可能延长到晋朝,这是史家根据《隋书》记载的魏陈留王景元四年(263 A.D.)刘徽注九章的文句推断出来的。晋朝算学博士王孝通(《缉古算经》的作者)称赞他“思极毫芒”,推许他的著作“一时独步”。他那极富原创性的《九章算术注》(附于现传本的《九章算术》内),及《重差术》(即现传的《海岛算经》)二部著作,的确是他不朽声名的最佳脚注。
刘徽的割圆术记载在九章算术第一卷方田章的第32题关于圆面积计算的注文里。我们把它归纳为下列几点来加以说明。
一、刘徽首先指出利用 π=3 这一数值算得的结果不是圆面积,而是圆内接正十二边形的面积,这个结果比 π 的真值少。
二、他由圆内接正六边形算起,逐渐把边数加倍,算出正12边形、正24边形、正48边形、正96边形……的面积,这些面积会逐渐地接近圆面积。
三、已知正6边形一边(恰与半径等长,详见《九章算术》),即求得正12边形边长,……。由正12边形求正24边形一边之长时,刘徽反复地应用到句股定理(或称商高、勾股定理),如下图:
正n边形的面积等于正n边形的面积加上n个等腰三角形的面积,即
;;...
学生利用TI-voyage200图形计算器操作:(老师现场指导)
运行程序为:
用正多边形逐渐增加边数的方法来计算圆周率,在公元前200年左右,早为阿基米德(287?~212 B.C.)率先采用。但阿阿基米德同时采用内接和外切两种入算,不如刘徽仅用内接,比较简便多了。
大家更加熟悉的是祖冲之所做出的贡献。对此,《隋书·律历志》有如下记载:“宋末,南徐州从事祖冲之更开密法。以圆径一亿为丈,圆周盈数三丈一尺四寸一分五厘九毫二秒七忽,朒数三丈一尺四寸一分五厘九毫二秒六忽,正数在盈朒二限之间。密率:圆径一百一十三,圆周三百五十五。约率,圆径七,周二十二。”
这一记录指出,祖冲之关于圆周率的两大贡献。其一是求得圆周率
3.1415926 < π < 3.1415927
设圆的半径为1,弦心距OG为;正n边形的边长AB为,面积为,根据各个勾股定理,得:
容易知道1.2 基本算法语句 · 海口实验中学 覃荣学·
第二、三课时 1.2.2-1.2.3条件语句和循环语句
教学目标:
知识与技能
(1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。
(2)会应用条件语句和循环语句编写程序。
过程与方法
经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力
情感态度与价值观
了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到循环语句在解决大量重复问题中起重要作用。减少大量繁琐的计算。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。
重点与难点
重点:条件语句和循环语句的步骤、结构及功能。
难点:会编写程序中的条件语句和循环语句。
学法与教学用具
计算机、图形计算器
教学设想
【创设情境】
试求自然数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
END
PAGE
20§1.3辗转相除法与更相减损术
珠海市斗门和风中学 邝国均
【教学目标】:
(1) 理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析。
(2) 基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序。
【教学重点】理解辗转相除法与更相减损术求最大公约数的方法。
【教学难点】把辗转相除法与更相减损术的方法转换成程序框图与程序语言。
【学法与教学用具】:
学法:比较辗转相除法与更相减损术求最大公约数在算法上的区别,并从程序的学习中体会数学的严谨,领会数学算法计算机处理的结合方式,初步掌握把数学算法转化成计算机语言的一般步骤。
教学用具:计算机,TI-voyage200图形计算器
【教学过程】
提出问题:在小学,我们已经学过求最大公约数的知识,如口算求出12与20的公约数。
分析:
我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们的最大公约数?比如求8251与6105的最大公约数?这就是我们这一堂课所要探讨的内容。
辗转相除法
例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年左右首先提出的。利用辗转相除法求最大公约数的步骤如下:
(1):用较大的数m除以较小的数n得到一个商和一个余数;
(2):若=0,则n为m,n的最大公约数;若≠0,则用除数n除以余数得到一个商和一个余数;
(3):若=0,则为m,n的最大公约数;若≠0,则用除数除以余数得到一个商和一个余数;……
依次计算直至=0,此时所得到的即为所求的最大公约数。
其程序框图见课本
其程序语言(BASIC)如下:
INPUT “m=”;m
INPUT “n=”;n
IF m MOD n=n
n=x
END IF
r=m MOD n
WHILE r<>0
r=m MOD n
m=n
n=r
WEND
PRINT m
END
学生利用TI-voyage200图形计算器操作:(老师现场指导)
输入不同的m、n都可以算出它们的最大公约数。这下子,学生会感到自己变得神通广大了。利用TI-voyage200图形计算器更能培养学生的动手操作能力,并让他们获得完成程序后的成功感!
更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术。在《九章算术》中记载了更相减损术求最大公约数的步骤:可半者半之,不可半者,副置分母 子之数,以少减多,更相减损,求其等也,以等数约之。
翻译为:
(1):任意给出两个正数;判断它们是否都是偶数。若是,用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。
学生利用TI-voyage200图形计算器操作:(老师现场指导)
(其中“dashu”指输入数值大的整数,“ xiaoshu”指数值小的整数,学生课余时间可以继续修改)
辗转相除法与更相减损术的区别:
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到
小结:
对比分析辗转相除法与更相减损术求最大公约数的计算方法及完整算法程序。
思考:
利用辗转相除法是否可以求两数的最大公倍数?试设计程序框图并转换成程序在图形计算器中实现。
运行
运行1.3算法案例 海口实验中学 刘志强
第一、二课时 辗转相除法与更相减损术
(1)教学目标
(a)知识与技能
1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析。
2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序。
(b)过程与方法
在辗转相除法与更相减损术求最大公约数的学习过程中对比我们常见的约分求公因式的方法,比较它们在算法上的区别,并从程序的学习中体会数学的严谨,领会数学算法计算机处理的结合方式,初步掌握把数学算法转化成计算机语言的一般步骤。
(c)情态与价值
1.通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献。
2.在学习古代数学家解决数学问题的方法的过程中培养严谨的逻辑思维能力,在利用算法解决数学问题的过程中培养理性的精神和动手实践的能力。
(2)教学重难点
重点:理解辗转相除法与更相减损术求最大公约数的方法。
难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言。
(3)学法与教学用具
学法:在理解最大公约数的基础上去发现辗转相除法与更相减损术中的数学规律,并能模仿已经学过的程序框图与算法语句设计出辗转相除法与更相减损术的程序框图与算法程序。
教学用具:电脑,计算器,图形计算器
(4)教学设想
(一)创设情景,揭示课题
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 mm=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.小结:
辗转相除法与更相减损术求最大公约数的计算方法及完整算法程序的编写。
(5)评价设计
作业:P38 A(1)B(2)
补充:设计更相减损术求最大公约数的程序框图
PAGE
29第一章算法初步 海口实验中学 李朝戟
第一章算法初步
一、课标要求:
1、本章的课标要求包括算法的含义、程序框图、基本算法语句,通过阅读中国古代教学中的算法案例,体会中国古代数学世界数学发展的贡献。
2、算法就是解决问题的步骤,算法也是数学及其应用的重要组成部分,是计算机科学的基础,利用计算机解决问需要算法,在日常生活中做任何事情也都有算法,当然我们更关心的是计算机的算法,计算机可以解决多类信息处理问题,但人们必须事先用计算机熟悉的语言,也就是计算能够理解的语言(即程序设计语言)来详细描述解决问题的步骤,即首先设计程序,对稍复杂一些的问题,直接写出解决该问题的程序是困难的,因此,我们要首先研究解决问题的算法,再把算法转化为程序,所以算法设计是使用计算机解决具体问题的一个极为重要的环节。
3、通过对解决具体问题的过程与步骤的分析(如二元一次方程组的求解等问题),体会算法的思想,了解算法的含义。理解程序框图的三种基本逻辑结构:顺序结构、条件结构、循环结构。理解并掌握几种基本的算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句。进一步体会算法的基本思想。
4、本章的重点是体会算法的思想,了解算法的含义,通过模仿、操作、探索,经过通过设计程序框图解决问题的过程。点是在具体问题的解决过程中,理解三种基本逻辑结构,经历将具体问题的程序框图转化为程序语句的过程,理解几种基本的算法语句。
二、编写意图与特色:
算法是数学及其应用的重要组成部分,是计算科学的重要基础。随着现代信息技术飞速发展,算法在科学技术、社会发展中发挥着越来越大的作用,并日益融入社会生活的许多方面,算法思想已经成为现代人应具备的一种数学素养。需要特别指出的是,中国古代数学中蕴涵了丰富的算法思想。在本模块中,学生将在义务教育阶段初步感受算法思想的基础上,结合对具体数学实例的分析,体验程序框图在解决问题中的作用;通过模仿、操作、探索,学习设计程序框图表达解决问题的过程;体会算法的基本思想以及算法的重要性和有效性,发展有条理的思考与表达的能力,提高逻辑思维能力。
1、结合熟悉的算法,把握算法的基本思想,学会用自然语言来描述算法。
2、通过模仿、操作和探索,经历设计程序流程图表达解决问题的过程。在具体问题的解决过程中理解程序流程图的三种基本逻辑结构:顺序结构、条件结构、循环结构。
3、通过实际问题的学习,了解构造算法的基本程序。
4、经历将具体问题的程序流程图转化为程序语句的过程,理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句,体会算法的基本思想。
5、需要注意的问题
1) 从熟知的问题出发,体会算法的程序化思想,而不是简单呈现一些算法。
2) 变量和赋值是算法学习的重点之一,因为设置恰当的变量,学习给变量赋值,是构造算法的关键,应作为学习的重点。
3) 不必刻意追求最优的算法,把握算法的基本结构和程序化思想才是我们的重点。
4) 本章所指的算法基本上是能在计算机上实现的算法。
三、教学内容及课时安排:
1.1算法与程序框图 (约2课时)
1.2基本算法语句 (约3课时)
1.3算法案例 (约5课时)
复习与小结 (约2课时)
四、评价建议
1.重视对学生数学学习过程的评价
关注学生在数学语言的学习过程中,是否对用集合语言描述数学和现实生活中的问题充满兴趣;在学习过程中,能否体会集合语言准确、简洁的特征;是否能积极、主动地发展自己运用数学语言进行交流的能力。
2.正确评价学生的数学基础知识和基本技能
关注学生在本章(节)及今后学习中,让学生集中学习算法的初步知识,主要包括算法的基本结构、基本语句、基本思想等。算法思想将贯穿高中数学课程的相关部分,在其他相关部分还将进一步学习算法
PAGE
21.3算法案例 海口实验中学 刘志强
第三、四课时 秦九韶算法与排序
(1)教学目标
(a)知识与技能
1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
(b)过程与方法
模仿秦九韶计算方法,体会古人计算构思的巧妙。能根据排序法中的直接插入排序法与冒泡排序法的步骤,了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用。
(c)情态与价值
通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。通过对排序法的学习,领会数学计算与计算机计算的区别,充分认识信息技术对数学的促进。
(2)教学重难点
重点:1.秦九韶算法的特点
2.两种排序法的排序步骤及计算机程序设计
难点:1.秦九韶算法的先进性理解
2.排序法的计算机程序设计
(3)学法与教学用具
学法:1.探究秦九韶算法对比一般计算方法中计算次数的改变,体会科学的计算。
2.模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。
教学用具:电脑,计算器,图形计算器
(4)教学设想
(一)创设情景,揭示课题
我们已经学过了多项式的计算,下面我们计算一下多项式
当时的值,并统计所做的计算的种类及计算次数。
根据我们的计算统计可以得出我们共需要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)冒泡法排序的计算机程序框图设计
(5)评价设计
作业:P38 A(2)(3)
补充:设计程序框图对上述两组数进行排序
PAGE
32§1.2.2条件语句
珠海市斗门和风中学 邝国均
【教学目标】:
(1) 正确理解条件语句的概念,并掌握其结构。
(2) 会应用条件语句编写程序。
【教学重点】条件语句的步骤、结构及功能。
【教学难点】会编写程序中的条件语句。
【学法与教学用具】:
学法:了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。
教学用具:计算机,TI-voyage200图形计算器
【教学过程】
条件语句
1、条件语句的一般格式有两种:(1)IF—THEN—ELSE语句;(2)IF—THEN语句。
2、IF—THEN—ELSE语句
IF—THEN—ELSE语句的一般格式为图1,对应的程序框图为图2。
图1 图2
分析:在IF—THEN—ELSE语句中,“条件”表示判断的条件,“语句1”表示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作内容;END IF表示条件语句的结束。计算机在执行时,首先对IF后的条件进行判断,如果条件符合,则执行THEN后面的语句1;若条件不符合,则执行ELSE后面的语句2。
3、IF—THEN语句
IF—THEN语句的一般格式为图3,对应的程序框图为图4。
注意:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,结束程序;END IF表示条件语句的结束。计算机在执行时首先对IF后的条件进行判断,如果条件符合就执行THEN后边的语句,若条件不符合则直接结束该条件语句,转而执行其它语句。
例5、编写程序,输入一元二次方程ax2+bx+c=0的系数,输出它的实数根。
分析:先把解决问题的思路用程序框图表示出来,然后再根据程序框图给出的算法步骤,逐步把算法用对应的程序语句表达出来。(程序框图先由学生讨论,再统一,可以参考课本)
算法分析:
在求解方程之前,需要首先判断判别式的符号,再根据判别式的符号判断方程根的情况:△>0时,方程有两个不相等的实数根;△=0时,方程有两个相等的实数根;△<0时,方程没有实数根。这个过程可以用算法中的条件结构来表示。
利用TI-voyage200图形计算器演示(程序见下两图)
运行程序:输入a=1,b= -2,c= -1 时,结果为:
例6、编写程序,使得任意输入的3个整数按从大到小的顺序输出。
算法分析:用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使a≥b≥c.具体操作步骤可先讨论,再对照课本。
程序框图和程序:(参照课本 )
利用TI-voyage200图形计算器演示(程序见下两图)
运行程序:输入a=3,b=8,c= 2 时,结果为:
练习: 3x2+1 (x>0),
1、已知函数f(x)= x+1 (x=0),
2x2+3x (x<0),
编写一个程序,对每输入的一个x值,都得到相应的函数值。(学生利用条件语句的嵌套,可选择IF—THEN语句,先写出算法,再利用图形计算器验证)
课本练习2
提示:mod 的用法(即整除中取余数) ;intdiv的用法(即整除中取商的整数部分)
小结
条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套
编程的一般步骤:
(1)算法分析 :根据提供的问题,利用数学及相关学科的知识,设计出解决问题的算法。
(2)画程序框图:依据算法分析,画出程序框图。
(3)写出程序 :根据程序框图中的算法步骤,逐步把算法用相应的程序语句表达出来。
否
是
满足条件?
语句1
语句2
IF 条件 THEN
语句1
ELSE
语句2
END IF
满足条件?
语句
是
否
IF 条件 THEN
语句
END IF
(图3)
(图4)
(学生会惊喜的发现:自己也是个编程高手了!)
运行算法的概念
珠海北大附属实验学校 何莲姣
教学目标:通过分析具体问题过程与步骤,建立算法的概念,感受算法的思想,了解算法的含义,能用自然语言描述解决具体问题的算法。
教学重点:通过实例体会算法思想,初步理解算法的含义。
教学难点:同重点。
教学过程:
一、本章章头图说明
章头图体现了中国古代数学与现代计算机科学的联系,它们的基础都是“算法”。
中国古代数学注重实际问题的解决,以算法为中心,寓理于算,其中蕴涵了丰富的算法思想,割圆术、秦九韶算法等都是很经典的算法,所以算法不是一个全新的概念。
古代的计算工具:算筹与算盘;元代朱世杰著《四元玉鉴》。
20世纪最伟大的发明:计算机,计算机是强大的实现各种算法的工具。
二、引入新课
1、怎样理解算法?
广义地说为了解决某一问题而采取的方法和步骤,就称之为算法。做任何事情都有一定的步骤。例如:描述太极拳动作的图解,就是“太极拳的算法”;一首歌的乐谱,可以称之为该歌曲的算法。从小学到高中遇到的算法绝大多数都与“计算”有关的问题。
实例1:求整数1到100的和,可以先进行1+2,再加3,再加4,一直加到100;也可以采取这样的方法:100+(1+99)+(2+98)+…+(49+51)+50=100+49×100+50=5050,还可以有其他的方法。
实例2:求1×2×3×4×5。
步骤1:先求1×2,得到结果2;
步骤2:将步骤1得到的结果2再乘以3,得到6;
步骤3:将步骤2得到的结果6再乘以4,得到结果24;
步骤4:将步骤3得到的结果24再乘以5,得到120。
实例3:解二元一次方程组 x-2y=-1 ①
2x+y=1 ②
第一步:②-①×2,得 5y=3; ③
第二步:解③得y=;
第三步:将y=代入①,得x=。
这三步就构成了解这一个二元一次方程组的算法。
推广开来,对于一般的二元一次方程组
a1x+b1y=c1
a2x+b2y=c2
可以根据实例3中解方程组的算法编制程序,让计算机来解二元一次方程组。
2、现代意义上的算法
算法通常是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤
必须是明确的和有效的,而且能够在有限步之内完成。
对算法定义的理解:
(1)算法与一般意义上具体问题的解法既有联系,又有区别,它们之间是一般和特殊的关系,也是抽象与具体的关系。算法的获得要借助一般意义上具体问题的求解方法,而任何一个具体问题都可以利用这类问题的一般算法来解决。
(2)算法的五个特征
①有穷性:一个算法的步骤序列是有限的,它应在有限步操作之后停止,而不能是无限地执行下去。
②确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可的。
③逻辑性:算法从初始步骤开始,分为若干个明确的步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,并且每一步都准确无误,才能完成问题。
④不唯一性:求解某一个问题的算法不一定只有唯一的一个,可以有不同的算法。
⑤普遍性:很多具体的问题,都可以设计合理的算法去解决,如心算、计算器计算都要经过有限的、事先设计好的步骤加以解决。
例1、(1)下列关于算法的说法中,正确的有( )
①求解某一类问题的算法是唯一的;②算法必须在有限步操作之后停止;③算法的每一步操作必须是明确的,不能有歧义或模糊;④算法执行后一定产生确定的结果。
A、1个 B、2个 C、3个 D、4个
(2)对于像“喝一碗水”这类含有动作性的语言能否出现在算法的一个步骤中,下列说法正确的是( )
A、能 B、不能 C、有些题目能,有些不能 D、上述说法均不对
例2、写出解方程x2-2x-3=0的一个算法。
解:算法1:
第一步:移项,得x2-2x=3; ①
第二步:①式两边同加1并配方,得(x-1)2=4; ②
第三步:②式两边开方,得x-1=±2; ③
第四步:解③得x=3或x=-1。
算法2:
第一步:计算方程的判别式判断其符号△=22+4×3=16>0;
第二步:将a=1,b=-2,c=-3代入求根公式x=,
得x1=3,x2=-1
评析:比较两种算法,算法2更简单,步骤少,所以利用公式解决问题是最理想、合算的算法。因此在寻求算法的过程中,首先是利用公式。
下面设计一个求一般的一元二次方程ax2+bx+c=0的根的算法如下:
第一步:计算△=b2+4ac;
第二步:若△<0;
第三步:输出方程无实根;
第四步:若△≥0;
第五步:计算并输出方程根x1,2=。
评析:求解某个问题的算法不同于求解一个具体问题的方法,算法必须能够解决一类问题,并且能够重复使用;算法过程要能一步一步地执行,每一步操作必须确切,能在有限步后得出结果。
练习:1、写出解方程2x+7=0的一个算法。
2、写出求过P1(3,2),P2(-1,6)两点的直线的斜率的一个算法。
例3、有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,请你设计算法解决这一问题。
分析:由于两个墨水瓶中的墨水不能直接交换,故可以考虑通过引入第三个空墨水瓶的办法进行交换。
解:算法步骤如下:
第一步:取一只空的墨水瓶,设其为白色;
第二步:将黑墨水瓶中的蓝墨水装入白瓶中;
第三步:将蓝墨水瓶中的黑墨水装入黑瓶中;
第四步:将白瓶中的蓝墨水装入蓝瓶中;
第五步:交换结束。
变式引申:一位商人有9枚银元,其中有1枚略轻的是假银元。你能用天平(无砝码)将假银元找出来吗?写出解决这一问题的一种算法。
评析:对于这种非数值性问题的算法设计问题,应当首先建立过程模型,根据过程设计步骤,完成算法。
三、小结
1、算法概念和算法的基本思想
(1)算法与一般意义上具体问题的解法的联系与区别;
(2)算法的五个特征。
2、利用算法的思想和方法解决实际问题,能写出一此简单问题的算法
3、两类算法问题
(1)数值性计算问题,如:解方程(或方程组),解不等式(或不等式组),套用公式判断性的问题,累加,累乘等一类问题的算法描述,可通过相应的数学模型借助一般数学计算方法,分解成清晰的步骤,使之条理化即可。
(2)非数值性计算问题,如:排序、查找、变量变换、文字处理等需先建立过程模型,通过模型进行算法设计与描述。
四、布置作业
课本第4页练习1、2题1.3算法案例 海口实验中学 刘志强
第五课时 进位制
(1)教学目标
(a)知识与技能
了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
(b)过程与方法
学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律。
(c)情态与价值
领悟十进制,二进制的特点,了解计算机的电路与二进制的联系,进一步认识到计算机与数学的联系。
(2)教学重难点
重点:各进位制表示数的方法及各进位制之间的转换
难点:除k去余法的理解以及各进位制之间转换的程序框图的设计
(3)学法与教学用具
学法:在学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k去余法。
教学用具:电脑,计算器,图形计算器
(4)教学设想
(一)创设情景,揭示课题
我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制.那么什么是进位制 不同的进位制之间又又什么联系呢
(二)研探新知
进位制是一种记数方式,用有限的数字 ( http: / / zh.wikipedia.org / wiki / %E6%95%B0%E5%AD%97" \o "数字 )在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制 ( http: / / zh.wikipedia.org / wiki / %E5%8D%81%E8%BF%9B%E5%88%B6" \o "十进制 ),通常使用10个阿拉伯数字 ( http: / / zh.wikipedia.org / w / index.php title=%E9%98%BF%E6%8B%89%E4%BC%AF%E6%95%B8%E5%AD%97&action=edit" \o "阿拉伯數字 )0-9进行记数。
对于任何一个数,我们可以用不同的进位制来表示。比如:十进数 ( http: / / zh.wikipedia.org / wiki / %E5%8D%81%E8%BF%9B%E5%88%B6" \o "十进制 )57,可以用二进制 ( http: / / zh.wikipedia.org / wiki / %E4%BA%8C%E8%BF%9B%E5%88%B6" \o "二进制 )表示为111001,也可以用八进制 ( http: / / zh.wikipedia.org / wiki / %E5%85%AB%E8%BF%9B%E5%88%B6" \o "八进制 )表示为71、用十六进制 ( http: / / zh.wikipedia.org / wiki / %E5%8D%81%E5%85%AD%E8%BF%9B%E5%88%B6" \o "十六进制 )表示为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)十进制与二进制之间转换的方法及计算机程序
(5)评价设计
作业:P38 A(4)
补充:设计程序框图把一个八进制数23456转换成十进制数.
2
2
2
2
2
1
2
5
11
22
44
89
2
2
0
余数
1
0
0
1
1
0
1
PAGE
381.1.2程序框图 海口实验中学 李朝戟
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 是
否
2、 解:序框图如下图:
i≥100 否
是
6、作业:课本P11习题1.1 A组2、3
不存在这样的三角形
输入a,b,c
开始
结束
输出s
s=√p(p-2)(p-3)(p-4)
p=(2+3+4)/2
开始
存在这样的三角形
结束
开始
i=1
Sum=0
i=i+1
Sum=sum+i
输出sum
结束
开始
i=1
p=0
p=pxi
输出p
结束
i=i+1
开始
i=1
p=0
p=p+2i
输出p
结束
i=i+1
PAGE
14§1.3秦九韶算法与排序
珠海市斗门和风中学 邝国均
【教学目标】:
(1) 了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
(2) 掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
【教学重点】秦九韶算法的特点及其程序设计,两种排序法的排序步骤及其程序设计(重点放在循环语句的应用上)
【教学难点】秦九韶算法的先进性理解及其程序设计,排序法的计算机程序设计
【学法与教学用具】:
学法:探究秦九韶算法对比一般计算方法中计算次数的改变,体会科学的计算;模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。
教学用具:计算机,TI-voyage200图形计算器
【教学过程】
秦九韶计算多项式的方法
例1、 设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序。
个别学生提出一般的解决方案,如:
x=5
y=2 * x^5 – 5 * x^4 – 4 * x^3 + 3 * x^2 – 6 * x + 7
PRINT“y=”;y
END
提问:例1计算时需要多少次乘法计算?多少次加法计算?有什么优缺点?
学生答:上述算法一共做了解15次乘法运算,5次加法运算,优点是简单、易懂。缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高。
提问:计算x的幂时,可以利用前面的计算结果,以减少计算量,即先计算x2,然后依次计算x2.x,(x2.x).x, ((x2.x).x).x的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法
学生答:上述算法一共做了解4次乘法运算,5次加法运算。
结论:第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法更快地得到结果。
我们把多项式变形为:f(x)= 2x5-5x4-4x3+3x2-6x+7=((((2x-5)x-4)x+3)x-6)x+7
从内到外,如果把每一个括号都看成一个常数,x的系数依次是什么?
用图表可以表示为:
多项式x系数 2 -5 -4 3 -6 7 运算
10 25 105 540 2670 +
变形后x的"系数" 2 5 21 108 534 2677 *5
最后的系数2677即为所求的值,让学生描述上述计算过程。
上述算法就是“秦九韶算法”。
如何应用秦九韶算法完成一般的多项式f(x)=anxn+an-1xn-1+….+a1x+a0求值问题?
f(x)=anxn+an-1xn-1+….+a1x+a0
=( anxn-1+an-1xn-2+….+a1)x+a0
=(( anxn-2+an-1xn-3+….+a2)x+a1)x+a0
=......
=(...( anx+an-1)x+an-2)x+...+a1)x+a0
求多项式的值时,首先计算最内层括号内依次多项式的值,即v1=anx+an-1
然后由内向外逐层计算一次多项式的值,即
v2=v1x+an-2
v3=v2x+an-3
......
vn=vn-1x+a0
这样,把n次多项式的求值问题转化成求n个一次多项式的值的问题
观察秦九韶算法的数学模型,计算vk时要用到vk-1的值,若令v0=an,我们可以得到下面的递推公式:
v0=an
vk=vk-1+an-k(k=1,2,…n)
这是一个在秦九韶算法中反复执行的步骤,可以用循环结构来实现。
例2、已知一个五次多项式f(x)=5x5+2x4+3.5x3-2.6x2+1.7x-0.8用秦九韶算法求当x=5时多项式的值。
分析:先画出程序框图(见课本)再利用TI-voyage200图形计算器操作:
(其中表示f(x)=5x5+2x4+3.5x3-2.6x2+1.7x-0.8的系数,可以随意改变,通过图形计算器,学生很快的把系数的输入换成用数组来代替,从而得到更普遍的程序,激发学生的求学创新精神)
排序
大家考完试后如果要排一下成绩的话,单靠人手该怎样操作呢?如果你们用计算机里的软件(如:电子表格)又如何操作?
排序的算法很多,课本主要介绍里两种排序方法:直接插入排序和冒泡排序
1、直接插入排序
基本思想
插入排序的思想就是读一个,排一个。将第1个数放入数组的第1个元素中,以后读入的数与已存入数组的数进行比较,确定它在从大到小的排列中应处的位置.将该位置以及以后的元素向后推移一个位置,将读入的新数填入空出的位置中.(由于算法简单,可以举例说明)
2、冒泡排序
基本思想
依次比较相邻的两个数,把大的放前面,小的放后面.即首先比较第1个数和第2个数,大数放前,小数放后.然后比较第2个数和第3个数......直到比较最后两个数.第一趟结束,最小的一定沉到最后.重复上过程,仍从第1个数开始,到最后第2个数...... 由于在排序过程中总是大数往前,小数往后,相当气泡上升,所以叫冒泡排序.
例3、用冒泡法对数据7,5,3,9,1从小到大进行排序。
以下是第一趟排序,最后我们得到新数列为:5,3,7,9,1
按上述方法我们进行第二趟、第三趟......排序,直到这5个数按从小到大进行排序为止:
如下图所示:
第二趟 第三趟 第四趟
利用TI-voyage200图形计算器操作,把冒泡排序变成程序为:
运行结果为:
小结
(1)秦九韶算法计算多项式的值及程序设计
(2)数字排序法中的常见的两种排序法直接插入排序法与冒泡排序法
(3)冒泡法排序的计算机程序设计
(4)注意循环语句的使用与算法的循环次数,对算法进行改进。
运行
7
5
3
9
1
5
7
3
9
1
5
3
7
9
1
7
3
7
9
1
5
3
7
1
9
51789
1
3
5
7
9
3
1
5
7
9
3
5
1
7
9
5
3
7
1
9
注意:可以把 “If r[i]>r[i+1] then”
改为“if r[i]算法初步 复习课
(1)教学目标
(a)知识与技能
1.明确算法的含义,熟悉算法的三种基本结构:顺序、条件和循环,以及基本的算法语句。
2.能熟练运用辗转相除法与更相减损术、秦九韶算法、排序、进位制等典型的算法知识解决同类问题。
(b)过程与方法
在复习旧知识的过程中把知识系统化,通过模仿、操作、探索,经历设计程序框图表达解决问题的过程。在具体问题的解决过程中进一步理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。
(c)情态与价值
算法内容反映了时代的特点,同时也是中国数学课程内容的新特色。中国古代数学以算法为主要特征,取得了举世公认的伟大成就。现代信息技术的发展使算法重新焕发了前所未有的生机和活力,算法进入中学数学课程,既反映了时代的要求,也是中国古代数学思想在一个新的层次上的复兴,也就成为了中国数学课程的一个新的特色。
(2)教学重难点
重点:算法的基本知识与算法对应的程序框图的设计
难点:与算法对应的程序框图的设计及算法程序的编写
(3)学法与教学用具
学法:利用实例让学生体会基本的算法思想,提高逻辑思维能力,对比信息技术课程中的程序语言的学习和程序设计,了解数学算法与信息技术上的区别。通过案例的运用,引导学生体会算法的核心是一般意义上的解决问题策略的具体化。面临一个问题时,在分析、思考后获得了解决它的基本思路(解题策略),将这种思路具体化、条理化,用适当的方式表达出来(画出程序框图,转化为程序语句)。
教学用具:电脑,计算器,图形计算器
(4)教学设想
一.本章的知识结构
二.知识梳理
(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)
(5)评价设计
作业:P40 A(5)(6)
满足条件?
语句1
语句2
是
否
IF 条件 THEN
语句1
ELSE
语句2
END IF
满足条件?
语句
是
否
IF 条件 THEN
语句
END IF
满足条件?
循环体
是
否
WHILE 条件
循环体
WEND
满足条件?
循环体
是
否
DO
循环体
LOOP UNTIL 条件
INPUT “提示内容”;变量
INPUT “提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,…
PRINT “提示内容”;表达式
变量=表达式
PAGE
43