August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
为了使计算机能够做某件事,你(或其他某人)需要明确告诉它怎么做——细致到那些繁琐的细节。这种对“怎么做”的描述被称为程序,编程是书写和测试程序的行为。
在某种意义上,我们都编过程序。毕竟,我们都曾被告知完成某些任务的步骤,例如“如何开车去最近的电影院”“如何找到楼上的浴室”和“如何用微波炉热饭”。这种描述和程序之间的不同表现在精确度上:人类间的指示常常是不精确的,但我们可以通过常识加以弥补,但是计算机无法做到。例如,对如何找到楼上的浴室,“沿走廊右转,上楼,它位于你的左边”可能是很好的描述。但是,当你仔细看这些简单的指令,会发现其中语法的草率和指令的不完整。人类很容易做出弥补。例如,假设你坐在桌子旁问浴室的方向。你不需要被告知离开桌子来到走廊、绕过(不是跨过或钻过)桌子、不要踩到猫等。你不需要被告知不要带走刀子和叉子,以及记住打开灯才能看到楼梯。你也不需要被告知进入浴室之前首先要开门。
与此相反,计算机是非常笨拙的。它们做的所有事都要准确、详细地描述。我们考虑“沿走廊右转,上楼,它位于你的左边”。走廊在哪里?什么是走廊?什么是“右转”?什么是楼梯?我如何上楼梯?(每次迈出一步?两步?沿扶手滑上楼梯?)什么在我的左边?它什么时候会在我的左边?为了向计算机精确描述这些“事情”,我们需要一种由特定语法精确定义的语言(对此目标来说英语的结构太过松散了)和针对我们要执行的多种行动明确定义的词汇。这样的语言被称为编程语言,C++就是为各种编程任务设计的编程语言。
如果你想知道有关计算机、程序和编程的更多哲学上的细节,请(重新)阅读第1章。在本章中,让我们来看一些代码,从一个很简单的程序和运行它的工具和技术开始学习。