女孩和机器人一起思考

一起动脑筋 · 先看一个小故事

女孩请机器人“把桌子收拾好”,机器人却不知道书该放哪儿。原来,愿望还需要变成能执行的步骤。

试着把自己当成机器人:只按写下来的指令行动,不偷偷补充没说清的要求。

把过程摊开来看

沿着编号看一遍,再用自己的话讲一遍
  1. 找出目标书归书,笔归笔
  2. 写清步骤拿起一本书,放回书架
  3. 执行检查桌上还有书就继续

编程是在用计算机能处理的语言表达解决任务的规则。

“整理一下”没有规定对象和动作;“把桌上每本书放到书架”才逐渐接近可执行的描述。真实程序还要说明如何识别书、控制机器人的动作。

01编程到底是什么?

编程(Programming)可以理解成:先想清楚怎样解决一个问题,再把步骤写成计算机可以执行的程序。

比如让计算机算出两个数的和,人需要明确告诉它:读入两个数、把它们相加、再把结果输出。

明确目标

到底要解决什么问题?

设计步骤

应该按照什么顺序处理?

写成程序

用编程语言表达这些步骤。

02人怎样把想法告诉计算机?

人可以说“帮我把这些成绩从高到低排列”,但计算机并不会自己猜出具体做法。

人的目标明确步骤计算机执行

所以编程其实是在做一件“翻译工作”:把人的目标翻译成足够明确的操作步骤

03为什么需要编程语言?

CPU 最终执行的是机器指令,但直接写机器指令既困难又容易出错。

编程语言提供了更适合人类阅读和表达逻辑的写法,例如 C++:

int c = a + b;

04编程不只是“敲代码”

真正的编程通常包括:理解问题、设计数据和步骤、写代码、测试、找错、修改。

理解问题

输入是什么?输出是什么?

设计方法

怎样一步步得到结果?

编写代码

把方法准确表达出来。

测试修改

发现错误并不断改进。

05计算机为什么必须按规则做事?

程序中的每条语句、条件和数据都有明确含义。计算机不会因为“你大概是这个意思”就自动帮你补全逻辑。

这正是编程训练思维的地方:把模糊想法变成可以检查、可以执行、可以重复的规则。

06程序写完以后怎样运行?

不同语言的执行方式不同。以 C++ 为例,通常是:

源代码 .cpp编译和链接可执行程序运行

后面的文章会继续讲编译、输入输出和 Bug。

你已经知道了什么

  • 编程的核心是把解决问题的方法写成明确、可执行的程序。
  • 计算机不会猜人的意图,只会按照明确规则处理数据。
  • 编程语言帮助人表达程序逻辑,但最终仍要转换成机器可执行形式。
  • 编程不只是敲代码,还包括理解问题、设计方法、测试和调试。

轮到你来试一试

写出让同伴从桌上拿走三块积木的指令。对方如果一次拿两块,会违反你的规则吗?

想好了吗?点开看解释

若只写“拿三块”,一次拿几块没有限定。若要求“每次拿一块,重复三次”,动作就更明确。先发现歧义,再补充规则。