资源简介 (共29张PPT)主讲教师:143团第一中学1.2.1 算法是“灵魂”教科版选修《算法与程序设计》目标Study01进一步理解什么是算法02知道算法的多样性03能够对设计算法作出简单的评价04学会三种描述算法的方法Part oneTRANSITION PAGE01情景引入课堂玩起来.农夫过河问题话说一位农夫带着一只狼、一只羊和一框蔬菜过河,无奈船小,农夫每次只能运送一样东西,考虑到狼吃羊、羊吃菜,因此运送的顺序至关重要。农夫怎么才可以让狼、羊、菜安全过河呢?请同学们设计方案,帮助农夫实现“羊、狼、疏菜共同渡河”的愿望。边玩边思考问题010203方案总共有多少步?顺序可以颠倒吗?什么是算法 各小组讨论后,先做到心中有数,暂不要说出答案!Part twoTRANSITION PAGE02新授笔记做起来新课讲授1.算法概念算法是解决问题的方法和步骤。解决问题的过程,就是实现算法的过程。算法独立于任何具体的程序设计语言,一个算法可以用多种程序设计语言来实现。计算机科学家尼克劳斯 沃思算法+数据结构=程序知识扩展世界上最早的算法目前所知的世界上最早的算法是写在考古学家发掘出来的粘土板上的,这此粘土板的制作年代大约是在公元前3000年~公元前1500年, 也就是大约3500~ 5000年以前。考古学家是在靠近古代城市巴比伦的地方发现这些粘土板的,那里离现在的巴格达不远。巴比伦人发明了六十进制系统,我们现在关于时、分、秒的记法和关于角度的记法就是从他们那里学来的。为了做数学用表,巴比伦人需要解代数方程,他们的做法是写个求解的“算法”。在算法中,基本上都是对实际数目的计算。在算法的最后还写上一句短语,这个短语可以粗略地翻译为“这是一个过程”,这也是最早出现的关于程序设计语言的记号。2.描述算法用自然语言描述算法用流程图描述算法用伪代码描述算法用自然语言表达算法,就是把算法的各个步骤,依次用人们熟悉的自然语言表示出来。流程图,也称为程序框图,它是算法的一种图形化表示方法。伪代码是介于自然语言和计算机程序语言之间的一种算法描述。算法描述之自然语言描述步骤1:人和羊过河,人返回,留下羊步骤2:人和狼过河,人和羊返回,留下狼步骤3:人和菜过河,人返回,留下菜步骤4:人和羊过河优点:通俗易懂缺点:缺乏直观性和简洁性算法描述之流程图描述历史典故——“韩信点兵”秦朝末年,楚汉相争。有一次,韩信将1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是,韩信整顿兵马也返回大本营。当行至一山坡,忽有后军来报,说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。他命令士兵3人一排,结果多出1名;接着命令士兵5人一排,结果多出2名;他又命令士兵7人一排,结果又多出4名。韩信马上向将士们宣布:我军有1117名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。汉军本来就信服自己的统帅,这一来更相信韩信是“神仙下凡”、“神机妙算”。于是士气大振,最终打败楚军。 请思考,韩信是如何算出总人数的呢?分析问题设所求的最小数为X,则X应满足:X整除3余1、x整除5余2、X整除7余4。解题步骤(算法)1、令X为1;2、如果X整除3余1,X整除5余2,X整除7余4,这就是题目要求的数,输出X的值(跳转 4);3、将X的值加1,然后调转2;4、如果算出,输出X值,否则跳转 2;5、结束。①②③④⑤开始、结束框 算法的开始或结束输入、输出框 输入、输出的数据判断框 条件的判断处理框 处理的内容流程线 控制流程的方向连接点 连接页面因断开而写不下的流程线认识流程图符号开始输出X的值X=X+1X被3、5、7整除余数为1、2、4用流程图描述算法②①③④⑤算法描述之伪代码描述Private Sub Command1_Click()Dim X As Integer, Y As IntegerX = 1DoIf X Mod 3 = 1 And X Mod 5 =2 And X Mod 7 = 4 ThenPrint “韩信统御最少兵数X=:"; XExit DoEnd IfX = X + 1LoopEnd SubMod是模运算,也叫求余运算。算法描述之伪代码描述Private Sub Command1_Click()Dim X As Integer, Y As IntegerX = 1DoIf X Mod 3 = 1 And X Mod 5 = 2 And X Mod 7 = 4 ThenX = X + 105 * 10 ‘口决:三人同行七十稀,五树梅花廿一枝,七子团圆正半月, 除百零五便得知Print "韩信统御士兵数:"; XExit DoEnd IfX = X + 1LoopEnd Sub动手实践体验编程见证奇迹讨论交流自然语言描述 流程图描述直观清晰确定性繁琐程度是否容易修改通俗易懂伪代码描述三种算法描述方法的比较Part threeTRANSITION PAGE03综合训练算法的优化实 践一次数学课上,老师让学生练习算数。于是让他们一个小时内算出1+2+3+4+5+6+……+100的得数。全班只有高斯很快给出了答案,因为他想到了用(1+100)+(2+99)+(3+98)……+(50+51)……一共有50个101,所以50×101就是1加到一百的得数。后来人们把这种简便算法称作高斯算法。模仿学过的用计算机程序解决问题的方法,设 计一个算法,尝试求解高斯算法问题:1+2+3+4+5+6+……+100=? 请分别用自然语言、流程图、伪代码表示。高斯算法问题借鉴前面的思路1、令X为1;2、如果X整除3余1,X整除5余2,X整除7余4,这就是题目要求的数,输出X的值(跳转 4);3、将X的值加1,然后调转2;4、如果算出,输出X值,否则跳转 2;5、结束。①②③④⑤Step1:将N的初始值赋为1,S的初始值赋为0 ;Step2:如果N小于等于100,转到Step3 ;Step3:将S加N的和赋给S ;Step4:将N的值加1 ,转到Step2。用伪代码描述Private Sub Command1_Click()Dim s As String, n As Integer,i As IntegerFor i = 1 To 100n = n + iNext iPrint "1+2+3+……+100=", nEnd Sub用流程图描述用自然语言描述高斯算法问题流程图描述寻找更加优化的算法来解决问题 提高执行效率开始结束YNSum=Sum+ii=1i<=100 i=i+1Sum=0输出Sum开始结束Sum= (100+1) *100/ 2输出Sum结束开始Part fourTRANSITION PAGE04作品评价大家谈评价指标 具体指标 分值 自评 互评 师评自然语言 是否能完整表述出环节及步骤 30 流程图 是否能够根据自然语言画出流程图 30 源代码 键入代码、调试通过 40 总 评 小组作品量化评价表班级: 姓名: 自评目标 具体目标 自评等级 欠佳 一般 优秀知识与技能 了解算法的定义及其表达方法 认知流程图的六种基本符号 过程与方法 理解用不同的表达方法描述算法的优缺点 能与其他同学开展交流、合作 情感态度与价值观 感受到程序的魅力,学习兴趣和求知欲强烈 有主动探究的能力 个人目标自评表Part fiveTRANSITION PAGE04课堂小结巩固提高课堂小结自然语言描述算法通俗易懂,但缺乏直观性和简洁性,且易产生歧义。流程图描述算法形象、直观,易理解。伪代码描述算法算法简洁、易懂,修改起来容易,且容易转化为程序语言代码,但不直观,出现逻辑错误不排查。算法是解决问题的方法和步骤。一个问题可能有多种算法,通过分析、比较、挑选一种最优算法。我们要把优化思维用于我们的生活,让我们的生活更加美好。THANK YOU敬请专家批评指正! 展开更多...... 收起↑ 资源预览