01只有硬件还不够

一台电脑里有 CPU、内存、硬盘、显卡,还有键盘、鼠标和屏幕。 看起来什么都准备好了,可是如果没有程序,它们并不知道现在到底要完成什么任务

一台完整的电脑
CPU
内存
硬盘
屏幕
接下来做什么?

02程序就像一份任务说明

程序(Program)可以先理解成: 一组按照顺序写好的指令,用来告诉电脑什么时候做什么、怎样做

做三明治的步骤

  1. 拿两片面包
  2. 放上生菜和火腿
  3. 盖上另一片面包

电脑程序的步骤

  1. 读取输入
  2. 按照规则处理
  3. 把结果输出

03同一台电脑为什么能做不同的事?

因为电脑可以运行不同的程序。 程序换了,电脑收到的“任务说明”也就换了。

同一台电脑

画画程序

处理画笔、颜色和图像

游戏程序

处理角色、规则和画面

音乐程序

播放、暂停和处理声音

写作程序

输入、编辑和保存文字

电脑的硬件决定“它有什么能力”,程序决定“现在用这些能力做什么”。

04程序怎样指挥电脑工作?

上一篇我们学过,电脑完成任务时可以用 输入 → 准备 → 处理 → 输出来理解。 程序就像贯穿这条流程的“指挥者”。

输入

程序决定要接收哪些信息

准备

程序和数据被放到正在使用的位置

CPU 芯片

处理

CPU 按照程序中的指令执行

显示器

输出

程序决定最后怎样呈现结果

例子:计算 7 + 5
接收 7 和 5 执行加法 得到 12 显示 12

05电脑需要非常明确的步骤

人和人说话时,有时候一句“把桌子收拾一下”,大家也能大概明白。 但电脑不会自己猜你的意思,它需要更明确、具体、没有歧义的指令。

对电脑来说太模糊

“把这些数字整理好。”

怎样才算“整理好”?从小到大,还是从大到小?

更明确的任务

“把这些数字从小到大排列。”

目标清楚,程序才能按照确定的规则执行。

以后学习算法时,你会发现:把一个问题拆成清楚、可执行的步骤, 正是计算机解决问题非常重要的一部分。

06我们写的代码怎样变成电脑的行动?

程序员通常不会直接写 CPU 最底层使用的机器指令, 而是使用 C++、Python 等编程语言写代码(Code)

我们写的代码 例如 C++
转换成电脑能执行的形式 C++ 通常需要经过编译
CPU 芯片 CPU 执行 一步一步完成指令

你已经知道了什么

  • 只有 CPU、内存、硬盘等硬件还不够,电脑还需要程序告诉它要做什么。
  • 程序可以理解成一组按照顺序写好的指令。
  • 同一台电脑运行不同程序,就能完成完全不同的任务。
  • 程序会参与输入、准备、处理和输出的整个过程。
  • 电脑需要明确、可执行的步骤,不会自动猜出程序员真正想表达什么。
  • 我们写的代码最终需要转换成电脑能够执行的形式,再由 CPU 执行。