描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302508373
本书融合数学、游戏和算法,从零开始讲授编程概念,帮助初学者掌握编程思想和建立Scratch编程知识体系,为青少年提供一本从入门到精通的Scratch编程参考教材。
(1)数学编程
韩信点兵、鸡兔同笼、冰雹猜想、辗转相除法、卡普雷卡尔黑洞、逻辑推理、成语接龙、约瑟夫环……
(2)游戏编程
海底探险、电子相册、街舞表演、巡线甲虫、反弹球、手势抓蝴蝶、吹生日蜡烛、种蘑菇、乐器演奏……
(3)算法和数据结构
冒泡排序、选择排序、插入排序、快速排序、顺序查找、二分查找、回溯走迷宫、二维数组、队列和栈……
本书是全面讲解图形化编程语言Scratch的编程指南,分为基础编程篇、图形编程篇和进阶编程篇3个部分,系统讲解Scratch基础编程知识和运动、外观、侦测等各功能模块的技术应用,以及常用的数据结构和算法知识,并提供丰富有趣的教学案例和练习题,为青少年提供一本从入门到精通的Scratch编程参考教材。 本书假设读者从未接触过编程,从零基础开始帮助读者逐步建立起Scratch编程的知识体系。本书适合对编程有兴趣的青少年阅读,也适合希望辅导孩子进行编程训练的家长和少儿编程培训机构的教师使用。
〖1〗Scratch编程从入门到精通第1部分基础编程篇第1章编程起步3
1.1Scratch编程概述3
1.1.1为什么用Scratch编程
3
1.1.2从Scratch到Python5
1.1.3Scratch的主要版本7
1.1.4Scratch项目概述9
1.2准备Scratch开发环境10
1.2.1使用Scratch在线
编辑器10
1.2.2安装Scratch离线
编辑器12
1.2.3设置Scratch编辑器
14
1.3Scratch编辑器界面16
1.3.1舞台区17
1.3.2背景和角色列表区17
1.3.3脚本编辑区18
1.3.4造型和背景编辑区18
1.3.5声音编辑区19
1.3.6菜单栏和工具栏20
1.4Scratch指令系统概述20
1.4.1积木的形状特点20
1.4.2积木的操作方法22
1.4.3积木的功能类别24
1.4.4快速查看积木说明25
1.5临摹案例26
1.5.1数学编程: 韩信点兵
26
1.5.2游戏编程: 星际飞行
30
第2章变量和运算36
2.1说和思考指令36
2.1.1跟我做: 小猫背唐诗
37
2.1.2让角色说话和思考38
2.1.3动手练: 小猫的哲学
思考39
2.2问答指令40
2.2.1跟我做: 简单的人机
对话40
2.2.2询问与回答40
2.2.3动手练: 说出字母数
41
2.3变量42
2.3.1跟我做: 小猫变大
变小42
2.3.2变量显示器43
2.3.3变量的数据类型和操作
43
2.3.4变量的命名和作用域
45
2.3.5动手练: 求两数之和
45
2.4数学运算46
2.4.1跟我做: 鸡兔同笼46
2.4.2算术运算和运算优先级
48
2.4.3数学函数48
2.4.4动手练: 计算大桥长度
49
2.5随机数50
2.5.1跟我做: 小鱼逍遥游
50
2.5.2生成随机数51
2.5.3动手练: 随机投点
画圆52
2.6字符串函数53
2.6.1跟我做: 成语接龙
53
2.6.2字符串处理54
2.6.3动手练: 回文诗55
〖1〗Scratch编程从入门到精通〖1〗目录第3章程序控制57
3.1顺序结构57
3.1.1跟我做: 海伦公式
57
3.1.2流程图59
3.1.3顺序结构的程序设计
59
3.1.4动手练: 计算圆锥体积
60
3.2选择结构61
3.2.1跟我做: 求值
61
3.2.2关系运算和逻辑运算
62
3.2.3选择结构的程序设计
64
3.2.4动手练: 判断三角形
构成65
3.3循环结构66
3.3.1跟我做: 冰雹猜想
67
3.3.2循环结构的程序设计
69
3.3.3动手练: 肖像在哪里
71
第4章列表74
4.1列表显示器74
4.1.1跟我做: 求平均气温
74
4.1.2列表显示器的使用
76
4.1.3动手练: 评委打分
77
4.2列表的操作78
4.2.1跟我做: 银行叫号系统
78
4.2.2列表操作积木79
4.2.3动手练: 约瑟夫环
83
第5章过程85
5.1自定义过程85
5.1.1跟我做: 计算圆的面积
86
5.1.2使用自定义过程87
5.1.3动手练: 判断质数
88
5.2递归的使用89
5.2.1跟我做: 辗转相除法
89
5.2.2递归调用的分析91
5.2.3动手做: 斐波那契数列
93
5.3面向过程编程94
5.3.1跟我做: 卡普雷卡尔
黑洞94
5.3.2模块化程序设计96
5.3.3动手练: 数字黑洞
1和496
第6章调试程序98
6.1程序错误概述98
6.1.1产生程序错误的
原因98
6.1.2减少程序错误的方法
99
6.2程序调试方法100
6.2.1使用数据显示器100
6.2.2输出日志100
6.2.3降低程序运行速度
101
6.2.4设置断点102第2部分图形编程篇第7章舞台107
7.1海底探险1: 游戏场景107
7.1.1游戏情节介绍107
7.1.2制作游戏场景108
7.2舞台布局和管理110
7.2.1舞台布局和显示模式
110
7.2.2舞台背景管理113
7.3动手练: 电子相册117
第8章角色外观和运动119
8.1创建角色119
8.1.1海底探险2: 创建角色
119
8.1.2创建角色的方式122
8.1.3角色列表区122
8.2角色造型123
8.2.1海底探险3: 角色动画
123
8.2.2造型控制124
8.2.3动手练: 街舞表演
125
8.3角色运动126
8.3.1海底探险4: 角色运动
126
8.3.2运动控制130
8.3.3动手练: 飞行猫134
8.4角色特效135
8.4.1海底探险5: 角色特效
135
8.4.2设置角色特效136
8.4.3动手练: 魔术师137
第9章侦测139
9.1距离侦测139
9.1.1海底探险6: 距离侦测
139
9.1.2距离侦测积木140
9.1.3动手练: Pico和小狗
散步140
9.2碰撞侦测142
9.2.1海底探险7: 碰撞侦测
142
9.2.2碰撞侦测积木144
9.2.3动手练: 巡线甲虫
147
9.3键盘和鼠标侦测148
9.3.1海底探险8: 扔炸弹
148
9.3.2键盘和鼠标侦测积木
149
9.3.3动手练: 反弹球150
9.4时间侦测151
9.4.1海底探险9: 游戏
倒计时151
9.4.2时间侦测积木151
9.4.3动手练: 时钟153
9.5视频侦测154
9.5.1跟我做: 人体感应开灯
154
9.5.2视频侦测积木155
9.5.3动手练: 手势抓蝴蝶
157
9.6响度侦测158
9.6.1跟我做: 声控开灯
158
9.6.2响度侦测积木158
9.6.3动手练: 吹生日蜡烛
159
第10章绘图161
10.1海底探险10: 游戏计分
和血条161
10.2画笔164
10.2.1跟我做: 彩虹画板
164
10.2.2画笔积木165
10.2.3动手练: 颜色图谱
167
10.3图章167
10.3.1跟我做: 种蘑菇
167
10.3.2图章积木168
10.3.3动手练: 彩色风车
169
第11章声音171
11.1海底探险11: 游戏音效
171
11.1.1为游戏增加音效
171
11.1.2复制更多角色173
11.2播放声音174
11.3乐器演奏175
11.3.1跟我做: 模拟乐器
175
11.3.2乐器演奏积木177
11.3.3弹奏鼓声积木179
11.3.4动手练: 演奏
《小毛驴》180第3部分进阶编程篇第12章克隆183
12.1海底探险12: 克隆角色
183
12.1.1克隆功能的使用
183
12.1.2用克隆技术改造
游戏185
12.2面向对象编程187
12.2.1用角色模式编程
187
12.2.2用克隆模式编程
188
12.3动手练: 飞扬的小鸟190
第13章消息和事件192
13.1海底探险13: 消息机制
192
13.1.1广播和接收消息
192
13.1.2用消息机制改造
游戏193
13.2消息机制197
13.2.1消息的异步和同步
197
13.2.2消息队列的应用
197
13.3事件驱动编程199
13.3.1事件的并发执行
199
13.3.2避免事件的并发
200
13.4动手练:小熊打车201
第14章英汉词典202
14.1搭建项目框架202
14.2词典排序功能204
14.2.1冒泡排序204
14.2.2选择排序206
14.2.3插入排序207
14.2.4快速排序209
14.2.5词典排序211
14.3词典查询功能212
14.3.1顺序查找213
14.3.2二分查找214
14.3.3词典查询216
14.4新增词条功能216
第15章企鹅走迷宫218
15.1迷宫简介218
15.2迷宫界面219
15.2.1二维数组220
15.2.2迷宫数据结构221
15.2.3加载迷宫地图221
15.2.4构建迷宫外形224
15.3迷宫寻路226
15.3.1算法策略简介226
15.3.2迷宫算法分析228
15.3.3迷宫算法实现230
Scratch是由MIT媒体实验室为青少年开发的图形化编程工具,已被翻译成70 种以上的语言,在超过 150 个国家和地区被广泛使用。就像玩乐高积木一样,使用Scratch编程简单而有趣。只要用鼠标从140多个不同功能的指令积木中选择和拖曳,把不同的指令积木按照某种逻辑关系拼搭在一起,就能得到一个可运行的程序,从而创建出各种交互式故事、动画、游戏、音乐和美术作品等。
Scratch能够与数学、物理、语文等众多学科融合在一起,对青少年的学习有着非常大的帮助。例如,在Scratch中,不仅能接触到基本的算术运算、关系运算和逻辑运算,还能接触到平面直角坐标系、值、平方根、三角函数等初等数学知识。毋庸置疑,游戏总是能够吸引青少年的注意力。用Scratch编写不同类型、不同复杂度的游戏时,需要适当地运用不同的数学知识来设计游戏的算法。例如,通过圆的参数方程来控制角色作圆周运动,通过抛物线方程来模拟炮弹的运动轨迹,等等。在游戏的驱动下,这些数学知识将不再枯燥乏味,将会驱使青少年主动探究这些在游戏程序中发挥关键作用的“秘笈”。通过“玩中学”,能够激发青少年主动学习和运用各个学科的知识。
学习Scratch编程的益处就是能够激发青少年的创造力。Scratch简单易用且功能强大,能快速地将青少年的创意落地,变成一个个交互感极强的作品。在动手创作的过程中,根据项目的不同,需要融合Science(科学)、Technology(技术)、Engineering(工程)、Arts(艺术)、Mathematics(数学)等多个领域的知识。例如,对于一个稍复杂的游戏项目,就需要策划、美工、编程等不同角色的人员参与组成一个开发小组,以团队协作方式共同创作项目。可以说,Scratch编程是近年来流行的STEAM教育理念的一个极佳实践方式。
本书分为基础编程篇、图形编程篇和进阶编程篇3个部分。
第1部分讲授Scratch基础编程知识,介绍如何使用Scratch编辑器开发项目,如何使用变量、运算符、列表和过程等进行编程,如何使用流程图描述算法和进行结构化程序设计,等等。该部分提供丰富多彩的趣味数学案例,有韩信点兵、鸡兔同笼、数字黑洞、约瑟夫环、逻辑推理……
第2部分讲授Scratch图形编程知识,介绍如何控制角色在舞台上运动和进行碰撞侦测,如何更改角色的外观和创建各种特效,如何播放声音和模拟乐器演奏,如何使用画笔和图章在舞台上绘制图形和图案,等等。本部分以一个汇集诸多图形编程技术的“海底探险”趣味游戏贯穿各章,还引导读者创作电子相册、巡线甲虫、手势抓蝴蝶、种蘑菇、模拟乐器等趣味小游戏。第3部分讲授Scratch进阶编程知识,介绍如何使用克隆功能和消息机制简化程序开发,如何编写和组织规模较大或功能复杂的应用程序项目,以及面向对象程序设计和事件驱动编程思想等。此外,还通过“英汉词典”和“走迷宫”项目介绍常用算法和数据结构的应用。
本书中的程序基于Scratch 2.0(版本号为v458.0.1)编写,所有范例程序均已调试通过。读者可以关注微信公众号“小海豚科学馆”获取本书的范例程序文件和素材,还可以加入本书的官方QQ群126170677获取学习资源,并可与本书编著者和网友进行在线交流。
本书假设读者从未接触过编程,从零基础开始介绍Scratch编程知识,帮助读者逐步建立起Scratch编程的知识体系,适合对编程有兴趣的青少年阅读,也适合希望辅导孩子进行编程训练的家长和少儿编程培训机构的教师使用。
由于水平所限,本书难免有疏漏或不妥之处,还请读者朋友不吝赐教。
谢声涛
2018年3月
第3章程 序 控 制
这一章将向读者介绍在Scratch中进行结构化程序设计的编程知识,为编写结构复杂、逻辑清晰的程序和学习后续内容打好基础。
通过编程,我们能够让计算机解决各种实际问题。在解决问题时,需要仔细分析问题,将解决思路整理清楚。一般来说,无论问题如何复杂,总是可以把解决过程分解为若干个明确的步骤,这些步骤称为算法。我们可以使用自然语言来描述算法,也可以使用直观、形象的流程图来描述算法。流程图能够清晰明确地展现算法的逻辑关系和结构,在程序设计中被广泛使用。
程序其实是使用编程语言对算法进行描述的产物。任何程序(或脚本)无论其结构是简单还是复杂,都可以归纳为三种基本结构,即顺序结构、选择结构和循环结构。在Scratch的控制指令面板中提供用于创建选择结构和循环结构的指令积木,通过这些指令积木的组合或嵌套,就可以实现任何简单或复杂的程序控制流程,从而创建各种各样的应用程序项目。
本章包括以下主要内容。
◇ 介绍顺序结构、选择结构和循环结构的程序设计。
◇ 介绍使用流程图描述解决问题的算法。
◇ 介绍关系运算和逻辑运算指令积木的使用。
〖1〗3.1顺序结构
顺序结构是一种简单的程序结构。只要把解决问题的计算机指令按顺序组合在一起,计算机就会按照自上而下的顺序依次执行每一条指令。例如有一些简单的数学题,只要将参数代入公式即可求解,它的解题过程通常是顺序结构的。以顺序结构描述解决问题的算法简单而直接,处理流程自上而下,不会转向。使用Scratch编程解决问题时,只要将一些指令积木按顺序堆叠在一起就能够组成顺序结构的程序脚本。
〖1〗3.1.1跟我做: 海伦公式
在本案例中,我们利用海伦公式计算三角形面积,以此讲解使用顺序结构编程解题。
1. 例题
已知一个三角形三条边的边长分别为a、b、c,设计一个利用海伦公式计算三角形面积的算法,并编写程序。
〖1〗Scratch编程从入门到精通〖1〗第3章程序控制2. 算法分析
海伦公式是利用三角形三条边的边长直接求三角形面积的公式。已知三角形三条边的边长分别为a、b、c,则三角形面积S=p(p-a)(p-b)(p-c) ,其中p=a b c2。图311“海伦公式”算
法流程图
这个问题比较简单,先根据三条边计算出p值,再将其代入公式中计算,就能求出结果。这里使用顺序结构就能够把解决问题的算法描述清楚,其算法步骤如下。
第1步,输入三角形三条边的边长: a、b、c。
第2步,计算p=a b c2。
第3步,计算三角形面积S=p(p-a)(p-b)(p-c)。
第4步,输出S。
以上算法步骤是使用自然语言来描述的,也可以使用一种叫作“流程图”的图形化方式来描述上述算法,如图311所示。
3. 编写程序
根据上述算法描述的各个步骤,使用问答积木、说积木、变量积木和运算积木等就能够创建一个顺序结构的程序脚本,如图312所示。运行这个脚本,就能利用海伦公式计算出三角形面积。
图312“海伦公式”脚本清单
〖1〗3.1.2流程图
在编程中,将解决问题的过程分解为若干个明确的步骤,称为算法。使用编程语言将算法准确地描述出来就得到程序,之后让计算机执行程序去解决问题。
除了使用自然语言描述算法之外,人们经常使用一种被称为“流程图”的图形化方式描述算法。使用流程图可以更直观和形象地描述算法的执行步骤,更清楚地展现算法的逻辑结构,也更容易理解算法的处理过程。
在编程中,流程图又称为程序框图,是一种用程序框、流程线和文字说明来表示算法的图形。如表311所示的是用于描述流程图的基本图形符号及其功能说明。表311流程图的基本图形符号及功能说明
程序框符号名称功 能 说 明终端框(起止框)表示一个算法的开始或结束输入框或输出框表示数据的输入或结果的输出处理框(执行框)表示一个执行步骤,如赋值、计算等判断框(选择框)判断给定条件是否成立,成立时在出口标明“是”或“Y”;不成立时标明“否”或“N”流程线用带有方向箭头的流程线连接不同的程序框,表示流程的方向〖1〗3.1.3顺序结构的程序设计
在程序设计中,程序结构分为顺序结构、选择结构和循环结构。任何程序都可以由这3种基本结构组成。其中,顺序结构是简单的程序结构,也是常用的程序结构,任何程序都不可缺少。图313顺序结构示意图
在程序框图中,顺序结构就是用流程线将程序框自上而下地连接起来,按顺序执行各个操作步骤。如图313所示,步骤A和步骤B是依次执行的,只有在执行完步骤A中的操作后,才能接着执行步骤B中的操作。
1. 例题
假设一个梯形的上底为a,下底为b,高为h。请设计一个计算梯形面积的算法,并画出程序框图和编写程序。
2. 算法分析
这个问题并不复杂,使用顺序结构就能把问题描述清楚,只要将各个参数代入梯形面积公式进行计算即可。
使用自然语言将解决该问题的算法描述如下。
第1步,输入a、b、h的值。
第2步,计算梯形的面积S=12(a b)h。
第3步,输出梯形的面积S。
使用程序框图描述上述算法,如图314所示。
3. 编写程序
按照上述算法的描述,创建一个顺序结构的程序脚本,如图315所示。
图314“求梯形面积”程序框图
图315“求梯形面积”脚本清单
由此可见,顺序结构的程序脚本比较简单,脚本从上到下依次执行,所有步骤执行完,问题也就得到解决了。
〖1〗3.1.4动手练: 计算圆锥体积
1. 练习重点
顺序结构的应用。
2. 问题描述
假设一个圆锥体的底面半径是r,高是h。请设计一个计算圆锥体体积的算法,并画出程序框图和编写程序。
3. 解题分析
已知圆锥体体积的计算公式为V=13Sh,先使用圆的面积公式S=πr2计算出圆锥体的底面积,再将S代入公式V=13Sh,就可以计算出圆锥体的体积了。
使用自然语言将计算圆锥体体积的算法描述如下。
第1步,输入圆锥体的底面半径r和圆锥的高h。
第2步,计算圆锥体底面积S=πr2。
第3步,计算圆锥体体积V=13Sh。
第4步,输出圆锥体体积V。
4. 练习内容
(1) 在图316所示的算法流程图的程序框内写上文字说明。
(2) 把图317所示的程序脚本中的空白积木替换为真实积木。
图316“求圆锥体积”程序框图
图317“求圆锥体积”空白脚本
(3) 运行程序,计算出底面半径为3、高为8的圆锥体体积为。
〖1〗3.2选择结构
选择结构又称为条件结构或分支结构,它是程序设计中的3种基本结构之一。在编写程序时,经常会遇到一些算法步骤需要在满足一定条件时才会被执行的情况。例如,在Scratch创作的射击游戏项目中,通过判断子弹是否碰撞目标来决定是否命中,通过判断目标是否被击中而增加玩家的得分,通过判断玩家的得分来决定是否取得胜利,等等。选择结构就是用来处理这种需要根据条件来选择执行步骤的程序结构。图321选择结构指令积木
如图321所示,在Scratch的控制指令面板中,提供“如果…那么”指令积木和“如果…那么…否则”指令积木用来创建选择结构的程序。
〖1〗3.2.1跟我做: 求值
在程序中使用选择结构能够实现一些复杂的逻辑判断。在本案例中,我们以求数的值为例来讲解选择结构在编程中的应用。
评论
还没有评论。