资源简介 七年级上册 第五单元 生活算法编程 第五节 目录 一 · 算法的概念 二 · 算法的描述 1 · 用自然语言描述 2 · 用流程图表示 3 · 计算机语言描述 头脑风暴 笑一笑: 把大象放进冰箱 小游戏: 农夫过河 最佳算法: 猜商品价格 小能手: 编程小试身手 如何将大象装进冰箱? 步骤: 一 打开冰箱门, 二 把大象放进去, 三 关上冰箱门。 算法 一、算法的概念 任务一:分组讨论,设计“农夫过河”的算法,完成趣味游戏。 讨论 算法 归纳 展示 农夫 狼 羊 菜 小游戏: 农夫需要把狼、羊、菜和自己运到河对岸去,只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西。还有一个棘手问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。 请思考该问题的算法。 算法一: 04 03 02 01 羊 羊 狼 菜 1 2 3 4 农夫先带羊过河,自己返回。 带菜过河,带羊返回。 带狼过河,自己返回。 带羊过河,完成。 小游戏: 算法二: 04 03 02 01 羊 羊 菜 狼 1 2 3 4 农夫先带羊过河,自己返回。 带狼过河,带羊返回。 带菜过河,自己返回。 带羊过河,完成。 小结 1、算法就是解决具体问题的思路、方法、步骤。 2、算法很重要,没有算法农夫就无法顺利过河。 猜一猜:商品价格(1~10元整数) 1、选择最佳算法: 已知一个有序的数列,要找一个数n是否在此数列中。例如,猜商品价格游戏。在有序数列{1,2,3,4,5,6,7,8,9,10} 内查找商品价格n=7。我们有两套方案。 1,2,3,4,5,6,7,8,9,10 算法一: 从数列左边开始一个一个的判断,找到则返回True,如果直到最后一个也不是则返回False。(顺序查找) 算法二: 从中间查找,如果n大于或者小于中间元素,则在数组大于或小于中间元素的那一半数列中查找,而且跟开始一样从中间元素开始比较。(二分法查找) 1、选择最佳算法: 讨论 算法 归纳 展示 猜一猜 价格 ?10? 算法 最佳算法: 解决同一个问题,可使用不同的算法。不同算法的效率可能差别非常大,应选择最佳算法。比如从家到学校,可选择步行、骑车或坐公交。当家和学校距离很近时,则骑车比坐公交要快。 生活中有哪些地方用到算法? 2、生活大爆炸 算法 算法无处不在 . 从家到学校的方式和路径 . 做一道菜的方法. 去商场购物时 商品的选择 . 华罗庚“煮水泡茶”的步骤. 数学解题思路. 做一件家务的步骤. 完成所有作业的顺序 . 2、生活大爆炸 ——大问题如何分解成小问题? 任务二:选一件你会做的家务,设计并写出算法。 1 2 3 从三方面训练 多看 多做 多想 了解更多的知识为解决问题做准备。 动手解决小问题,原先的大问题也会逐渐变成小额问题。 在生活学习中,勤思考,找算法。 二、算法的描述(自然语言、流程图、计算机语言) 1 3 5 2 4 教室电灯 不亮 流程图 自然 语言 检查电源是否接好; 如果没有,则接好电源; 如果电源没问题,则检查灯泡。 如果灯泡烧毁,更换灯泡; 如果灯泡没坏,则修理电灯。 在农夫过河和做家务算法中,我们使用了语言描述解决问题的过程,这种方法称为自然语言描述算法。 “农夫过河”算法的描述 1 3 2 4 农夫过河 算法 流程图 自然 语言 农夫先带羊过河,自己返回。 带菜/狼过河,带羊返回。 带狼/菜过河,自己返回。 带羊过河,完成。 开始 农夫带羊过河,自己返回 农夫带菜/狼过河,带羊返回 农夫带狼/菜过河,自己返回 带羊过河 结束 流程图是描述我们进行某一项活动所遵循顺序的一种图示方法。 算法的流程图表示 表示算法的开始或结束,“开始”或“结束”写在符号内。 表示算法过程中,数据和信息的输入和输出。 表示算法过程中,需要处理的内容(步骤),步骤的简要内容写在矩形内。只有一个入口和出口。 表示算法过程中的分支结构。菱形框4个顶点中,上面的顶点表示入口,根据需要,用其余顶点表示出口。 算法过程中,指向流程的方向。 开始、结束框 活动框 流程线 判断框 输入、输出框 流程图符号与意义 用计算机语言描述算法 即编程 代码 前情回顾:第三节 编程实现幻影“海龟” 调用随机函数模块“random”,让“小红”随机出现在屏幕中某位置上,调用stamp命令留下足迹。 import turtle import random 小红 = turtle.Turtle() 小红.color("red") 小红.shape("turtle") 小红.up() while 0 < 1: 小红.goto(random.randint(-300,300), random.randint(-300,300)) 小红.stamp() 编程小试身手 任务三:扑面而来的Hello 尝试利用我们学过的内容,实现右图所示图形。 参考课堂学案和教师文件夹中的“幻影海龟”资料 ,完成编程并保存,提交至云课堂作业空间。 探究学习资料:课堂学案+幻影海龟资料+本任务流程图 进阶任务:变色海龟 你能否结合第三节幻影海龟的任务,将海龟设为随机颜色,制造一个变色海龟,让其在画布上随机留下多彩印记?参看课堂学案图示,完成编程并提交至云课堂作业空间。 五、编程小试身手 代码 import turtle #调用turtle模块 import random #调用随机函数 random模块 hello = turtle.Turtle() #创建一只海龟,命名为hello hello.up() #让hello抬起尾巴(不画线) while 0 < 1: #while循环:当0<1时,执行下列语句。 hello.goto(random.randint(-300,300), random.randint(-300,300)) #hello在坐标范围内随机移动到某一位置 hello.color(random.random(),random.random(),random.random()) #设hello颜色随机 hello.write("Hello", font=("微软雅黑", random.randint(10,60))) #写下"Hello",设置字体为微软雅黑,字号在10至60间随机大小。 总结 一 算法的概念 二 算法的 自然语言描述 三 算法的 流程图表示 四 用计算机语言 描述算法 分层任务: 三个基础 一个进阶 解决问题的方法、步骤。 算法无处不在。 选择最佳算法。 在农夫过河和家务算法中,使用语言描述解决问题的步骤。 流程图:一种图示方法描述解决问题的步骤(电灯不亮、农夫过河) 用计算机语言来描述算法,就是编程(幻影海龟、扑面而来的Hello) 基础任务:设计农夫过河算法、家务算法,编程实现扑面而来的Hello。 进阶任务:变色海龟 算法是“灵魂” 结束语 算法世界那么大,你想不想好好去看看? 希望同学们以后在遇到问题的时候,能开动脑筋,找到该问题的算法,学以致用,让算法更好的为我们的学习、生活服务。 展开更多...... 收起↑ 资源预览