本书的立意是测控传感器的研究与创意应用,主要目的是期望能够把Scratch语言作为一个研究工具来得到一些稳定的规律,其后在研究的基础上开展一些工程应用和艺术创意案例。因此用一个简单的实验“Scratch 1.4和Scratch 2.0循环时间的比较”来介绍一个研究报告的基本写法。
研究报告包括以下几个部分。
(1)研究的题目:题目应该简单明了,不需要有感情色彩的抒情和过分夸张比喻,如果题目比较长,可以用主标题、副标题的形式来撰写标题。
(2)作者:作者的写法一般是单位+作者的方式,如果期望你的文章能够引起更多读者的交流,可以在文章的末尾用括号的形式注明。
(3)研究的摘要:摘要是一个研究论文的简要介绍,一般在150字左右,包括主要的步骤和结论。在行文中一般避免出现主观化的词汇,比如“我”,如果必须出现作者,一般以“笔者”二字代替。
(4)研究的设备:如果需要制作一个实验来发现一个规律,这类实验的结论需要其他研究者重复实验来验证实验结论的可信程度,因此需要将实验的设备以及参数公布出来,便于学术的传承。
(5)研究的步骤:这里介绍一个研究的实施步骤。从格式上讲,一般一级标题用“1.”表示,二级标题用“1.1”表示。一般一篇短论文不需要三级标题,如果需要更小的标题,可以使用“(1)”表示。关于图标的编号如下,图编号一般放在图的正下方,格式为“图1”,表的编号一般放在表格的正上方,格式为“表1”。研究的步骤中一般包含数据表,这些数据的图、表是接下来得出研究结论的依据。
(6)研究的结论:研究结论是依据研究数据得出的结论,一般要求言简意赅,可以对研究结果的应用价值做简要的分析,但是不能夸大事实。
(7)进一步研究的问题:这里一般对研究的不足和进一步要研究的问题做一个阐述,以便其他研究者跟进研究。
(8)参考文献:参考文献是指文中引用的一些论文或者网站的地址,一是给文中引用的他人观点提供一个出处;二是方便其他研究者通过这个文章所述的领域有一个整体的把握。
接下来,就以论文的形式开展一项研究,题为“Scratch 1.4和Scratch 2.0循环时间的比较”,其中涉及链表的使用方法,在今后的研究类程序设计中很有用。为了体现一篇论文的标准格式,下文中的图的编号将不使用形如“图1.1”的编号方式。
Scratch 1.4和Scratch 2.0循环时间的比较
北京景山学校 吴俊杰
摘要: 本文通过编程研究了Scratch 2.0和Scratch 1.4的循环时间,实验表明Scratch 2.0的循环时间是Scratch 1.4中普通模式的三万分之一,超速模式的六百分之一。循环速度的加快使得Scratch 2.0能够胜任复杂游戏和科学计算的编程需求。
程序语言的循环时间是一个程序语言的基本参数,直接影响了程序的执行速度。2013年9月,Scratch语言开发团队公布了Scratch 2.0的PC版本,与之前的Scratch 2.1相比,循环速度有了很大的提升,本文将通过实验比较两个版本在循环时间上的差异。
1.问题的提出
在Scratch 1.4中,如果需要开发一个秒表,使用图1所示的程序就会发现秒表并不像预想的那样,结束程序之后,小猫会说10,而是多出了0.34,这个误差产生的原因是程序完成一个循环需要时间,这个时间在Scratch 1.4之下是多少可以通过实验进行研究。
图1 Scratch 1.4下制作一个秒表
2.Scratch 1.4之下的循环时间测定
为了获取数据,在“变量”菜单中新建一个链表“时间”(见图2),并修改程序,将每次循环结束后的时间存储在链表中。
图2 用链表存储数据
将链表输出为.txt文件在Excel中进行分析。首先可以通过差值的方法进行分析,如图3所示。
图3 用Excel分析循环时间的数值
此外,还可以通过Excel绘制差值结果的图像,并通过拟合直线的方法来分析循环时间的平均值,如图4所示。
图4 使用线性拟合的方法研究循环时间
研究表明,每次循环大约需要0.033s,并且循环执行的过程中循环时间基本稳定。但是循环内部“等待1秒”和“将计时器加入链表”可能也需要占用一定的时间。修改研究工具如图5所示。
图5 改进后的循环时间测定程序
实验发现,Scratch 1.4的循环时间是0.0252s,并且是一个稳定的数据,实验原始数据见表1。
表1 Scratch 1.4的循环时间测定
研究发现,由于Scratch 1.4的循环时间是一个稳定值,因此只需用1000次循环的时间除以1000就可以比较准确地测定这个数,如图6所示。这个数据看似较小,但是在计算机看来已经是一个非常慢的循环速度了,这意味着计算机在每秒只能完成40个循环。在Scratch 1.4中提供了超速模式,这种模式使得程序的循环时间大大加快,超速模式的速度是普通模式下的1/50。
图6 Scratch 1.4中超速模式执行1000次循环的时间
可以看出在超速模式下,执行1000次循环的时间是一般模式下的500倍。
3.Scratch 2.0下的循环时间测定
在Scratch 2.0中使用类似的方法,测定Scratch 2.0的循环时间(图7),可以发现100万次循环的时间为0.82s,每次循环的时间为8.2×10 -7 s,循环时间是Scratch 1.4的3万分之一,是Scratch 1.4下超速模式的六百分之一。
图7 Scratch 2.0下普通模式下的循环时间
实验发现,在Scratch 2.0中的加速模式下循环时间没有变化,加速模式的原理还需要进一步研究。
4.进一步需要研究的问题
本研究指出了Scratch 2.0相对于Scratch 1.4的一个不常被发现但是非常重要的改进,即循环时间的变化,这种变化使得Scratch能够完成一些复杂的程序和科学计算得以实现。
如图8所示,通过一百万次计算,经过5.38s,将圆周率的计算精确到小数点后第六位,这个程序在Scratch 1.4中至少需要7h的时间。
图8 使用Scratch 2.0来计算圆周率
注 :Scratch 2.0计算π的数值:http://scratch.mit.edu/projects/12359172/。
Scratch 1.4中循环时间的测定:http://scratch.mit.edu/projects/12358897/。
至此完成了一篇论文研究报告的写作。本书接下来的内容都可以撰写一个研究报告,期望一份规范的研究报告,能够成为与他人交流感测与控制技术良好的起点,期望有一些优秀的报告能够在专业的学术期刊上发表,或者可以参加科技创新大赛一类的科技比赛。