第1章 编程基础
我们先来简单介绍何谓编程,以及编出来的程序大概是什么样子。
计算机是个机器,这个机器主要由CPU、内存、硬盘和输入/输出设备组成。计算机上跑着操作系统,如Windows或Linux,操作系统上运行着各种应用程序,如Word、QQ等。
操作系统将时间分成很多细小的时间片,一个时间片给一个程序用,另一个时间片给另一个程序用,并频繁地在程序间切换。不过,在应用程序看来,整个机器资源好像都归它使用,操作系统给它制造了这种假象。对程序员而言,编写程序时基本不用考虑其他应用程序,做好自己的事就可以了。
应用程序看上去能做很多事情,能读写文档、能播放音乐、能聊天、能玩游戏、能下围棋等,但本质上,计算机只会执行预先写好的指令而已,这些指令也只是操作数据或者设备。所谓程序,基本上就是告诉计算机要操作的数据和执行的指令序列,即对什么数据做什么操作,比如:
1)读文档,就是将数据从磁盘加载到内存,然后输出到显示器上;
2)写文档,就是将数据从内存写回磁盘;
3)播放音乐,就是将音乐的数据加载到内存,然后写到声卡上;
4)聊天,就是从键盘接收聊天数据,放到内存,然后传给网卡,通过网络传给另一个人的网卡,再从网卡传到内存,显示在显示器上。
基本上,所有数据都需要放到内存进行处理,程序的很大一部分工作就是操作在内存中的数据。那具体如何表示和操作数据呢?本章介绍一些基础知识,具体分为7个小节。
数据在计算机内部都是二进制表示的,不方便操作,为了方便操作数据,高级语言引入了数据类型和变量的概念,这两个概念我们在1.1节介绍。
表示了数据后,1.2节介绍能对数据进行的第一个操作:赋值。
数据有了初始值之后,1.3节介绍可以对数据进行的一些基本运算,计算机之所以称为“计算”机,是因为最初发明它的主要目的也是运算。
为了编写有实用功能的程序,只进行基本运算是远远不够的,至少需要对操作的过程进行流程控制。流程控制有两种:一种是条件执行;另外一种是循环。我们分别在1.4节和1.5节介绍。
为了减少重复代码和分解复杂操作,计算机程序引入了函数和子程序的概念,我们分别在1.6节和1.7节介绍函数的用法和函数调用的基本原理。