这节课我们来了解下流程图和伪代码。
孩子学编程了,很多家长都说:“我的孩子会写软件了,会编程了”。但是什么是软件?什么是程序?
![少儿编程系列-Scratch初级教程:第五课-流程图和伪代码](http://p2.ttnews.xyz/loading.gif)
what?
恐怕就是学了很久的Scratch的孩子也说不上来吧。今天我们就通过这些问题来进行一些了解。
1.程序与算法
首先什么是软件?
软件=计算机程序+文档资料。
可见一个完备的可以解决实际问题的系统,我们可以叫做它计算机程序,而设计说明、用户手册、输入输出这些东西我们可以称为文档资料。
那什么是程序呢?
程序=数据结构+算法+程序设计方法+语言工具和环境
举例来说,我们要筛选出今年6月1日之前还不到10岁的小朋友,并在六一儿童节给他们一个特别的礼物。如何通过计算机程序来帮助我们完成这个工作呢?
简单的说一份学生名单(包含了学号、学生姓名、出生日期)就是我们要处理的数据结构,这个结构是一张表格;从学生名单中挑选出6月1日之前还不到10岁的小朋友,用循环的方式一个一个从学生名单里挑选,这是我们的算法;那么输入、处理、输出这个过程我们叫程序设计方法;使用Scratch或者Python来实现我们的程序设计,叫做语言工具和环境。
2.什么是算法以及为什么要学习算法?
算法是对特定问题求解步骤的一种描述。算法是计算机科学的基础,是程序的基石。
举个例子来说,学生常见的鸡兔同笼问题,它有几种解决方法呢:
公式1:(兔的脚数×总只数-总脚数)÷(兔的脚数-鸡的脚数)=鸡的只数 总只数-鸡的只数=兔的只数
公式2:( 总脚数-鸡的脚数×总只数)÷(兔的脚数-鸡的脚数)=兔的只数 总只数-兔的只数=鸡的只数
公式3:总脚数÷2—总头数=兔的只数 总只数—兔的只数=鸡的只数
公式4:兔总只数=(鸡兔总脚数-2×鸡兔总只数)÷2 鸡的只数=鸡兔总只数-兔总只数
公式5:鸡的只数=(4×鸡兔总只数-鸡兔总脚数)÷2 兔的只数=鸡兔总只数-鸡的只数
公式6 :4×+2(总数-x)=总脚数 (x=兔,总数-x=鸡数,用于方程)
上述的6个公式其实就是算法,如果掌握了这些公式,无论题目怎么变化,我们都可以很快速的用其中一种方式解答出问题的答案。
算法是基础,算法能够提升智力。就软件开发行业来说,懂算法的人多走的是架构师的路。把基础掌握牢,有高于一般人的认知水平,能够类比别的领域的相似事物去学习,拥有不错的智力,学习能力自然就强了。
3.算法的表示方法
我们用了什么来描述上面鸡兔同笼的算法?用的是自然语言。
我们编程的过程大部分是在实现算法的过程,那么算法都有哪些表示方法呢?
常用的有:自然语言、流程图、伪代码。
4.流程图
流程图(Flow Chart):使用图形表示算法的思路是一种极好的方法,因为千言万语不如一张图。
流程图有如下基本符号:
![少儿编程系列-Scratch初级教程:第五课-流程图和伪代码](http://p2.ttnews.xyz/loading.gif)
流程图基本符号
流程图怎么用?
例子:要求输入两个数,交换他们的值,用流程图表示该算法:
流程图
那么请思考一下下面这个流程图做了什么?
流程图
上面的流程图是求ABC三个数中的最小数。
5.伪代码
伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。目的是为了使得被描述的算法可以容易的使用任何一种编程语言实现。
伪代码的书写规则:
算法的开始和结束,使用begin和end来表示。
输入和输出,使用read和write来表示。
指令的表示,可以用文字来表述,是为了避免与主要问题无关的细节使算法杂乱无章。
赋值符号:用箭头符号或者等号,例如:ab
分支判断:用if ... then,如图:
分支判断
循环语句:包括计数循环和条件循环,如图:
计数循环
计数循的环循环次数=终值-初值+1,from可以用=来代替
条件循环如图所示:
条件循环
流程图和伪代码一起使用对比,例如已知圆的半径为r,计算圆的面积:
流程图和伪代码
6.使用Scratch实现算法
现在我们用Scratch来实现上面用流程图和伪代码表示的算法
(1)、新建一个作品
新建作品
(2)、新建一个变量,名称为“圆的半径”
新建一个变量
将便令命名为圆的半径
(3)、编写代码
第5课完整代码
(4)、运行代码
运行代码
我们输入5以后点击对勾,小猫就立刻将计算结果说出来。
运行结果
同样的道理,如果我们在编程之前,先用流程图和伪代码将我们的算法写出来,然后再用编程工具去验证我们的算法,你会发现编写程序非常简单,完全按照流程图和伪代码去走,几乎就成了纯体力活,只需要拖拽积木过来就行了。可见流程图和伪代码对我们解决问题的逻辑思维上起了很大作用,在后面的课程中,我将延续这种做法,在编程之前先画流程图和伪代码,然后再编程。
课后练习:
将你遇到的数学问题,用流程图和伪代码先画出来,然后再用Scratch去编程并验证您的流程图和伪代码的正确性。
这节课程就到这里,下一节课程我们讲解 “运动”模块,通过运动模块,来对Scratch舞台区的坐标系统进行进一步的认识。
閱讀更多 碼農傑哥 的文章