1、第一章算法初步一、课标要求:1、本章的课标要求包括算法的含义、程序框图、基本算法语句,通过阅读中国古代教学中的算法案例,体会中国古代数学世界数学发展的贡献。2、算法就是解决问题的步骤,算法也是数学及其应用的重要组成部分,是计算机科学的基础,利用计算机解决问需要算法,在日常生活中做任何事情也都有算法,当然我们更关心的是计算机的算法,计算机可以解决多类信息处理问题,但人们必须事先用计算机熟悉的语言,也就是计算能够理解的语言(即程序设计语言)来详细描述解决问题的步骤,即首先设计程序,对稍复杂一些的问题,直接写出解决该问题的程序是困难的,因此,我们要首先研究解决问题的算法,再把算法转化为程序,所以算法
2、设计是使用计算机解决具体问题的一个极为重要的环节。3、通过对解决具体问题的过程与步骤的分析(如二元一次方程组的求解等问题) ,体会算法的思想,了解算法的含义。理解程序框图的三种基本逻辑结构:顺序结构、条件结构、循环结构。理解并掌握几种基本的算法语句输入语句、输出语句、赋值语句、条件语句、循环语句。进一步体会算法的基本思想。4、本章的重点是体会算法的思想,了解算法的含义,通过模仿、操作、探索,经过通过设计程序框图解决问题的过程。点是在具体问题的解决过程中,理解三种基本逻辑结构,经历将具体问题的程序框图转化为程序语句的过程,理解几种基本的算法语句。二、编写意图与特色:算法是数学及其应用的重要组成部
3、分,是计算科学的重要基础。随着现代信息技术飞速发展,算法在科学技术、社会发展中发挥着越来越大的作用,并日益融入社会生活的许多方面,算法思想已经成为现代人应具备的一种数学素养。需要特别指出的是,中国古代数学中蕴涵了丰富的算法思想。在本模块中,学生将在义务教育阶段初步感受算法思想的基础上,结合对具体数学实例的分析,体验程序框图在解决问题中的作用;通过模仿、操作、探索,学习设计程序框图表达解决问题的过程;体会算法的基本思想以及算法的重要性和有效性,发展有条理的思考与表达的能力,提高逻辑思维能力。1、结合熟悉的算法,把握算法的基本思想,学会用自然语言来描述算法。2、通过模仿、操作和探索,经历设计程序流
4、程图表达解决问题的过程。在具体问题的解决过程中理解程序流程图的三种基本逻辑结构:顺序结构、条件结构、循环结构。3、通过实际问题的学习,了解构造算法的基本程序。4、经历将具体问题的程序流程图转化为程序语句的过程,理解几种基本算法语句输入语句、输出语句、赋值语句、条件语句、循环语句,体会算法的基本思想。5、需要注意的问题1) 从熟知的问题出发,体会算法的程序化思想,而不是简单呈现一些算法。2) 变量和赋值是算法学习的重点之一,因为设置恰当的变量,学习给变量赋值,是构造算法的关键,应作为学习的重点。3) 不必刻意追求最优的算法,把握算法的基本结构和程序化思想才是我们的重点。4) 本章所指的算法基本上
5、是能在计算机上实现的算法。三、教学内容及课时安排:1.1 算法与程序框图 (约 2 课时)1.2 基本算法语句 (约 3 课时)1.3 算法案例 (约 5 课时)复习与小结 (约 2 课时)四、评价建议1重视对学生数学学习过程的评价关注学生在数学语言的学习过程中,是否对用集合语言描述数学和现实生活中的问题充满兴趣;在学习过程中,能否体会集合语言准确、简洁的特征;是否能积极、主动地发展自己运用数学语言进行交流的能力。2正确评价学生的数学基础知识和基本技能关注学生在本章(节)及今后学习中,让学生集中学习算法的初步知识,主要包括算法的基本结构、基本语句、基本思想等。算法思想将贯穿高中数学课程的相关部
6、分,在其他相关部分还将进一步学习算法1.2.2-1.2.3 条件语句和循环语句(第二、三课时) 教学目标:知识与技能(1)正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系。(2)会应用条件语句和循环语句编写程序。过程与方法经历对现实生活情境的探究,认识到应用计算机解决数学问题方便简捷,促进发展学生逻辑思维能力情感态度与价值观了解条件语句在程序中起判断转折作用,在解决实际问题中起决定作用。深刻体会到循环语句在解决大量重复问题中起重要作用。减少大量繁琐的计算。通过本小节内容的学习,有益于我们养成严谨的数学思维以及正确处理问题的能力。重点与难点重点:条件语句和循环语句的步骤、结构及功能。难
7、点:会编写程序中的条件语句和循环语句。学法与教学用具计算机、图形计算器教学设想【创设情境】试求自然数 1+2+3+99+100 的和。显然大家都能准确地口算出它的答案:5050。而能不能将这项计算工作交给计算机来完成呢?而要编程,以我们前面所学的输入、输出语句和赋值语句还不能满足“我们日益增长的物质需要” ,因此,还需要进一步学习基本算法语句中的另外两种:条件语句和循环语句(板出课题)【探究新知】(一)条件语句算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句。它的一般格式是:(IF-THEN-ELSE 格式)当计算机执行上述语句时,首先对 IF 后的条件进行判断,如果条件
8、符合,就执行 THEN 后的语句 1,否则执行 ELSE 后的语句 2。其对应的程序框图为:(如上右图)在某些情况下,也可以只使用 IF-THEN 语句:(即 IF-THEN 格式)计算机执行这种形式的条件语句时,也是首先对 IF 后的条件进行判断,如果条件符合,就执行 THEN 后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去。需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理。【例题精析】例 1:编写程序,输入一元二次方程 的系数,输
9、出它的20axbc实数根。分析:先把解决问题的思路用程序框图表示出来,然后再根据程序框图给出的算法步骤,逐步把算法用对应的程序语句表达出来。IF 条件 THEN语句 1ELSE语句 2END IF满足条件?语句 1 语句 2是否IF 条件 THEN语句END IF满足条件?语句是否算法分析:我们知道,若判别式 ,原方程有两个不相等的实240bac数根 、 ;若12bxa2xa,原方程有两个相等的实数根0; 若 ,原方程没120有实数根。也就是说,在求解方程之前,需要首先判断判别式的符号。因此,这个过程可以用算法中的条件结构来实现。又因为方程的两个根有相同的部分,为了避免重复计算,可以在计算 和
10、1x之前,先计算 , 。2x2bpaq程序框图:(参照课本 )17P程序:(如右图所示)注:SQR()和 ABS()是两个函数,分别用来求某个数的平方根和绝对值。即 ,()xSQR(0)-.xABS例 2:编写程序,使得任意输入的 3 个整数按从大到小的顺序输出。算法分析:用 a,b,c 表示输入的 3 个整数;为了节约变量,把它们重新排列后,仍用 a,b,c 表示,并使 abc.具体操作步骤如下。第一步:输入 3 个整数 a,b,c.第二步:将 a 与 b 比较,并把小者赋给 b,大者赋给a.第三步:将 a 与 c 比较. 并把小者赋给 c,大者赋给a,此时 a 已是三者中最大的。第四步:将
11、 b 与 c 比较,并把小者赋给 c,大者赋给b,此时 a,b,c 已按从大到小的顺序排列好。第五步:按顺序输出 a,b,c.程序框图:(参照课本 )19P程序:(如右框图所示) INPUT “Please input a,b ,c =”;a,b ,cd=b*b-4*a*cp=-b/(2*a)q=SQR(ABS(d)/(2*a)IF d=0 THENx1=p+qx2=p-qIF x1=x2 THEN PRINT “One real root:”;x1ELSEPRINT “Two real roots:x1”;x1,“and x2”;x2END IFELSEPRINT “No real root
12、!”END IFENDINPUT “a,b,c =”;a,b,cIF ba THENt=aa=bb=tEND IFIF ca THENt=aa=cc=tEND IFIF cb THENt=bb=cc=tEND IF PRINT a,b ,cEND补例:铁路部门托运行李的收费方法如下:y 是收费额(单位:元) ,x 是行李重量(单位:kg),当 0x20时,按 0.35 元/kg 收费,当 x20kg 时,20kg 的部分按 0.35 元/kg,超出 20kg 的部分,则按 0.65 元/kg 收费,请根据上述收费方法编写程序。分析:首先由题意得: 该函数是个0.35, 02,20.65(2),
13、.xxxy分段函数。需要对行李重量作出判断,因此,这个过程可以用算法中的条件结构来实现。程序: INPUT “请输入旅客行李的重量(kg)x=” ;xIF x0 AND xc AND a+cb AND b+ca THENPRINT “以下列三个数:” ;a,b,c, “可以构成三角形。 ”ELSEPRINT “以下列三个数:” ;a,b,c, “不可以构成三角形!”END IFEND(二)循环语句算法中的循环结构是由循环语句来实现的。对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE 型)和直到型(UNTIL 型)两种语句结构。即 WHILE 语句和 UNTIL 语句。(1
14、)WHILE 语句的一般格式是:WHILE 条件循环体WEND满足条件?循环体是否其中循环体是由计算机反复执行的一组语句构成的。WHLIE 后面的“条件”是用于控制计算机执行循环体或跳出循环体的。当计算机遇到 WHILE 语句时,先判断条件的真假,如果条件符合,就执行 WHILE 与 WEND 之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到 WEND 语句后,接着执行WEND 之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构框图为:(如上右图)(2)UNTIL 语句的一般格
15、式是:其对应的程序结构框图为:(如上右图)思考:直到型循环又称为“后测试型”循环,参照其直到型循环结构对应的程序框图,说说计算机是按怎样的顺序执行 UNTIL 语句的?(让学生模仿执行 WHILE 语句的表述)从 UNTIL 型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到 LOOP UNTIL 语句后执行其他语句,是先执行循环体后进行条件判断的循环语句。提问:通过对照,大家觉得 WHILE 型语句与 UNTIL 型语句之间有什么区别呢?(让学生表达自
16、己的感受)区别:在 WHILE 语句中,是当条件满足时执行循环体,而在 UNTIL 语句中,是当条件不满足时执行循环体。【例题精析】例 3:编写程序,计算自然数 1+2+3+99+100 的和。分析:这是一个累加问题。我们可以用 WHILE 型语句,也可以用 UNTIL 型语句。由此看来,解决问题的方法不是惟一的,当然程序的设计也是有多种的,只是程序简单与复杂的问题。程序:WHILE 型: UNTIL 型:DO循环体LOOP UNTIL 条件满足条件?循环体是否i=1sum=0WHLIE i100PRINT sumEND例 4:根据 1.1.2 中的图 1.1-2,将程序框图转化为程序语句。分
17、析:仔细观察,该程序框图中既有条件结构,又有循环结构。程序:INPUT “n=”;nflag=1IF n2 THENd=2WHILE d400?a=a*pa=300,p=1.05,n=1997n=n+1输出 n结束否是a=300p=1.05n=1997DOa=a*pn=n+1LOOP UNTIL a400PRINT nEND数的正负,确定两个数的大小等问题,还有求分段函数的函数值等,往往要用条件语句,有时甚至要用到条件语句的嵌套。循环语句主要用来实现算法中的循环结构,在处理一些需要反复执行的运算任务。如累加求和,累乘求积等问题中常用到。【评价设计】1 P 23 习题 1.2 A 组 3、4P24 习题 1.2 B 组 2.2试设计一个生活中某个简单问题或是常见数学问题,并利用所学基本算法语句等知识编程。 (要求所设计问题利用条件语句或循环语句)