1、1 什么是算法 算法(algorithm)一词源于算术(algorism),算术方法的原义是一个由已知推求未知的运算过程。后来,人们把它推广到一般,指算法是在有限步骤内求解某一问题所使用的一组定义明确的规则,甚至把把进行某一工作的方法和步骤也称为算法。例如,人们在计算过程中,先乘除,后加减,从内到外去括号等规则,都是按部就班必须遵守的算法。人类最早关于算法的记录存在于在两河流域发现的公元前两三千年的泥板书上,其中的一个典型例子就是计算利息何时能够够等于本金。算法早期发展中值得一提的另一个成果应归功于古希腊的欧几里得,他提出的计算最大公约数的辗转相除法(又称欧几里得算法)至今仍在使用。欧几里得是
2、古代最有名望的学者之一,古希腊数学家,几何学的鼻祖。公元前300年左右,他所著几何原本13卷,是世界上最早公理化的数学著作。在几何原本中他充分总结了前人的生产经验和研究成果,从公理和公设出发,运用演绎法,经过逻辑推理和数学运算,创立了著名的欧几里得(简称欧氏几何)。在几何原本中,欧几里得还阐述了关于求两个整数的最大公约数的过程,这就是著名的欧几里得算法辗转相除法,其具体过程如下:设给定的两个正整数为m和n,求它们的最大公约数的步骤为:(1)以m除以n,令所得的余数为r(r必小于n);(2)若r0,则输出结果n,算法结束;否则,继续步骤(3)(3)令m=n,n=r,并返回步骤(1)继续进行。中国
3、古代数学研究中也有许多有关算法的成果。用我国传统的开方术求高次方程的近似根,是算法上的一大成就。此外,在社会上得到广泛使用的珠算口诀就可以看做是典型的算法,它把复杂的计算(例如除法)描述为一系列按口诀执行的简单的算珠拨动操作。中国古代数学以算法为主要特征,其中最具代表性的就是九章算术。九章算术是战国、秦、汉时期数学发展的总结,就其数学成就来说,堪称是世界数学名著。其内容按类分章,以数学问题的形式出现,包括分数四则运算、开平方与开立方(包括二次方程数值解法)、盈不足术、各种面积和体积公式、线性方程组解法、正负数运算的加减法则、勾股形解法(特别是勾股定理和求勾股数的方法)等。其中方程组解法和正负数
4、加减法则在世界数学发展上是遥遥领先的。就其特点来说,它形成了一个以筹算为中心,与古希腊数学完全不同的独立体系。在1114世纪约300年期间著名的数学家的著作中,如贾宪的黄帝九章算法细草,刘益的议古根源,秦九昭的数书九章,李治的测圆海镜和益古演段,杨辉的详解九章算法、日用算法和 杨辉算法中,算法的特点得到了进一步的强化和发展(其中包括发展了一套求高次方程近似根的方法。1)能行性能行性(effectiveness)算法的能行性包括两个方面:一是算法中的每算法的能行性包括两个方面:一是算法中的每一个步骤必须是一个步骤必须是能实现的能实现的。例如,在算法中,不允许。例如,在算法中,不允许出现分母为零的
5、情况;在实数范围内不能求一个负数出现分母为零的情况;在实数范围内不能求一个负数的平方根等。二是算法执行的结果要的平方根等。二是算法执行的结果要能达到预期的目能达到预期的目的的。通常,针对实际问题设计的算法,人们总是希望。通常,针对实际问题设计的算法,人们总是希望能够得到满意的结果。能够得到满意的结果。例如,某计算工具规定:大于例如,某计算工具规定:大于100的数认为是比的数认为是比1大很多,而小于大很多,而小于10的数不能认为是比的数不能认为是比1大很多;大很多;且在正常情况下出现的数或是大于且在正常情况下出现的数或是大于100,或是小于或是小于10.但指令但指令“输入一个输入一个X,若,若x
6、比比1大很多,则输大很多,则输出数字出数字1,否则输出数字,否则输出数字0”是不确定的。这是因是不确定的。这是因为,在正常的输入情况下,这一指令的执行可以为,在正常的输入情况下,这一指令的执行可以得到正确的结果,但在异常情况下(输入的得到正确的结果,但在异常情况下(输入的x在在10与与100之间),这一指令执行的结果就不确定之间),这一指令执行的结果就不确定了了 1210()121012101210()1210()1210算法的有穷性还应包括合理的执行时间的含义。如果一个算法的执行时间是有穷的,但却需要执行千万年显然这就失去了算法的实用价值。例如,克莱姆(Cramer)规则是求解线性代数方程组
7、的一种数学方法,但不能以此为算法,这是因为,虽然总可以根据克莱姆规则设计出一个计算过程用于计算所有可能出现的行列式,但这样的计算过程所需的时间实际上是不能容忍的。还例如,从理论上讲,总可以写出一个正确的弈棋程序,还例如,从理论上讲,总可以写出一个正确的弈棋程序,而且这也并不是一件很困难的工作。由于在一个棋盘上安而且这也并不是一件很困难的工作。由于在一个棋盘上安排棋子的方式总是有限的,而且,根据一定的规则在有排棋子的方式总是有限的,而且,根据一定的规则在有限次移动棋子之后比赛一定结束。因此弈棋程序可以考限次移动棋子之后比赛一定结束。因此弈棋程序可以考虑计算机每一次可能的移动,它的对手每一次可能的
8、应答,虑计算机每一次可能的移动,它的对手每一次可能的应答,以及计算机对这些移动的可能应答等等,直到每个可能的以及计算机对这些移动的可能应答等等,直到每个可能的移动停止下来为止。此外,由于计算机可以知道每次移动移动停止下来为止。此外,由于计算机可以知道每次移动的结果,因此总可以选择一种最好的移动方式。但即使如的结果,因此总可以选择一种最好的移动方式。但即使如此,这种弈棋程序还是不可能执行,因为所有这些可能移此,这种弈棋程序还是不可能执行,因为所有这些可能移动的次数太多,所要花费的时间不能容忍。由上述两个例动的次数太多,所要花费的时间不能容忍。由上述两个例子可以看出,虽然许多计算过程是有限的但仍有
9、可能无子可以看出,虽然许多计算过程是有限的但仍有可能无实用价值。实用价值。(4)算法必须拥有足够的情报算法必须拥有足够的情报 一个算法是否有效,还取决于为算法的执行所一个算法是否有效,还取决于为算法的执行所提供的情报是否足够。例如,对于指令提供的情报是否足够。例如,对于指令“如果小明是如果小明是学生,则输出字母学生,则输出字母Y,否则输出,否则输出N”。当算法执行过程。当算法执行过程中提供了小明一定不是学生的某种信息时,执行的结中提供了小明一定不是学生的某种信息时,执行的结果将输出字母果将输出字母N;当提供的只是部分学生的名单,且小;当提供的只是部分学生的名单,且小明恰在此名单之中,则执行的结
10、果将输出字母明恰在此名单之中,则执行的结果将输出字母Y。但如。但如果在提供的部分学生的名单中找不到小明的名字则果在提供的部分学生的名单中找不到小明的名字则在执行该指令时无法确定小明是否是学生。在执行该指令时无法确定小明是否是学生。狭义而言狭义而言,算法是专指用计算机解决某一算法是专指用计算机解决某一问 题 的 方 法 和 步 骤问 题 的 方 法 和 步 骤.著 名 计 算 机 科 学 家著 名 计 算 机 科 学 家D.E.Knuth在其在其计算机程序设计技巧计算机程序设计技巧一书一书中为算法所下的定义是:中为算法所下的定义是:“一个算法一个算法,就是一个就是一个有穷规则的集合有穷规则的集合
11、,其中之规则规定了一个解决某其中之规则规定了一个解决某一特定类型问题的运算系列一特定类型问题的运算系列”.1.算法的概念算法的概念复习回顾 。v用自然语言表达问题容易理解,但往往用自然语言表达问题容易理解,但往往不严格,易出现不严格,易出现“歧义性歧义性”,即对于同,即对于同一段文字,不同的人可能会有不同的理一段文字,不同的人可能会有不同的理解。例如请同学们理解解。例如请同学们理解“这个人连老张这个人连老张也不认识。也不认识。”这句话的含义。这句话的含义。算法的描述:自然语言算法的描述:自然语言新课引入为了使算法的程序或步骤表达得更为直观为了使算法的程序或步骤表达得更为直观,且不且不容易出现歧
12、异,我们更经常地用图形方式来表容易出现歧异,我们更经常地用图形方式来表达它达它.例如上一节例如上一节“例例1.任意给定一个大于任意给定一个大于1 1的整的整数数n,试设计一个程序或步骤对试设计一个程序或步骤对n是否为质数做是否为质数做出判定出判定”的算法可以用以下形式来表达的算法可以用以下形式来表达.开始开始输入输入ni=2i=i+1in或或r=0?n不是质数不是质数结束结束r=0?1否否是是求求n除以除以i的余数的余数1n是质数是质数是是否否这样的图我们称为程序框图这样的图我们称为程序框图i=i+1in或或r=0?否否是是求求n除以除以i的余数的余数输入输入ni=2n不是质数不是质数r=0?
13、n是质数是质数是是否否 尽管不同的算法千差万别尽管不同的算法千差万别,但它们都是由但它们都是由三种基本的逻辑结构构成的三种基本的逻辑结构构成的,这三种逻辑结构这三种逻辑结构就是就是顺序结构、选择结构、循环结构顺序结构、选择结构、循环结构.下面分下面分别介绍这三种结构别介绍这三种结构 三种不同的逻辑结构三种不同的逻辑结构.程序框图又称流程图程序框图又称流程图,是一种用规定的图是一种用规定的图形、指向线及文字说明来准确、直观地表示算形、指向线及文字说明来准确、直观地表示算法的图形法的图形.讲授新课1.程序框图的概念程序框图的概念2.常见的程序框图常见的程序框图图形符号图形符号名称名称功能功能流程线
14、流程线连接循环框连接循环框连结点连结点连接循环框图的两部分连接循环框图的两部分一、一、程序框图程序框图图形符号图形符号名称名称功能功能终端框终端框(起止框起止框)输入、输入、输出框输出框处理框处理框(执行框执行框)判断框判断框表示一个算法的表示一个算法的起始和结束起始和结束表示一个算法输表示一个算法输入和输出的信息入和输出的信息赋值、计算赋值、计算判断某一条件是否成判断某一条件是否成立立,成立时在出口处标成立时在出口处标明明“是是”或或“Y”,不不成立时标明成立时标明“否否”或或“N”.(1)(1)起止框起止框:框内填写开始、结束框内填写开始、结束,任何程序框任何程序框图中,起止框是必不可少的
15、;图中,起止框是必不可少的;(2)(2)输入、输出框输入、输出框:框内填写输入、输出的框内填写输入、输出的字母、符号等字母、符号等;(3)(3)处理框处理框(执行框执行框):):算法中需要的算式、算法中需要的算式、公式、对变量进行赋值等要用执行框表示公式、对变量进行赋值等要用执行框表示.(4)(4)判断框判断框:当算法要求在不同的情况下执当算法要求在不同的情况下执行不同的运算时,需要判断框行不同的运算时,需要判断框.框内填写框内填写判断条件判断条件.3.3.四种基本的框图及其功能用法四种基本的框图及其功能用法:为了使大家彼此之间能够读懂各自画出为了使大家彼此之间能够读懂各自画出的框图的框图,必
16、须遵守一些共同的规则必须遵守一些共同的规则,下面对一些下面对一些常用的规则作一简单的介绍常用的规则作一简单的介绍.(1)(1)使用标准的框图符号使用标准的框图符号.(2)(2)框图一般按从上到下、从左到右的方向画框图一般按从上到下、从左到右的方向画.(3)(3)除判断框外,大多数程序框图符号只有一除判断框外,大多数程序框图符号只有一个进入点和一个退出点,判断框是具有超过一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号个退出点的唯一符号.(4)(4)一类判断框是一类判断框是“是是”与与“否否”两分支的判两分支的判断断,而且有且仅有两个结果而且有且仅有两个结果;另一类是多分支判另一类是
17、多分支判断断,有几种不同的结果有几种不同的结果.4.画流程图的规则画流程图的规则(5)(5)在图形符号内描述的语言要非常简练清楚在图形符号内描述的语言要非常简练清楚.(7)(7)一个程序框图包括以下几部分一个程序框图包括以下几部分:表示相应操表示相应操作的程序框作的程序框;带箭头的流程线带箭头的流程线;程序框外必要的程序框外必要的文字说明文字说明(6)(6)起始框只允许一条流出线起始框只允许一条流出线,终止框只允许一终止框只允许一条流入线条流入线,输入框、输出框、处理框只有一条输入框、输出框、处理框只有一条流入线和一条流出线流入线和一条流出线,判断框有一条流入线和判断框有一条流入线和两条流出线
18、两条流出线,但任何时候只有一条流出线起作但任何时候只有一条流出线起作用用.二、二、顺序结构顺序结构及框图表示及框图表示1.顺序结构顺序结构:按照步骤依次执行的一个算法按照步骤依次执行的一个算法,称称为具有为具有“顺序结构顺序结构”的算法的算法,或者称为算法的或者称为算法的顺序结构顺序结构.语句语句A语句语句B2.顺序结构的流程图顺序结构的流程图 顺序结构是最简单的顺序结构是最简单的算法结构算法结构,语句与语句之间语句与语句之间,框与框之间是按从上到下框与框之间是按从上到下的顺序进行的的顺序进行的.它是由若干它是由若干个处理步骤组成的个处理步骤组成的,这是任这是任何一个算法都离不开的基何一个算法
19、都离不开的基本结构本结构.3.画顺序结构程序框图时注意事项画顺序结构程序框图时注意事项左图中左图中,语句和语句是依次执语句和语句是依次执行的行的,只有在执行完语句指定的只有在执行完语句指定的操作后操作后,才能接着执行语句所指才能接着执行语句所指定的操作定的操作(1)在程序框图中在程序框图中,开始框和结束框不可少;开始框和结束框不可少;(2)在算法过程中,第一步输入语句是必不在算法过程中,第一步输入语句是必不可少的可少的;(3)顺序结构在程序框图中的体现就是用流顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来程线将程序框自上而下地连接起来,按顺序按顺序执行算法步骤执行算法步骤【例
20、【例1】已知一个三角形的三边边长分别为】已知一个三角形的三边边长分别为2,3,4,利用海伦利用海伦秦九韶公式设计一个算法秦九韶公式设计一个算法,求出它的求出它的面积面积,画出算法的程序框图画出算法的程序框图.开始开始输出输出S结束结束2342p()()()Sp p a p b p c 开始框开始框处理框处理框输出框输出框结束框结束框【1】求两个实数】求两个实数 a,b 的算术平均值的算术平均值 aver.S1:输入两个实数输入两个实数 a,b;S2:计算:计算 c=a+b;S3:计算计算 aver=c/2;S4:输出输出 aver.输出输出 c开开 始始输入输入 bacaver=c/2结结 束
21、束解:用自然语言解:用自然语言【2 2】“鸡兔同笼鸡兔同笼”是我国隋朝时期的数学著是我国隋朝时期的数学著作作孙子算经孙子算经中的一个有趣而具有深远影响中的一个有趣而具有深远影响的题目的题目:“:“今有雉兔同笼今有雉兔同笼,上有三十五头上有三十五头,下有九下有九十四足十四足,问雉兔各几何问雉兔各几何.”.”请你设计一个这类问请你设计一个这类问题的通用算法题的通用算法.并画出算法的程序框图并画出算法的程序框图.设有设有X 只鸡只鸡,Y 只兔只兔.则则解解:鸡兔同笼鸡兔同笼,设鸡兔总头数为设鸡兔总头数为H,总脚数为总脚数为F,求求鸡兔各有多少只鸡兔各有多少只.算法算法分析分析如下:如下:,24.XY
22、HXYF 解方程组解方程组,得得(4)/2,(2)/2.XHFYFH 第一步第一步:输入总头数输入总头数H,总脚数总脚数F;第二步第二步:计算鸡的个数计算鸡的个数 x=(4H-F)/2;第三步第三步:计算兔的个数计算兔的个数 y=(F-2H)/2;第四步第四步:输出输出 x,y开始开始输出输出X,Y结束结束X=(4H-F)/2Y=(F-2H)/2输入输入H和和F解:用自然语言解:用自然语言程序框图程序框图第四步第四步:计算计算 ;【3】试描述求点试描述求点(x0,y0)到直线到直线Ax+By+C=0的的距离的算法距离的算法,并画出算法的程序框图并画出算法的程序框图.第一步第一步:输入输入x0,
23、y0,A,B,C;第二步第二步:计算计算Z1=Ax0+By0+C;第三步第三步:计算计算Z2=A2+B2;12|ZdZ 第五步第五步:输出输出d.解:用自然语言解:用自然语言开始开始输入输入x0,y0,A,B,CZ1=Ax0+By0+CZ2=A2+B2输出输出d结束结束12|zdz 程序框图程序框图课堂小结2.2.三种基本结构:三种基本结构:顺序顺序 条件条件 循环循环 结构结构现以证明现以证明,无论多么复杂的问题,其算法都可表无论多么复杂的问题,其算法都可表示为这三种基本结构的组合示为这三种基本结构的组合.其结构清晰、易于其结构清晰、易于理解、易于验证其正确性,也易于查错和排错理解、易于验证
24、其正确性,也易于查错和排错.1.算法的描述:算法的描述:(1)自然语言自然语言(2)程序框图程序框图:由于图形的描述方法既形象由于图形的描述方法既形象,又直又直观观,设计者的思路表达得清楚易懂,便于检查修设计者的思路表达得清楚易懂,便于检查修改改,所以得到广泛的应用所以得到广泛的应用.1.2 基本算法语句基本算法语句1.2.1 输入语句输入语句 输出语句输出语句 赋值语句赋值语句温故而知新温故而知新1.什么是程序框图?什么是程序框图?2.算法的基本逻辑结构有哪些?算法的基本逻辑结构有哪些?程序框图是一中用规定的图形、指向线及文程序框图是一中用规定的图形、指向线及文字说明来准确、直观的表示算法的
25、图形。字说明来准确、直观的表示算法的图形。算法的基本结构有三种:顺序结构、条件结构、算法的基本结构有三种:顺序结构、条件结构、循环结构,其中循环结构又分为当型结构和直到型循环结构,其中循环结构又分为当型结构和直到型结构两种。结构两种。1.1.计算机能够计算机能够 理解理解 的语言与人的语言有什么区别?的语言与人的语言有什么区别?计算机不同于人:人有大脑,可以思考问题,而计计算机不同于人:人有大脑,可以思考问题,而计算机则不能算机则不能.用自然语言和程序框图描述的算法,计算机用自然语言和程序框图描述的算法,计算机无法识别,必须转化为其能理解的语言,即程序语言。无法识别,必须转化为其能理解的语言,
26、即程序语言。2 2、基本的算法语句有哪些?各自对应怎样的算法结构?、基本的算法语句有哪些?各自对应怎样的算法结构?基本的算法语句有:输入语句、输出语句、赋值语基本的算法语句有:输入语句、输出语句、赋值语句、条件语句、循环语句;句、条件语句、循环语句;输入语句、输出语句、赋值输入语句、输出语句、赋值语句基本上是对应顺序结构,条件语句对应条件结构、语句基本上是对应顺序结构,条件语句对应条件结构、循环语句对应循环结构。循环语句对应循环结构。例用描点法作函数y=x3+3x2-24x+30的图象是时,需要求出自变量和函数的一组对应值。编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,
27、4,5时的函数值。程序:INPUT “x=“;xy=x3+3*x2-24*x+30 PRINT xPRINT yEND算法:开始输入x输出x、y结束3024323xxxyi=1i=i+1i11否是1、输入语句的一般格式是:举例:输入语、数、英三门课成绩或 INPUT”Maths,Chinese,English”;a,b,c INPUT “maths”;a INPUT “Chinese”;b INPUT “English”;cINPUT “提示内容”;变量INPUT“提示内容提示内容1,提示内容,提示内容2,提示内容,提示内容3,”;变量变量1,变量,变量2,变量,变量3,2、输入语句的作用是:
28、实现算法的输入信息功能实现算法的输入信息功能(即对程序中的变量赋值)(即对程序中的变量赋值)3、“提示内容”提示用户输入什么样的信息提示用户输入什么样的信息 变量是指程序在运行时其值是可以变化的量是指程序在运行时其值是可以变化的量;(一)输入语句:(一)输入语句:INPUT “n=”;nINPUT “a,b,c”;a,b,c输入框:INPUT“请输入需判断的整数n=”;n注:“提示内容”与变量之间必须用分号分号“;”隔开。各“提示内容”之间以及各变量之间必须用逗号逗号“,”隔开。但最后的变量的后面不需要后面不需要。提示内容和它后面的“;”可省略 由键盘输入的数据必须是常量,不能是函数、变不能是
29、函数、变量或表达式量或表达式,输入多个时用“,”分隔,个数与变量个数要相同 思考:能用输入语句表达中程序框图中的输入框的内容吗?输出语句的一般格式 PRINT “提示内容”;表达式输出语句的作用是实现算法的输出结果功能实现算法的输出结果功能;“提示内容”提示用户输入什么样的信息,表达式是指程序要输出的数据;输出语句可以输出常量、变量或表达式的值以及字符。(二)输出语句(二)输出语句The Fibonacci Progression is:1 1 2 3 5 8 13 21 34 55 输出框:PRINT n;“是质数。”输出框:PRINT n;“不是质数。”PRINT “The Fibonac
30、ci Progression is:”;1 1 2 3 5 8 13 21 34 55“”此时屏幕上显示为:思考:在1.1.2中程序框图中的输出框的内容怎样用输出语句来表达?例2:编写程序,计算一个学生数学、语文、英语三门课的平均成绩。程序算法开始输入a,b,c结束输出y3abcyINPUT“数学数学=”;aINPUT“语文语文=”;bINPUT“英语英语=”;cPRINT “The average=”;(a+b+c)/3 END(三)赋值语句:(三)赋值语句:用来表明赋给某一个变量一个具体的确定值的语句。变量变量=表达式表达式赋值语句赋值语句也可以给变量提供初值。它的一般格式是:其中“=”叫
31、做赋值号。赋值语句的作用:先计算出赋值号右边表达式的先计算出赋值号右边表达式的值,然后把这个值赋给赋值号左边的变量,使该值,然后把这个值赋给赋值号左边的变量,使该变量的值等于表达式的值。变量的值等于表达式的值。注:注:赋值号左边只能是赋值号左边只能是变量名字变量名字,而不,而不能是表达式能是表达式;右边表达式可以是一个数据、右边表达式可以是一个数据、常量或算式常量或算式.如:如:2=X是错误的是错误的 赋值号左右不能对换。如赋值号左右不能对换。如“A=B”“B=A”的含义运行结果是不同的。的含义运行结果是不同的。不能利用赋值语句进行代数式的演算。不能利用赋值语句进行代数式的演算。(如化简、因式
32、分解、解方程等)(如化简、因式分解、解方程等)赋值号赋值号“=”与数学中的等号意义不同。与数学中的等号意义不同。(5)对于一个变量可以多次赋值)对于一个变量可以多次赋值。例3:给一个变量重复赋值。A=10A=A+10PRINT AEND程序:程序:在此程序的基础上,设计一个程序,求A的输出值是 多少?A=10A=A+15PRINT AA=A+5PRINT AEND例4:交换两个变量A和B的值,并输出交换前后的值。分析:引入一个中间变量X,将A的值赋予X,又将B的值赋予A,再将X的值赋予B,从而达到交换A,B的值。(比如交换装满水的两个水桶里的水需要再找一个空桶)INPUT AINPUT BPR
33、INT A,BX=AA=BB=XPRINT A,BEND程序:程序:例例1 1 编写程序,计算一个学生语文、数学、英语三编写程序,计算一个学生语文、数学、英语三门课程的总成绩和平均成绩,并输出。门课程的总成绩和平均成绩,并输出。开始开始输入输入数学数学a a输入输入语文语文b b输入英语输入英语c c总分总分s=a+b+cs=a+b+c平均平均p=s/3p=s/3输出总分输出总分s s输出平均分输出平均分p p结束结束程序:INPUT“Maths=”;aINPUT“Chinese=”;bINPUT“Enghlish=”;cs=a+b+cp=s/3PRINT“sum=”;sPRINT“The a
34、verage=”;pEND程序框图:程序框图:INPUT“Maths,Chinese,English”;a,b,cS=a+b+cP=(a+b+c)/3PRINT“sum=”;sPRINT“The average=”;pEND若三角形的三边分别是若三角形的三边分别是a,b,c,借助三角型面积公式,借助三角型面积公式(海伦(海伦-秦九韶公式)秦九韶公式))()()(,()2abcSp papbpcp编写一个求三角形面积的程序。编写一个求三角形面积的程序。程序:程序:INPUT“a,b,c=”;a,b,cINPUT“a,b,c=”;a,b,cp=(a+b+c)/2p=(a+b+c)/2S=SQR(p
35、S=SQR(p*(p-a)(p-a)*(p-b)(p-b)*(p-c)(p-c)PRINT“PRINT“三角形面积三角形面积S=”;SS=”;SENDEND练习练习程序框图:程序框图:开始开始2abcp()()()sp p a p b p c输出输出s结束结束练习:编写一个程序,要求输入一个圆的半径,便能输出该圆的周长和面积。(PI=3.14)INPUT“半径为半径为R=”;RC=2*3.14*RS=3.14*R2PRINT“该圆的周长为该圆的周长为:”;CPRINT“该圆的面积为该圆的面积为:”;S END2CR2SR分析:设圆的半径为R,则圆的周长为,面积为可以利用顺序结构中的INPUT语
36、句,PRINT语句和赋值语句设计程序。语句语句一般格式一般格式主要功能主要功能说明说明输入语句输入语句输出语句输出语句赋值语句赋值语句INPUT“提示内容提示内容”;变量变量PRINT“提示内容提示内容”;表达式表达式变量表达式变量表达式可对程序中可对程序中的变量赋值的变量赋值可输出表达式可输出表达式的值,计算的值,计算可对程序中的变可对程序中的变量赋值,计算量赋值,计算(1)提示内容和它)提示内容和它后面后面 的的“;”可以省可以省略略(2)一个语句可以给多个变)一个语句可以给多个变 量赋值,中间用量赋值,中间用“,”分隔分隔(3)无计算功)无计算功能能(1)表达式可以是变量,)表达式可以是
37、变量,计算公式,或系统信息计算公式,或系统信息(2)一个语句可以输入)一个语句可以输入多多个表达式,中间用个表达式,中间用“,”分分隔隔(3)有计算功)有计算功能能(1)“=”的右侧必须的右侧必须是表达式,左侧必须是表达式,左侧必须是变量是变量(2)一个语句只能)一个语句只能给一个变量赋给一个变量赋(3)有计算功能)有计算功能【课堂小结】本节课介绍了输入语句、输出语句和赋值语句的结构特点及联系。掌握并应用输入语句,输出语句,赋值语句编写一些简单的程序解决数学问题,特别是掌握赋值语句中“=”的作用及应用。编程一般的步骤:先写出算法,再进行编程。我们要养成良好的习惯,也有助于数学逻辑思维的形成。课后作业1 1、设计一个解决以下问题的算法并画出流程图:、设计一个解决以下问题的算法并画出流程图:输入三角形的底和高,计算三角形面积。输入三角形的底和高,计算三角形面积。2 2、设计一算法:输入圆的半径、设计一算法:输入圆的半径,输出圆的面积,输出圆的面积,并画出流程图并画出流程图3 3、巩固今天所学内容,预习下一节课:条件、巩固今天所学内容,预习下一节课:条件 结构,循环结构结构,循环结构