算法初步

文档属性

名称 算法初步
格式 zip
文件大小 5.8MB
资源类型 教案
版本资源 人教新课标A版
科目 数学
更新时间 2010-12-02 10:12:00

文档简介

课件10张PPT。复数的四则运算 【温故知新】 A. 第一象限 B. 第二象限
C. 第三象限 D. 第四象限【探究】 怎样判断一个复数是实数?【思路分析】 将 z=1+i 代入等式
然后利用复数的相等解决。【探究】 i 的指数变化规律你能发现规律吗?有怎样的规律?【例2】求值:【练习】求 的值域。【作业】 P73 A组 1、2、3
B组 1课件38张PPT。算 法数学3(必修)——算 法ALGORITHM一、《算法初步》主要内容与结构? 内容算法的含义→流程图→基本算法语句→算法案例? 结构二、本章教学重点和难点? 重点? 理解算法的含义; ? 掌握算法的三种基本结构; ? 会用算法语句解决简单的实际问题。? 难点? 循环语句; ? 算法设计。三、教材展开的方式和特点? 展开方式? 特点? 螺旋上升、渐次递进 ? 整合渗透、前引后连 ? 三线合一、横向贯通
? 弹性处理、多样选择自然语言四、内容解析第1节 算法的含义? 算法的含义(广义)完成某项工作的方法和步骤(计算科学)可以用计算机来解决的一类问题的程序和步骤(教材)有限性、确定性 (其他)输入、输出、可行性、一般性? 算法的特点(教材)对一类问题的机械的、统一的求解方法? 关于例1例1 给出求1 + 2 +3 + 4 + 5的一个算法.
算法1 按照逐一相加的程序进行.
第一步 计算1 + 2,得到3;
第二步 将第一步中的运算结果3与3相加,得到6;
第三步 将第二步中的运算结果6与4相加,得到10;
第四步 将第三步中的运算结果10与5相加,得到15. 算法2 可以运用公式1 + 2 + … + n = 直接计算。
第一步 取n = 5;
第二步 计算 ;
第三步 输出运算结果。第1节 算法的含义算法3?? 四种图框类型第2节 流程图 ● N-S结构化流程图(1973年由美国学者I.Nassi和B.Shneiderman提出,N和S是这两位学者英文姓名的第一个字母) ? 三种基本算法结构i) 顺序结构ii) 选择结构第2节 流程图? 三种基本算法结构iii) 循环结构第2节 流程图(直到型)(当型)? 循环结构示例第2节 流程图引例? 循环结构第2节 流程图例4 (P12)求1×2×3×4×5。算法2
S1 T←1;
S2 I←2;
S3 T←T × I;
S4 I←I + 1.
S5 如果I不大于5,重新执行 S3、S4、S5;否则算法结束.? 直到型与当型的转换第2节 流程图例4第2节 流程图学习流程图时学生可能出现的错误:(1)关于输入框输入n ? 3(2)关于处理框p←x,y←p,x←y(3)循环结构判断框中的条件? 赋值语句第3节 基本算法语句? 伪代码? Excel VBA例1 交换两个变量 x、y 的值p ← x x ← y y ← pp = x x = y y = p? 赋值号? x、y、p的值各是多少?? 输入输出语句? 伪代码? Excel VBA例2 输入一个数,输出这个数的绝对值。Read a x ← | a | Print xa = Inputbox("请输入一个数") x = Abs(a) Msgbox x? 其他输入、输出语句——input,output
? 英语单词的处理第3节 基本算法语句? 条件语句——单行? 伪代码? Excel VBA例3 输入三个数,输出最大数。Read a, b, c x ← a If b > x Then x ← b If c > x Then x ← c Print xa = InputBox("输入a") b = InputBox("输入b") c = InputBox("输入c") x = a If b > x Then x = b If c > x Then x = c MsgBox "最大数" & x第3节 基本算法语句? 算法的实现——条理化、逻辑化、精微化的过程a = InputBox("输入a"): b = InputBox("输入b") c = InputBox("输入c") x = a If b > x Then x = b: If c > x Then x = c MsgBox "最大数为" & x? 分别输入a = 12,b = 9,c = 5时,为什么输出最大数为9?? 条件语句——块? 伪代码? Excel VBA例4 输入x,计算 y = 的值。Read x If x≥0 Then y ← x2 Else y ← sin x End If Print yx = InputBox("输入一个数") If x >=0 Then y = x^2 Else y = sin(x) End If MsgBox y第3节 基本算法语句? 条件语句——嵌套? 伪代码? Excel VBA例5(P19)输入x,计算 y = 的值。Read x If x > 0 Then y ← 1 Else If x = 0 Then y ← 0 Else y ← -1 End If Print yx = InputBox("输入一个数") If x > 0 Then y = 1 ElseIf x = 0 Then y = 0 Else y = -1 End If MsgBox y第3节 基本算法语句? 循环语句——For? 伪代码? Excel VBA例6(P21)计算1 ? 3 ? 5 ? 7 ? … ? 99。S ← 1 For I From 3 To 99 Step 2 S ← S ? I End For Print SS = 1 For I = 3 To 99 Step 2 S = S*I Next I MsgBox S第3节 基本算法语句? 循环语句——While? 伪代码1例7(P21)求最小的奇数I,使 1 ? 3 ? 5 ? 7 ? … ? I > 10 000。S ← 1 I ← 3 While S≤10 000 S ← S ? I I ← I + 2 End While Print IS ← 1 I ← 1 While S≤10 000 I ← I + 2 S ← S ? I End While Print I? 伪代码2第3节 基本算法语句? Excel VBA-1例7(P21)求最小的奇数I,使 1 ? 3 ? 5 ? 7 ? … ? I > 10 000。S = 1 I = 1 While S <= 10000 I = I + 2 S = S*I Wend MsgBox I? Excel VBA-2S = 1 I = 1 Do I = I + 2 S = S*I Loop Until S>10000 MsgBox I? 循环语句——While第3节 基本算法语句? 伪代码例8(P22、例4)抛硬币试验。s ← 0 Read n For i From 1 To n If Rnd > 0.5 Then s ← s + 1 End For Print 出现正面的频率为s/n? Excel VBAs = 0 n = InputBox("输入试验次数") For i = 1 To n If Rnd > 0.5 Then s = s + 1 Next i MsgBox "出现正面的频率为" & s/n例1(P25、例1)孙子问题:“今有物不知其数,三三数之剩二;五五数之剩三;七七数之剩二.问物几何?答曰:二十三.”分析 “孙子问题”相当于求关于x,y,z的
不定方程组 的正整数解.? 问题背景与分析第4节 算法案例m←2
While Mod(m, 3)≠2 或 Mod(m, 5)≠3 或 Mod(m, 7)≠2
m←m + 1
End While
Print m? 伪代码? 流程图m = 2
While m Mod 3 < > 2 Or m Mod 5 < > 3 Or m Mod 7 < > 2
m = m + 1
Wend
MsgBox "不定方程的一个解为" & m? Excel VBA-1m = 1
Do
m = m + 1
Loop Until m Mod 3 = 2 And m Mod 5 = 3 _
And m Mod 7 = 2
MsgBox "不定方程的一个解为" & m? Excel VBA-2例2(P26)求两个整数a和b的最大公约数——欧几里得辗转相除法。? 问题背景与分析分析 求出列数:
a,b,r1,r2,…,rn – 1,rn,0.
这列数从第三项开始,每项都是前两项相除所得的余数,余数为0的前一项rn即是a和b的最大公约数.这种方法称为“欧几里得辗转相除法”.第4节 算法案例? 伪代码Read a, b
While Mod(a,b)≠0
r←Mod(a,b)
a←b
b←r
End While
Print b ? 流程图a = InputBox("输入第一个自然数")
b = InputBox("输入第二个自然数")
Do
r = a Mod b
a = b
b = r
Loop Until r = 0
MsgBox "最大公约数为" & a? Excel VBA-1算法 案例a = InputBox("输入第一个自然数")
b = InputBox("输入第二个自然数")
While a Mod b < > 0
r = a Mod b
a = b
b = r
Wend
MsgBox "最大公约数为" & a? Excel VBA-2例3 用二分法求方程x3 - x - 1 = 0在区间 [1,1.5] 内的一个近似解(误差不超过0.001)。? 问题背景与分析第一步 确定有解区间[a, b]
第二步 取[a, b]的中点
第三步 计算函数在中点处的函数值
第四步 判断中点处函数值是否为0
第五步 判断新的有解区间的长度是否小于 给定的误差第4节 算法案例? 伪代码10 Read a, b, c
20 x0←(a + b)/2
30 f(a)←a3 – a – 1
40 f(x0)←x03 – x0 – 1
50 If f(x0) = 0 Then Goto 120
60 If f(a)f(x0) < 0 Then
70 b←x0
80 Else
90 a←x0
100 End If
110 If |a – b|≥c Then Goto 20
120 Print x0 ? 流程图10 a = Val(InputBox("输入区间左端点值"))
20 b = Val(InputBox("输入区间右端点值"))
30 c = Val(InputBox("输入误差点限制"))
40 x0 = (a + b) / 2
50 f1 = a^3 - a - 1
60 f2 = x0^3 - x0 - 1
70 If f2 = 0 Then Goto 140
80 If f1*f2 < 0 Then
90 b = x0
100 Else
110 a = x0
120 End If
130 If Abs(a – b) >= c Then Goto 40
140 MsgBox "方程的近似解为" & x0? Excel VBA-1a = Val(InputBox("输入区间左端点值"))
b = Val(InputBox("输入区间右端点值"))
c = Val(InputBox("输入误差限制"))
Do
x0 = (a + b) / 2
f1 = a^3 - a - 1
f2 = x0^3 - x0 - 1
If f2 = 0 Then Exit do
If f1*f2 < 0 Then
b = x0
Else
a = x0
End If
Loop Until Abs(a – b) < c
MsgBox "方程的近似解为" & x0? Excel VBA-2a = Val(InputBox("输入区间左端点值"))
b = Val(InputBox("输入区间右端点值"))
c = Val(InputBox("输入误差限制"))
Do
x = (a + b) / 2
If f(x) = 0 Then Exit do
If f(a)*f(x) < 0 Then
b = x
Else
a = x
End If
Loop Until Abs(a – b) < c
MsgBox "方程的近似解为" & x? Excel VBA-3谢谢!课件30张PPT。人教A版高中数学必修3
多媒体课件多思、创新、融合随着计算科学和信息技术的飞速发展,计算机已经成为人们日常生活中不可缺少的工具,计算机几乎渗透都了生活的各个领域,那么,你知道计算机的工作原理吗?算法是计算机工作的基础,算法的发展推动了计算机的发展算法的思想已经渗透到社会的方方面面。在以前的学习中,虽然没有出现算法这个名词,但实际上在数学教学中已经渗透了大量的算法思想,如四则运算的过程、求解方程的步骤等等。完成这些工作都需要一系列程序化的步骤,这就是算法的思想。思考解二元一次方程组:还记得它的解法吗?1.②-①×2,得:5y=32. 解③的…………③…………①…………②∴3.将 代入①.得解我们可以对它进行一般化:按照上面步骤求解。可以得到二元一次方程组的一般算法,我们可以根据这一算法编制计算机程序,让计算机自动来完成二元一次方程组的解怎样解它的出一组解?算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法,在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机用有穷的步骤解决一类问题的明确、有效的方法。 算法的每一种运算必须有确定的意义,该种运算应执行何种动作应无二义性,目的明确 一个算法总是在执行了有穷步的运算后终止,即该算法是可达的 现代数学中算法(algorithm)一词即来源于花拉子米的人名花拉子米(Algoritmi)(约780~850),中世纪阿拉伯数学家,天文学家。生于波斯北部城市花拉子模,卒于巴格达。他对天文历法、地理地图、代数学等方面均有所贡献 要求算法中有待实现的运算都是基本的,每种运算至少在原理上能由人用纸和笔在有限的时间内完成 其主要数学著作有:
  一是成书于820年左右的《代数学》(原名为《阿尔热巴拉和阿尔穆卡巴拉》,意为还原与对消,亦即方程两端的移项和同类项合并)是代数学发展史上的重要经典著作;
  二是《花拉子米算术》,介绍了印度传入的十进位值制记数法和以此为基础的算术知识。
  现代数学中算法一词即来源于这部著作的书名,即花拉子米的人名。
??? 《代数学》受到希腊数学乃至印度数学的影响,它不仅对阿拉伯数学而且对欧洲数学的发展产生了深远的影响。
  因此在历史上,花拉子米有“代数学之父”的称号。按照上面的理解,我们可以设计出很多具体的数学问题的算法。例1.任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数作出判定只能被1和它本身整除的大于1的整数算法分析:根据质数的定义有:第一步:判断n是否被2整除,若n=2,则n是质数;若n>2则执行第二步第二步:一次从2~n-1检验是不是n的因数,即整除n的数,若有,则n不是质数,若无,则n是质数这样判断一个大于1的整数是否为质数的最基本的算法1.任意给定一个大于1的正整数n,设计一个算法求出n的所有因数步骤:1.以此以1~n整除n,若能整除,则是n的因子;若不能整除,则不是n的因数.练一练2.输出所有n的因数你还有其他的算法吗?例2.用二分法设计一个求方程 的近似根的算法1.回顾二分法求解的过程:2.设计误差度(精确度):3.解题步骤:第一步: 因为f(1)<0,f(2)>0,所以设X1=1,X2=2第三步:若f(x1).f(m)>0,则令x1=m,否则令x2=m第四步:判断|x1-x2|<0.005是否成立?若是,则x1,x2之间的任意实数都看做方程的近似根,否则返回第二步0.005第二步:令 ,判断f(m)是否为0,若是,则m即为所求,若否,则继续判断f(x1).f(m)>o于是,开区间(1.4140625,1.41796875)中的实数都是满足条件的原方程的近似根。2.利用最小二乘法求方程 在〔0,4〕上的根的算法(精确到0.001).事实上,例1我们可以用另外一种方法表示,如图所示:标记:
flag=0表示n不是质数
Flag=1表示n是质数这种方式的表示,我们就叫程序图框(流程图)来表示算法,程序图框要比自然语言来得更准确、直观、方便通常,程序图框由程序框和流程线组成,一个或几个程序框的组合表示算法中的一个步骤;流程图的方向箭头就是流程的执行方向,为了使算法的表述简洁、清晰、直观、便于检查,以及交流,流程框统一利用下面的形式表示各自的功能:从上面的例1图框可以看到三种不同的结构形式:顺序结构循环结构条件结构顺序结构是指按照书写顺序依次执行的算法结构.数学中常见的作图问题一般都是顺序结构的算法. 1.它只有在A执行完的情况下,才去执行B,如例1,只有在完成上一步的基础上,才能执行下一步2.顺序结构只能处理一些简单的问题,如代入公式求值,求函数值等,不包含判断和重复操作的过程3顺序结构是最基本的结构,任何结构都含有顺序结构例3已知三角形的边长分别为:2,3,4,利用海伦_秦九韶公式设计一种算法求出它的面积已知三角形的三边为a,b,c则面积算法设计:开始结束开始结束输入a,b,c3.一个船工要送一匹狼、一只山羊和一棵白菜过河,每次除船工外,只能带一个乘客渡河,并且狼和山羊不能单独在一起,山羊和白菜也不能单独在一起.应该如何渡河? ???有些问题利用顺序结构我们无法解决,它需要先进行条件判断,判断的结果确定后面的步骤,象这样的结构我们通常称为条件结构,条件结构的算法流程如图所示:在算法中含有一个判断,通过判断来选择执行哪里个流程,一般来讲,数学中需要分类讨论或分段函数问题均要用到条件结构例4.任意给定3个正实数,设计一种算法判断分别以这3个数为边长的三角形是否存在。画出它的流程框图算法分析:根据三角形存在的条件:任意两边之和大于第三边,需要用到条件结构4.通常说一年有365天,它表示地球围绕太阳一周所需要的时间,但事实上,并不是那么精确,根据天文资料,地球围绕太阳一周的时间是365.2422天,称之为天文年,这个误差看似不大,却引起季节和日历之间难以预料的大变动,在历法上规定4年一闰,百年少一闰,四百年多一闰,如何判断一年是否是闰年,请你设计一个算法,解决这个问题,并用流程图描述这个算法。在一些算法中,经常会出现从某处开始,按照一定的条件,反复执行某一处理,如在复利利率的计算问题,这样的结构就是循环结构,反复执行的处理步骤称为循环体,显然,循环结构中一定包含条件结构。在循环结构中,通常有一个起计数作用的变量,这个变量的取值一般都包含在循环体中,通过它来判断是执行循环还是终止循环.我们叫这个变量为循环变量说明:1循环体是算法的核心2循环变量控制着循环的开始和结束3循环体必须有终止条件例5.设计一个算法1+2+3+...+100的算法,并画出程序图框算法分析:只需要利用一个累加变量和一个计数变量,将累加变量从1累加到100,计数变量的值可以从1~100.累加变量sum计数变量i5.最近,中国应欧美等发达国家的要求将人民币增值,以保证世界通货的稳定,但是这将不利于我国经济的发展,有关专家研究,我国的通货膨胀(人民币贬值)率保持在3%左右将对我国经济的稳定有利无害,所谓通货膨胀率为3%,是指每年消费品的价格增长率为3%。在这种情况下,某种品牌的钢琴2004年的价格为10000元,请用流程图描述这种钢琴今后5年的价格变化情况,并输出这5年的价格。说明:1.算法的设计不唯一2.循环体的设计要注意数与数之间的变化规律,也就是变量之间的关系,3.循环结构大大的简化了算法,循环变量在构造循环结构中发挥了重要作用,这就是“函数思想”4.循环结构又分为2种:当型(while)和直到型(until).While型是先判断是否满足条件,满足条件是执行循环体,不满足则停止until型是先执行循环体在判断条件,不满足条件是执行循环体,满足则停止小结算法与程序框图算法的概念算法的起源算法的基本思想程序图框相关概念基本结构顺序结构条件结构循环结构当型(while)直到型(until)课后练习1. 尺规作图,确定线段的一个5等分点的一种2.一群小兔一群鸡,两群合到一群里,要数腿共48,要数脑袋整17,多少只小兔多少只鸡?3.任意输入一个实数x,计算f(x)的值,其中写出下列问题的一种算法4大自然的造化充满无尽的秘密,下面的这些花纹和我们的数学充满了联系,它的花纹刚好是斐波那挈数列的一个自然现象的体现,斐波那挈数列表示这样一列数:0,1,1,2,3,5,…后一项等于前两项的和,请你设计一个算法流程,输出这个数列的前50项。课件26张PPT。算法的概念先去括号再乘除后加减1、什么是算法呢?2、两个大人和两名儿童一起渡河,渡口只有一条小船,一次只能渡过一个大人或两名儿童,他们四人都会划船,但都不会游泳。请你帮他们设计一个渡河方案。什么是算法呢?什么是算法呢?算法(algorithm):
简单地说,算法就是解决某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能在有限步之内完成。什么是算法呢?
算法的特征
明确性:算法对每一个步骤都有确切的、非二义性的规定,即每一步对于利用算法解决问题的人或计算机来说都是可读的、可执行的,而不需要计算者临时动脑筋.
有效性:算法的每一个步骤都能够通过基本运算有效地进行,并得到确定的结果;对于相同的输入,无论谁执行算法,都能够得到相同的最终结果.
有限性:算法应由有限步组成,至少对某些输入,算法应在有限多步内结束,并给出计算结果.
输入、输出信息可以表示。
第一步:第二步:第三步:(消元)(解一元一次方程)①+②×2,得 ③解③得(带入求解)将 代入①,得 写一写写出解第二个方程组的算法:第一步:第二步:第三步:③解③,得 ④将④带入①得变一变第一步:第二步:第三步:③解③,得 ④将④带入①得①②解③得③--------------------------------------------------- 这 两个解方程组算法的适用范围有何不同?你对以下的“算法”如何理解? 要把大象装冰箱,分几步?答:分三步:第一步:打开冰箱门第二步:把大象装冰箱第三步:关上冰箱门问: 一位商人有9枚金币,其中有一枚略轻的假币,你能用天平(无砝码)将假币找出来吗?写出解决这一问题的算法。第一步:把9枚金币平均分成三组,每组三枚。先将其中的两组放在天平的两边,如果天平不平衡,那么假金币就在轻的那一组;如果天平左右平衡,则假金币就在未称量的那一组里。取出含假币的那一组,从中任取两枚金币放在天平两边进行称量,如果天平不平衡,则假金币在轻的那一边;若平衡,则未称的那一枚就是假币。第二步:第三步:有人对歌德巴赫猜想“任何大于4的偶数都能写成两个奇质数之和”设计了如下操作步骤:第一步:检验6=3+3第二步:检验8=3+5。。。利用计算机无穷地进行下去!请问,利用这种程序能够证明猜想的正确性吗?第三步:检验10=5+5这是一种算法吗?现在你对算法有了新的认识了吗? 说一说 你能就生活中的某些事件描述一下算法吗?做一做 蓝墨水瓶里错装了红墨水,红墨水瓶里错装了蓝墨水,请你设计一个算法将它们改正过来。做一做第一步:第二步:第三步:判断 是否等于1。若是,则 既不是质数,也不是合数。若 >1,则执行第二步。判断是 否等于2。若 =2,则 是质数;若 >2,则执行第三步。 任意给定一个正整数 ,试设计一个算法对 是否为质数做出判断。依次检验 的结果是否
为整数。若有,则 不是质数;若没有,则 是质数。用二分法设计一个求方程x2-2=0(x>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:第二步:计算101×50;第三步:写出运算结果算法2:第一步:取n=100;
第二步:计算第三步:写出运算结果写出求1+2+3+ +100的一个算法(1+100)+(2+99)+ +(50+51);第一步:将原式变形为你会了吗? 在数学中,现代意义上的算法通常是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确的和有效的,而且能够在有限步之内完成。算法是这样的:1、任意给定一个大于1的整数n,怎样判断其是否为质数?第一步:判断n是否等于2,若n=2,则n是质数;
若n>2,则执行第二步。第二步:依次从2至(n-1)检验是不是n的因数, 即整除n的数, 若有这样的数,则n不是质数;若没有这样的数,则n是质数。练一练2、就你一天的生活或某一个片段说出一个算法算法的基本思想: 探求解决问题的一般性方法,并将解决问题的步骤用具体化、程序化的语言加以表述。2、现有有限个正整数,怎样从中找出最大值?课下思考:3、有一名船夫,要带着一匹狼、一只羊和一棵白菜过河。当船夫不在的时候,狼会吃掉羊,羊会吃掉白菜。而每次过河该船只能容下船夫和一样东西,请问,船夫应该怎样过河?1、写出你在家里烧开水过程的一个算法。课件29张PPT。前面我们学习了算法的基本结构:顺序结构、条件结构和循环,它们可以利用框架结构来说明顺序结构条件结构顺序结构是最基本的结构,是任何结构都需要用到的,条件结构是我们在解决条件判断问题中,常用到的一种结构,它是计算机基本的逻辑推理结构,循环结构是解决反复问题的结构循环结构但是,当计算机真正运行算法时,计算机是无法“理解”自然语言或程序框图的,真正起作用的还是程序设计语言(programming language),计算机通过程序设计语言将它们“翻译”成计算机语言计算机语言有很多种,为了实现算法中三种最基本的结构:顺序结构、条件结构和循环结构,个种程序设计语言都要用到下面的最基本的算法语句:输入语句 输出语句 赋值语句
条件语句 循环语句我们使用的程序设计语言虽然有很多种,如:BASIC、PASCAL、C、COBOL、FORTRAN、LOGO以及VC、VB语言,但在语句形式以及语法上和BASIC语言类似,稍加改造就可以在计算机上运行BASIC语言全称是Beginner’s all Purpose Symbolic Instruction Code,意为“初学者通用符号指令代码“。1964年由美国达尔摩斯学院的Thomas和John G.Kemeny完成设计并提出了BASIC语言的第一个版本,经过不断丰富和发展,现已成为一种功能全面的中小型计算机语言。BASIC易学、易懂、易记、易用,是初学者的入门语言,也可以作为学习其他高级语言的基础。BASIC有解释方式和编译方式两种翻译程序 下面我们就这些基本语句来进行一一说明John G.KemenyThomas1.输出、输入和赋值语句基本上对应算法中的顺序结构利用输入、输出语句可以实现信息的录入和结果的输出例1.用描点法作函数 的图像1.描点法作图需要用到哪些步骤?2.描点法作图应该注意哪些问题?描点法作图时,我们要计算自变量和函数的一组对应值,我们可以利用编程来实现对应数值的计算程序:INPUT “x=”;x
y=x^3+3*x^2-24*x+30
PRINT X
PRINT Y
END一、输入语句1、一般格式:INPUT “提示内容”;变量②“提示内容”提示用户输入什么样的信息。可以是中文,也可以是其他的③变量是指程序在运行时其值是可以变化的量。2、说明:①作用为实现算法的输入信息功能。④输入语句要求输入的值只能是具体的常数。⑤提示内容与变量之间用“;”隔开,有多个变量的输入时,变量与变量之间用“,”隔开。INPUT “Maths,Chinese,English”;a,b,c二、输出语句1、一般格式:PRINT “提示内容”;表达式2、说明:①作用是实现算法的输出结果功能。②“提示内容”提示用户输出什么样的信息。③表达式是指程序要输出的数据。④输出语句可以输出常量、变量或表达式的值
及字符。INPUT “Maths=”;a
INPUT “Chinese=”;b
INPUT “English=”;c
PRINT “The average is”;(a+b+c)/3三、赋值语句1、一般格式:变量=表达式2、说明:①作用是将表达式所代表的值赋给变量。②赋值语句中的“=”称为赋值号。③赋值语句右边可以是一个数据、常量和算式,
左边只能是变量,不能为表达式。④赋值号左右不能对换。除了INPUT语句,例1中也可以用“赋值语句”给变量提供初值例2。交换两个变量A,B的值INPUT A
INPUT B
PRINT A,B
X=A
A=B
B=X
PRINT A,B
END先将A的值赋予X这时X取A的值再将B的值赋予A这时A取B的值再将X的值赋予B这时B取X的值即A的值练一练1、写出求1+2+3+4+5+6+7+8的一个程序算法2、写出用公式法求x2-2x-8=0的根的程序INPUT “n=”;n
s=n*(n+1)/2
PRINT s
ENDINPUT a,b,c
p=-b/(2*a)
q=SQR(b^2-4*a*c)/2*a
x1=p+q
x2=p-q
PTINT x1,x2
ENDa=1;b=-2;c=-8
p=-b/(2*a)
q=sqr(b^2-4*a*c)/2*a
x1=p+q
x2=p-q
PTINT x1,x2
END一般形式系统自带的算术平方根函数4、根据下列程序,画出程序框图INPUT x,y
PRINT x/2,3*y
x=x+1
y=y-1
PRINT x,y
END3.写出右图程序图框的程序语言,并说明它的作用在我们了解了这些基本的输入、输出、赋值语句后,我们就可以利用它来设计比较复杂的程序了四、条件语句一1、一般格式:IF 条件 THEN
语句 1
ELSE
语句 2
END IF2、说明:在条件语句的一般格式中,“条件”表示判断的条件;
“语句 1”表示满足条件时执行的操作内容;“语句 2”表示不满足
条件时执行的操作的内容;END IF表示条件语句的结束。程序图框五、条件语句二一般格式:IF 条件 THEN
语句
END IF说明:“条件”表示判断的条件,“语句”表示满足条件时执行
的操作内容;条件不满足时,结束程序,END IF表示条件语
句的结束。在某些情况下,也可以这样来表示IF-THEN语句:结合上面的两种IF-THEN语句,我们来看下面的例子例3、编写程序,输入一个x的值,要求输出它的绝对值。INPUT x
TF x>=0 THEN
PRINT x
ELSE
PRINT -x
END IF
END程序图框例4、编写程序,输入一个x的值,如果它是正数,则输出它,
否则不输出。INPUT x
IF x>0 THEN
PRINT x
END IF
END程序如图所示你会画它的程序框图吗?练一练6.广州市出租车公司规定:2.3公里及2.3公里以内为起步价7元,若超过2.3公里,超过部分按每公里2.6元收费,用语句描述一个乘客所付车费的算法,并画出流程图.INPUT x
IF x≤2.3 THEN
y=7
ELSE
y=7+2.6(x-3)
END IF
PRINT y
END你了解当地的出租车行情吗?你知道你乘出租车要付多少钱吗?7.如图,在边长为4的正方形ABCD的边上有一点p,沿着折线BCDA运动,设点p运动的路程为x,⊿APB的面积为y,求y与x之间的关系式,设计算法,画出流程图。分析:依据数学建模知识我们知道:INPUT X
IF 0≤x≤4
y=2x
ELSE
IF X≤8
y=8
ELSE
y=2*(12-X)
END IF
END IF
PRINT y
END六、当型循环语句(WHILE 语句)1、一般格式:WHILE 条件
循环体
WEND2、说明:先判断条件,再执行循环体算法的循环结构是由循环语句来实现的,对应的两种循环结构分别用下列语句表示:例5.利用WHILE语句设计:1+2++...+100的一个算法i=1
Sum=0
WHILE i<100
sum=sum+1
i=i+1
WEND
PRINT sum
END练一练8.设计一种算法计算全班同学期中考试各科的平均成绩。9.设计算法,输出斐波那挈数列的前50项算法七、直到型循环语句( until 语句)1、一般格式:DO
循环体
LOOP UNTIL 条件2、说明:先执行循环体一次,再判断。上面的例5我们也可以利用UNTIL语句来设计算法i=1
sum=0
Do
sum=sum+1
i=i+1
LOOP UNTIL i>100
PRINT sum
END例6.求所有立方小于10000的正整数.i=1
DO
PRINT i
i=i+1
LOOP UNTIL i*i*i>10000
END练一练基本结构流程图顺序结构变量与赋值循环结构基本语句循环语句条件语句WHILE语句DO语句IF-THEN语句语句适用结构算法条件结构小结1.注重对算法学习过程的评价 (1)对算理的理解.换句话说,算法的思路是否清楚. (2) 对算法的表述,分两个层次:    ①算法表述是否正确,符合逻辑;   ②算法表述是否简洁清楚.2.注重对知识、技能的评价 (1)能够正确的使用自然语言、流程图和基本语句来描述算法是本章的基础知识和基本技能 (2)对算法及其流程等知识有较为深层次的理解和应用 1.最近,欧美等发达国家要求中国人民币增值,以保证世界通货的稳定,但是这将不利于我国经济的发展,有关专家研究,我国的通货膨胀率保持在3%左右将对我国经济的稳定有利无害,所谓通货膨胀率为3%,是指每年消费品的价格增长率为3%。在这种情况下,某种品牌的钢琴2004年的价格为10000元,请用流程图描述这种钢琴今后5年的价格变化情况,并输出这5年的价格。课后练习2.设计一个算法简化二分法求方程的根课件48张PPT。人教A版高中数学必修3
多媒体课件多思、创新、融合复习回顾基本结构流程图顺序结构变量与赋值循环结构基本语句循环语句条件语句WHILE语句UNTIL语句IF-THEN语句语句适用结构算法条件结构我们这节课就利用基本的算法程序来解决一些实际问题,进一步体会算法的程序思想。案例1.辗转相除法与更相减损术在初中,我们已经学过求最大公约数的知识,你能求出18与30的最大公约数吗? 所以,18和30的最大公约数是:2×3=6但是,当我们处理较大数(如:8251与6105)的最大公因数时,如果利用这种方法可能计算量比较大,步骤比较多。下面我们介绍一种古老而有效的算法——辗转相除法这种算法是欧几里得公元前300年左右首先提出的,因此又叫欧几里得算法例1 求两个正数8251和6105的最大公约数。 分析:8251与6105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数 解8251=6105×1+2146 显然8251和6105的最大公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数,所以8251与6105的最大公约数也是6105与2146的最大公约数 继续下去,我们得到:欧几里得(公元前330-公元前275):古希腊数学家,雅典人
  欧几里得是柏拉图的学生,长期在亚历山大里亚教书。
  公元前300年左右,代表作《几何原本》13卷问世,创立了著名的欧氏几何,至今仍为中学生必学的一门基础知识。欧几里得对光学也有一定研究。6105=2146×2+1813 2146=1813×1+333 1813=333×5+148 333=148×2+37 148=37×4+0 则37为8251与6105的最大公约数 这就是辗转相除法,有除法的性质可以知道,对于任意两个正整数,上述除法步骤总可以在有限步骤之后完成你能写出它的算法程序吗?利用辗转相除法求最大公约数的步骤如下: 第一步:用较大的数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第n步:依次计算直至rn=0,此时所得到的rn-1即为所求的最大公约数 ………………程序图框带余除法INPUT “请输入m,n的值”;m,n
IF m>n THEN
a=m
m=n
n=a
END IF
DO
r=m MOD N
m=n
n=r
LOOP UNTIL r=0
PRINT m
END作用是什么?为什么要用直到型循环结构?练一练1.利用辗转相除法求两数4081与20723的最大公约数 ,写出它的流程框图和BASIC程序更相减损术 我国早期也有解决求最大公约数问题的算法 《九章算术》(公元50年~100年或更早 )是中国古代数学专著,承先秦数学发展的源流,进入汉朝后又经许多学者的删补才最后成书,这大约是公元一世纪的下半叶。它的出现,标志着中国古代数学体系的形成。 历代数学家把它尊为“算经之首”.这是世界上最早的印刷本数学书。
? 《九章算术》共收有 246个数学问题,分为九章。分别是:方田、栗米、衰分、少广、商功、均输、盈不足、方程、勾股。
? 《九章算术》是世界上最早系统叙述了分数运算的著作;其中盈不足的算法更是一项令人惊奇的创造;“方程”章还在世界数学史上首次阐述了负数及其加减运算法则。更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。翻译出来为:第一步:任意给出两个正数;判断它们是否都是偶数。若是,用2约简;若不是,执行第二步。第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。第三部:继续第二步,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数例2 用更相减损术求98与63的最大公约数. 解 由于63不是偶数,把98和63以大数减小数,并辗转相减 98-63=35
63-35=28
35-28=7
28-7=14
14-7=7所以,98与63的最大公约数是7 两种算法比较,你有什么发现?比较辗转相除法与更相减损术的区别 (1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到练习思考一.用辗转相除法求下列各组数的最大公约数,并在自己编写的BASIC程序中验证。 (1)225,135 (2)98,196 (3)72,168思考二:用更相减损法可否求上述3组数的最大公约数?可否利用更相减损法设计出程序框图及程序?若能,在电脑上测试自己的程序;若不能说明无法实现的理由。思考三:利用辗转相除法是否可以求两数的最大公倍数?试设计程序框图并转换成程序在BASIC中实现。 据我们的计算统计可以得出我们共需要10次乘法运算,5次加法运算 我们把多项式变形为: 再统计一下计算当时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。显然少了6次乘法运算。这种算法就叫秦九韶算法。秦九韶(1202--1261年),字道古,安岳县人。其父秦季栖,进士出身,官至工部郎中、秘书少监。秦九韶性敏慧,勤奋好学,幼年随父居中都(今北京),受到名师指导,学习日益增进。及长,随父迁湖州(今浙江吴兴县),在西门外修建住房,由秦九韶设计施工,堂分7间,后为列室,仅中堂1间,纵横7丈,极其宏伟宽敞,显示出他在建筑方面的才能 它的一般计算步骤如下:求多项式的值时,首先计算最内层括号内的一次多项式的值,即:再有内向外逐层计算一次多项式的值,即:这样将求n次多项式f(x)的值转化为求n个一次多项式的值。i=0
WHILE i≤5
INPUT a[i]
WEND
DO
v=a[5]
v=v*x[0]+a[5-n]
n=n+1
LOOP UNTIL n>6
END思考:(1)例1计算时需要多少次乘法计算?多少次加法计算?
(2)在利用秦九韶算法计算n次多项式当时需要多少次乘法计算和多少次加法计算?练习案例3.排序问题你会使用这些字典吗?为了便于查询和检索,常常需要根据要求将被查寻的对象按照一定的顺序排列,通常称为排序,你会从这些书籍中查阅你想要的东西吗?我们在一个已经排好循序的一系列数中插入一个数据,成为一个新的系列,且仍按原来的规则排序。直接插入排序要将8插入到{1,3,5,7,9,11,13}中,我们怎样考虑?确定8在原系列中的位置,使8小于或等于原系列中右边的数据,大于或等于左边的数据将这个位置空出来,将数据8插进去8例题分析例3.将数列{49,38,65,97,76,13,27,49}按小到大的顺序排列我们的想法是:1.先排49,38的顺序:38,492.比较第三个数与它们的大小得到:38,49,653.比较第四个数与2的顺序得到:38,49,65,97n.第n个数与前面数的关系,得到最后的排序:
13,27,38,49,49,65,76,97……反复使用直接插入排序算法,即首先把第一个数当作一个基准,插入第二个数变成有两个数据的有序列,再插入第三个数,依此类推,就完成了整个无序列的有序化。流程图如下:你会设计它的BASIC算法吗?1排序号:上述数据我们还可以这样来排序:2排序现将1号数据49和2号数据38比较,因为49>38所以,49和38的位置互换,变为:第一次排序第一步:1号2号排序第二步:2号3号排序因为49<65所以这俩数的序号不变第三步:比较3、4号数据方法同第二步,因为65<97所以数据顺序不变第四步:比较4、5号数据方法同第一步,因为97>76,所以4、5号数据互换,则:第五步:比较5、6号数据:方法同第二步,97>13则,交换5、6号数据,则:第六步:比较6、7号数据同理,上面的顺序可以变为:同理第七步比较7、8号数据后可以变为:这样就完成了第一次排序,它的基本特征是将最大数排到了最右边,然后再从头开始,进行第二次排序,将第二大的数据排到了倒数第二位,反复下去,就可以完成排序。一共要进行7次才能完成。我们叫它冒泡排序(bubble sorting)思考你会用冒泡法将上面的数据按从大到小的顺序排列吗?完成所有的排序需要多少步比较?你还有其他的排序方法将上面的数据按从大到小的顺序排列吗?练习请你设计一个数据列为R[1],R[2],…,R[10],要求从小到大的顺序排列?1.画出一次冒泡排序的算法流程图2.画出整个冒泡排序的算法流程图整个排序流程图如图所示说明1.冒泡法排序完成n个数据的一次排序需要n-1次比较,完成整个排序需要(n-1)!次比较,对于数据较多时,计算量很大。2.有些数据的冒泡法排序可能用更少的步骤可以完成,后面的步骤可能毫无意义,但计算机必须完成。3.交换数据时注意引入第三方变量。案例4.进位制将 也加到和N上,这样a、b、c就在每一位上都恰好出现两次,所以有 分析:①你知道它的原理吗?从而 3194<222(a+b+c)<3194+1000,而a、b、c是整数
所以 15≤a+b+c≤18
因 222?15-3194=136,
222?16-3194=358,
222?17-3194=580,
222?18-3194=802
其中只有3+5+8=16能满足①式 事实上,这里面应用到了一个知识:
进位制进位制是人们为了计数和运算方便而约定的计数系统,约定满二进一,就是二进制;满十进一,就是十进制,等等,也就是说满几进一就是几进制,几进制的基数就是几大于1的整数由于自然数有无限多个,对于每一个自然数如果都用一个独立的名称或符号来读出它或表示它,那是很不方便的,也是不可能做到的。因此,需要建立一种读数、写数制度--进位制 十进制数 表示实际数值为:K进制数 实际表示数为:在日常生活中,我们最熟悉的还是十进制数,据说这和古人曾以手指计数有关为了区别进制,我们就用下标(k)表示k进制数a [n]是0~9的数子下面我们来用一个具体的例子来分析:例4.将二进制数110 011(2)化成十进制数解 根据k进制数的实际意义,我们可以这样来转换:INPUT a,b,c
i=1
b=0
WHILE i<=n
t=GET a[i]
b=b+t*k^(i-1)
i=i+1
WEND
PRINT b
ENDGET函数用于取出a的有数第i位例5.不89化为二进制数分析:89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1
=…
=1 011 001(2)所以上式可以表示为:1 011 001综合:上述方法叫做k进制数的除k取余法练一练5.把89化为五进制数思考:1如何将十六进制数A1F721化为二进制数一般方法:k进制数十进制数n进制数1010 0001 1111 0111 0010 0001算法程序图框算法语句辗转相除与更相减损术秦 九 韶 算 法排 序进 位 制