1.正确理解算法的概念,掌握算法的基本特点.2.通过例题教学,使学生体会设计算法的基本思路.3.通过有趣的实例使学生了解算法这一概念的同时,激发学生学习数学的兴趣.导入新课大家都看过赵本山与宋丹丹演的小品吧,宋丹丹说了一个笑话,把大象装进冰箱总共分几步?答案:分三步,第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上.上述步骤构成了把大象装进冰箱的算法,今天我们开始学习算法的概念.算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础.在现代社会里,计算机已成为人们日常生活和工作中不可缺少的工具.听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始. 提出问题(1)阅读教材第3页“鸡兔同笼”问题,思考解二元一次方程组有几种方法? (2)结合教材实例⎩⎨⎧=+-=-)2(,12)1(,12y x y x 总结用加减消元法解二元一次方程组的步骤.(3)结合教材实例⎩⎨⎧=+-=-)2(,12)1(,12y x y x 总结用代入消元法解二元一次方程组的步骤.(4)请写出解一般二元一次方程组的步骤,并理解“高斯消去法”;(5)根据上述实例谈谈你对算法的理解. (6)请同学们总结算法的特征. (7)请思考我们学习算法的意义. 讨论结果:(1)代入消元法和加减消元法. (2)回顾二元一次方程组⎩⎨⎧=+-=-)2(,12)1(,12y x y x 的求解过程,我们可以归纳出以下步骤: 第一步,①+②×2,得5x=1.③ 第二步,解③,得x=51. 第三步,②-①×2,得5y=3.④ 第四步,解④,得y=53.第五步,得到方程组的解为⎪⎪⎩⎪⎪⎨⎧==.53,51y x(3)用代入消元法解二元一次方程组⎩⎨⎧=+-=-)2(,12)1(,12y x y x 我们可以归纳出以下步骤: 第一步,由①得x=2y -1.③第二步,把③代入②,得2(2y -1)+y=1.④ 第三步,解④得y=53.⑤ 第四步,把⑤代入③,得x=2×53-1=51. 第五步,得到方程组的解为⎪⎪⎩⎪⎪⎨⎧==.53,51y x(4)对于一般的二元一次方程组1112121222,(1),(2)a x a yb a x a y b +=⎧⎨+=⎩其中a 11a 22-a 21a 12≠0,可以写出类似的求解步骤: 第一步,假定a 11≠0,①×2111()a a -+②,可得方程 (a 11a 22-a 21a 12)y= a 11b 2-a 21b 1.③ 第二步,解③,得y=11221111222112a b a b a a a a --.④第三步,将④代入①得x=22112211222112a b a b a a a a --第四步,输出结果x,y (5)算法的定义理解:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等.在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤. 现在,算法通常可以编成计算机程序,让计算机执行并解决问题.(6)算法的特征:①确定性:算法的每一步都应当做到准确无误、不重不漏.“不重”是指不是可有可无的,甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务.②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确,“前一步”是“后一步”的前提, “后一步”是“前一步”的继续.③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制地持续进行.(7)在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问题的算法.也就是说,算法实际上就是解决问题的一种程序性方法.算法一般是机械的,有时需进行大量重复的计算,它的优点是一种通法,只要按部就班地去做,总能得到结果.因此算法是计算科学的重要基础.例题解析例1 写出一个求有限整数序列中的最大值的算法.点评:算法一般是机械的,有时需要进行大量的重复计算,只要按部就班地去做,总能算出结果,通常把算法过程称为“数学机械化”.数学机械化的最大优点是它可以借助计算机来完成,实际上处理任何问题都需要算法.如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续……例2 写出对任意3个数a,b,c求出最大值的算法。
知能训练设计算法判断一元二次方程ax2+bx+c=0是否有实数根.解:算法步骤如下:第一步,输入一元二次方程的系数:a,b,c.第二步,计算Δ=b2-4ac的值.第三步,判断Δ≥0是否成立.若Δ≥0成立,输出“方程有实根”;否则输出“方程无实根”,结束算法.点评:用算法解决问题的特点是:具有很好的程序性,是一种通法.并且具有确定性、逻辑性、有穷性.让我们结合例题仔细体会算法的特点.拓展提升中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按一分钟计算.设通话时间为t(分钟),通话费用y(元),如何设计一个程序,计算通话的费用.解:算法分析:数学模型实际上为:y关于t的分段函数.关系式如下:y=⎪⎩⎪⎨⎧∉>+-+∈>-+≤<).,3(),1]3([1.022.0),,3(),3(1.022.0),30(,22.0Z t T T Z t t t t 其中[t -3]表示取不大于t -3的整数部分. 算法步骤如下:第一步,输入通话时间t.第二步,如果t≤3,那么y=0.22;否则判断t ∈Z 是否成立,若成立执行 y=0.2+0.1×(t -3);否则执行y=0.2+0.1×([t -3]+1). 第三步,输出通话费用c. 课堂小结(1) 正确理解算法这一概念. (2) 算法的表示有哪些?(3) 结合例题掌握算法的特点,能够写出简单的算法.1.熟悉各种程序框及流程线的功能和作用.2.通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程. 3.通过比较体会程序框图的直观性、准确性. 重点难点数学重点:程序框图的概念及画法. 数学难点:程序框图中的符号的意义.导入新课用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确.因此,本节有必要探究使算法表达得更加直观、准确的方法.今天开始学习程序框图. 新知探究 提出问题(1)什么是程序框图?(2)说出终端框(起止框)的图形符号与功能. (3)说出输入、输出框的图形符号与功能. (4)说出处理框(执行框)的图形符号与功能. (5)说出判断框的图形符号与功能. (6)说出流程线的图形符号与功能. (7)说出连接点的图形符号与功能.(8)总结几个基本的程序框、流程线和它们表示的功能. 讨论结果:(1)程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序.(2)椭圆形框:表示程序的开始和结束,称为终端框(起止框).表示开始时只有一个出口;表示结束时只有一个入口.(3)平行四边形框:表示一个算法输入和输出的信息,又称为输入、输出框,它有一个入口和一个出口.(4)矩形框:表示计算、赋值等处理操作,又称为处理框(执行框),它有一个入口和一个出口.(5)菱形框:是用来判断给出的条件是否成立,根据判断结果来决定程序的流向,称为判断框,它有一个入口和两个出口.(6)流程线:表示程序的流向.(7)圆圈:连接点.表示相关两框的连接处,圆圈内的数字相同的含义表示相连接在一起.(8)总结如下表.图形符号例1左图所示的是一个算法的流程图,已知a1=3,输出的b=7,求a2的值.(4)画出由直角三角形的两条直角边a, b,求斜边长的程序框图课堂小结(1)掌握程序框的画法和功能.(2)了解什么是程序框图,知道学习程序框图的意义.(3)掌握顺序结构的应用,并能解决与顺序结构有关的程序框图的画法.在具体问题的解决过程中,理解程序框图的三种基本逻辑结构:顺序结构、条件结构、循环结构.提出问题(1)请大家再次观察上节课中所画的一些程序框图例子.(2)回答什么是顺序结构?什么是条件分支结构?什么是循环结构、循环体?(3)试用程序框图表示循环结构.(4)指出三种基本逻辑结构结构的相同点和不同点.讨论结果:很明显,顺序结构是由若干个依次执行的步骤组成的,这是任何一个算法都离不开的基本结构.三种逻辑结构可以用如下程序框图表示:顺序结构条件结构循环结构应用示例例1 阅读以下程序框图,分析其所实现的算法功能?.……+100的值.显然,这个过程中包含重复操作的步骤,可以用循环结构表示.分析上述计算过程,可以发现每一步都可以表示为第(i-1)步的结果+i=第i步的结果.为了方便、有效地表示上述过程,我们用一个累加变量S 来表示第一步的计算结果,即把S+i 的结果仍记为S ,从而把第i 步表示为S=S+i ,其中S 的初始值为0,i 依次取1,2,…,100,由于i 同时记录了循环的次数,所以也称为计数变量.解决这一问题的算法是: 第一步,令i=1,S=0.第二步,若i≤100成立,则执行第三步;否则,输出S ,结束算法. 第三步,S=S+i.第四步,i=i+1,返回第二步. 程序框图如右:(1)(2)点评:在数学计算中,i=i+1不成立,S=S+i 只有在i=0时才能成立.在计算机程序中,它们被赋予了其他的功能,不再是数学中的“相等”关系,而是赋值关系.变量i 用来作计数器,i=i+1的含义是:将变量i 的值加1,然后把计算结果再存贮到变量i 中,即计数器i 在原值的基础上又增加了1.变量S 作为累加器,来计算所求数据之和.如累加器的初值为0,当第一个数据送到变量i 中时,累加的动作为S=S+i ,即把S 的值与变量i 的值相加,结果再送到累加器S 中,如此循环,则可实现数的累加求和. 变式训练 已知有一列数1,,43,32,21 n n,设计框图实现求该列数前20项的和.练习1:设计框图实现1+3+5+7的算法.练习2:高中某班一共有40名学生,设计算法流程图,统计班级数学成绩良好(分数>80)和优秀(分数>90)的人数.课堂小结(1)熟练掌握三种基本逻辑结构的特点及功能.(2)能用循环结构画出求和等实际问题的程序框图,进一步理解学习算法的意义.1.理解学习基本算法语句的意义.2.学会输入语句、输出语句和赋值语句的基本用法.3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法.重点难点教学重点:输入语句、输出语句和赋值语句的基本用法.教学难点:算法语句的写法.导入新课前面我们学习了程序框图的画法,为了让计算机能够理解算法步骤、程序框图,我们开始学习算法语句.提出问题(1)指出赋值语句的格式、功能、(2)要求指出输入语句的格式、功能、要求.(3)指出输出语句的格式、功能、要求.讨论结果:(1) 赋值语句的一般格式:________________.赋值语句中的“______”称作赋值号.功能:将表达式所代表的值赋给变量.要求:1°赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个常量、变量或含变量的运算式.如:2=x是错误的.2°赋值号的左右两边不能对换.赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量.如“A=B”“B=A”的含义运行结果是不同的,如x=5是对的,5=x是错的,A+B=C是错的,C=A+B是对的.3°不能利用赋值语句进行代数式的演算(如化简、因式分解、解方程等),如y=x2-1=(x -1)(x+1),这是实现不了的.在赋值号右边表达式中每一个变量的值必须事先赋给确定的值.在一个赋值语句中只能给一个变量赋值,不能出现两个或以上的“=”.但对于同一个变量可以多次赋值.(2) 输入语句的格式:_______________功能:实现算法的输入变量信息(数值或字符)的功能.要求:1°输入语句要求输入的值是具体的常量.2°提示内容提示用户输入的是什么信息,必须加双引号,提示内容“原原本本”的在计算机屏幕上显示,提示内容与变量之间要用分号隔开.3°一个输入语句可以给多个变量赋值,中间用“,”分隔.形式如:INPUT(“a=,b=,c=,”;a,b,c);(3) 输出语句的一般格式:_____________功能:实现算法输出信息(表达式)的功能.要求:1°表达式是指算法和程序要求输出的信息.2°提示内容提示用户要输出的是什么信息,提示内容必须加双引号,提示内容要用分号和表达式分开.3°如同输入语句一样,输出语句可以一次完成输出多个表达式的功能,不同的表达式之间可用“,”分隔.(4) 指出三种语句与框图的对应关系如下图.应用示例(阅读及补全)例1 给一个变量重复赋值.解:程序:A=10A=A+15PRINT AEND点评:给一个变量重复赋值,变量只保存最后一次赋值,比如此程序的输出值是25.例2 编写程序,计算一个学生数学、语文、英语三门课的平均成绩.算法分析:先写出解决本例的算法步骤:第一步,_____________________________________________________第二步,____________________________.第三步,输出__________________________.程序框图如下:这个算法可以写成下列程序.程序:例3 变换两个变量A和B的值,并输出交换前后的值.解:程序:知能训练请写出下面运算输出的结果.(1)a=5b=3c=(a+b)/2d=c*cPRINT“d=”;d(2)a=1b=2c=a+bb=a+c-bPRINT “a=,b=,c=”;a,b,c(3)a=10b=20c=30a=bb=cc=aPRINT “a=,b=,c=” ;a,b,c课堂小结(1)输入语句、输出语句和赋值语句的基本用法. (2)用输入语句、输出语句和赋值语句编写算法语句.教学目标:1.理解学习基本算法语句的意义.2.学会条件语句的基本用法.3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法.重点难点教学重点:条件语句的基本用法.教学难点:算法语句的写法.提出问题1.回忆程序框图中的条件结构.2.指出条件语句的格式及功能.3.揭示程序中的条件语句与程序框图中的条件结构存在一一对应关系.讨论结果:1.一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.条件分支结构就是处理这种过程的结构.处理条件分支逻辑结构的的算法语句就叫条件语句2.条件语句的一般格式1°包含一个“分支”的条件语句((2)语句功能:如果表达式结果为真,则执行语句序列1;如果表达式结果为假时,则跳过语句序列12°包含两个“分支”的条件语句(1)对应的条件语句为:(2)语句功能:首先对if后的条件进行判断如果表达式结果为真,则执行语句序列1;当表达式结果为假时,则执行else后面的语句序列2小结:1.条件语句是一个语句,if,else都是语句的一部分2.条件语句必须以if语句开始,以end语句结束,一个if语句必须和一个end语句对应3.如果我们的程序只需对条件为真时作出判断,不需要条件为假的情况,则条件语句省略else分句,格式由if—else语句变为if语句3.分支嵌套:分支嵌套是指在分支结构的某一部分中又包含分支结构对应的条件语句为:elseif 条件2语句序列2;else语句序列3;end…end应用示例例1 编写一个程序,求实数x 的绝对值.点评:通过本题我们看到算法步骤可以转化为程序框图,程序框图可以转化为算法语句.本题揭示了它们之间的内在联系,只要理解了程序框图与算法语句的对应关系,把程序框图转化为算法语句就很容易了.例2 编写程序,输出两个不相等的实数a 、b 的最大值.例3 高等数学中经常用到符号函数,符号函数的定义为y=⎪⎩⎪⎨⎧<-=>,0,1,0,0,0,1x x x 试编写程序输入x 的值,输出y 的值.课堂小结条件语句的基本用法.1.理解学习基本算法语句的意义.2.学会循环语句的基本用法.3.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法.重点难点重点:循环语句的基本用法..一、问题提出两种条件语句的一般格式分别是什么?二、导入新课一位同学不小心违反了学校纪律,班主任令其写检查,他写完后交给班主任,班主任看后说:“认识不深刻,拿回去重写,直到认识深刻为止”.这位同学一想,这不是一个循环结构吗?可惜我还没学循环语句,不然可以写一个算法语句输入计算机了.同学们,今天我们开始学习循环语句.三、新课Scilab程序语言中提供了两种循环语句:for 循环和while 循环1、for循环语句for 循环语句的一般格式:例1. 实现求1+2+3+…+1000=? 的算法算法思想:可以采用重复计算,而且数字1、2、3、…、1000是有规律的一列数,逐渐循环递增,每次增幅为1.解答:在例1的程序中,如果我们将初值、步长、终值、循环体分别改变,情形又如何呢?1. 将初值改变,如改为“i=100:1:1000”则该程序描述的算法实现什么功能?2. 终值改变的情形类似.如改为“i=1:1:100”则该程序描述的算法实现什么功能?3.将步长改变,如改为“i=1:2:1000,则表示求和1+3+5+ (999)如改为“i=1:3:1000”,则表示求和________________________________________________.4.将循环体改变,如改变为“S=S+1/i”,则该程序描述的算法实现什么功能?例2.画出计算1111++++246200值的算法程序框图,并写出程序。