师:同学们好,今天我们一起来学习高中信息技术粤教版高一年级信息技术必修的第四章——编写计算机程序解决问题。首先,我们来看一张日历,大家知道今天是今年的第几天吗?因为刚过完新年不久,我们能很快算出今天是新年的第55天。那么,如果老师问,任意一年的某一个日期是当年的第几天,该怎么计算呢?我们会不会先列出一年中每个月份的天数,然后根据当前日期所在月份,算出前面几个月的总天数,再加上当前月的日期,这样就得到这个日期是当年的第几天呢?但这样计算过程会非常复杂,有没有更快捷的方法呢?老师给大家提供一种方式,我们可以用计算机来帮助计算。
首先,我们来了解一下计算机是如何工作的,它需要若干个硬件相互配合。我们可以通过输入设备输入指令,告诉计算机要做什么,这些指令传递到计算机存储器后,信息会传递给中央处理器,中央处理器对输入信息进行运算和处理,再将信息返回到内存中。内存中保存的信息进一步传递到外存,这样信息就可以长期保存下来。同时,运算结束后,输出设备,比如显示器、打印机,会输出相应结果。
这里大家要注意两个概念:内存和外存。随机存储器属于内存,它只能暂时保存正在处理的信息,一旦断电,内存中的信息就会瞬间消失。如果想长期保存信息,就需要转移到外存,外存通常指硬盘。这是内存和外存的第一个区别。
内存和外存还有一个显著区别,就是容量大小。通常硬盘作为外存,大小能达到50G - 1TB,而现在很多计算机或笔记本的内存只能达到8G,容量差异较大。大家可以从这两个方面区别内存和外存。
了解了计算机基本工作原理,如果想让计算机帮助我们解决问题,必须通过一定方式。我们思考一下,人与人之间是怎么交流的?对,通过语言让别人知道我们希望对方做什么,语言成为人与人沟通的方式。那么,想让计算机完成一些事情,怎么和它沟通呢?这就需要通过程序设计语言实现人和机器之间的交流,接下来我们一起了解计算机语言的发展阶段。
最早,计算机作为电子产品,有大规模集成电路,我们通过二进制编码让计算机执行或处理数据信息。二进制在计算机中就是开和关两种状态,最早让计算机执行指令的方式就是用0和1的代码编写,由0和1组成的代码构成了最早的程序设计语言——机器语言。但机器语言由0和1这两个简单字符构成,对专业要求非常高,代码编写也很繁琐。后来工程师开发了汇编语言,用一些有意义的字符代码编写,大大降低了程序编写难度,但对工程师要求仍很高,必须了解计算机基本结构。
为帮助更多人学会程序设计,编写计算机语言,工程师进一步开发了高级语言。高级语言是相对于机器语言而言,机器只能懂机器语言,而高级语言编写的内容更贴近人的阅读和理解习惯,让初学者或更多人更容易学习程序设计语言。
常见的高级语言有Basic、Pascal,现在主流的C语言、C++,高中课本上用到的Visual Basic,简称VB,还有新教材即将使用的Python,它们都是高级语言。
同学们可能对这三种语言理解比较抽象,接下来通过一个例子进一步理解程序设计语言。让计算机完成9 + 8的运算,用机器语言表达,是由01字符串构成的指令,没经过专业学习的人看不懂。再看汇编语言,数字变成十进制阿拉伯数字,加法运算用add 9 + 8表示,用有意义字符代替,更容易理解。而高级语言更简单,三句话直接变成一句话,还能实现输出结果,9 + 8直接用数学运算符表示并输出。
可以看到,随着语言发展,高级语言越来越贴近人的阅读习惯。我们编写的是高级语言,而计算机只能懂机器语言,这就像和外国人交流,需要翻译。程序员编写的高级程序语言通过翻译程序翻译成计算机能懂的机器语言,计算机执行后,再通过语言系统翻译成高级语言反馈给我们,这样通过高级语言和翻译程序实现了计算机和人的交流沟通。
了解了人机交流方式,通过计算机语言和翻译程序,接下来总结一下程序是什么。程序可以看作让计算机实现某一功能的一系列计算机能够识别的语句,是一组机器操作的指令或语句序列。程序设计就是人们编写程序的过程,所以程序就是人让机器做事情的指令。
接下来看为什么要编写程序解决问题,程序有它的作用和优势。通过一个经典数学例子——意大利数学家斐波那契在《算盘书》中的兔子问题来了解。假定一只小兔子经过一个月长成大兔子,在理想状态下,大兔子到第三个月会生一只小兔子,以此类推,第四个月大兔子又生一只小兔子。到第五个月有5只兔子,老师想问,到第六个月有几只兔子呢?我们可以通过笔算逐月类推。从第5个月开始推算第六个月兔子数量,再往后类推第七个月。大家仔细观察,老师通过列表方式呈现,能清晰看出每个月兔子变化规律,有没有发现特点?对,数值中每个对角线数字相同,并且不管是小兔子、大兔子还是总数,数值都和前两个月有关系。从第三个月开始,第三个月兔子数量是前两个月之和,第四个月兔子数量是二三月之和,有这样的规律。我们总结出问题核心:当前月份兔子数量是前两个月之和。同学们算一下,到第12个月兔子数量是多少呢?能马上算出来吗?老师通过程序计算,只需输入月份,比如第十二个月,按回车就能马上得出第12个月兔子数量是144。同学们算出来的答案和老师一样吗?可以看出,计算机程序计算速度快,准确率比我们高很多,机器很少出错。通过手工计算和程序计算对比,可知计算机程序在计算方面速度比人快,准确率比人高,所以必要时可借助程序让计算机帮助我们计算,这就是计算机程序的作用和优势。
