August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
有一种观点认为,程序就是以计算为目的的,即程序都要有输入和输出。在这里,我们把能够运行程序的硬件设备称为计算机。如果我们用广义的概念来理解输入和输出的话,那么上述的观点可以认为是正确的。
程序的输入来源很多:可以是键盘、鼠标、触摸屏、文件、其他输入设备、其他程序,或者同一程序的其他部分。在这里,“其他输入设备”的范围很广,它表示了一大类实际输入设备:音乐键盘、摄像机、网络设备、温度传感器、数字图像传感器等等。随着技术的进步,输入设备可以千变万化。
为了处理输入,程序通常包含一些数据,有时被称为其数据结构或状态。例如,日历程序需要记录不同国家的公共假期和用户的事务安排表。这些数据一部分是在程序中设定好的;还有一部分是在程序运行期间,程序通过各种输入设备获取的。例如,通过用户的输入,日历程序可以准确地建立用户的事务安排表。对于一个日历程序来说,主要输入包括对日期的查询(一般通过鼠标点击)和对用户事务安排表的处理(通常使用键盘输入相关信息)。输出包括日历和事务安排表的显示、程序按钮和提示符显示等。
输入的来源非常广泛。同样,输出也有很多不同的途径:可以是屏幕、文件以及其他设备,或者其他程序,甚至可以是同一程序的其他部分。输出设备很多,例如网卡、音乐合成器、电动马达、发光器和加热器等。
从编程的角度看,最重要也是最有趣的两类输入、输出是“从其他程序输入或输出”和“从同一程序的不同子程序输入或输出”。本书后续的大部分内容可以被视为后一种类型的实例:在协作完成一个大的软件时,应该如何合理地设计程序结构,并能够保证每一个子程序之间都能够正确地共享和交换数据?这是编程的核心问题,下图说明了这一过程: ...