首页 技术 正文
技术 2022年11月8日
0 收藏 577 点赞 1,583 浏览 1704 个字

1.啥叫编程

编程乃编写程序的简称,所以要想知道啥叫编程,首先要清楚什么是程序(Program)。

普及一点计算机小知识:从根本上说,计算机是由数字电路组成的运算机器,处理的数字也仅限于0和1组成的数字串,也就是二进制范围内的运算,至于运算的具体细节在这里就不细说了。

回到程序上来,什么是程序呢?

程序由一系列指令(Instruction)组成,指令是指示计算机做某种运算的命令。

程序就是通过一系列指令的集合,告诉计算机应如何完成一个计算任务。这里的计算可以是数学运算,比如解方程,也可以是符号运算,比如查找和替换文档中的某个单词,甚至可以处理声音和图像。

根据前面提及的计算机小知识,相信大家也能得出结论:除了数学运算,程序之所以能做符号运算,声音和图像处理,是因为这些内容在计算机内部也是用数字表示的。这些数字经过专门的硬件设备转换成我们的所见所闻。(如显卡、声卡等硬件设备)

到这里,我们大体上就知道啥叫编程了。编程就是编写能够让计算机完成某项任务而执行的程序。

2.用啥编程

人类语言的产生是为了人与人之间的沟通,计算机编程语言的产生则是为了人与计算机之间的沟通,我们正是用计算机编程语言进行编程。

与人类语言一样,计算机编程语言也是逐步发展丰富的。那就先从最原始的编程语言,即机器语言开始说起。

所谓机器语言,通俗讲就是计算机能够直接理解并执行的语言,也就是由0,1组合串构成的语言(原因可从前文获知^_^)。这些0,1的组合并不是任意的,而是受到限制的。那具体是什么限制呢?受指令集限制。

所谓指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。换言之,不同的CPU它的指令集是有差别的。

我们在用机器语言编写程序时,只能用它完成当前指令集的描述和组合,超出这个范围CPU自然就无法识别程序意图了。

现在我们下这样两个结论:a.机器语言写出来的程序满篇都是0和1;b.在张三型号CPU环境下写的机器语言代码拿到李四型号CPU的计算机上去,多半是无法运行的。(指令集不同所致)

由于原因a,机器语言太难写难记,更难改—-想象一下一万行0,1组成的代码里有某个1错写成0了,你找找试试。于是发展出了汇编语言,它给0,1组合而成的指令起了好记的名字,如指令“1010000100011100”(十六进制表示)起名叫mov,“100000111100000000001”起名叫add。这样一来,指令就好记了也好用好改了。不过问题是,计算机无法直接读懂了(它可不知道啥叫mov,add)。怎么办?想想你如果想跟火星人沟通怎么办?找个懂火星语的好翻译呗。这里也是,把汇编语言翻译成机器语言即可,这个翻译工具就叫汇编器。

汇编语言跟机器语言的关系决定了它也具有b的特征,此特征在计算机界有个术语叫“可移植性差”。谁都想为了解决某个难题写的程序拷贝到其他的计算机上也能运行。于是计算机编程又进一步发展,诞生了高级编程语言,C语言就是其中灰常灰常经典的一个。

高级编程语言克服了a,b两点,但由于将高级语言翻译成机器代码的过程很复杂,耗时多,所以执行效率高级语言比不上前面的两种低级语言。不过由高级语言带来的便利那可是数不胜数的,so,由此计算机编程开始遍地开花,进入寻常百姓家。

至于高级语言翻译成机器代码的过程这里略过,只提两个翻译有关的名词,编译和解释,具体介绍诸君可以看维基,阅百度,找Google。

3.程序好编吗

简单的好编复杂的难(这不废话吗)。编程能力是日积月累,不断提高的一个过程。

计算机指令通常只包括以下5类:

输入(Input)类:从键盘、文件或者其它设备获取数据。

输出(Output)类:把数据显示到屏幕,或者存入一个文件,或者发送到其它设备。

基本运算类:执行最基本的数学运算(加减乘除)和数据存取。

测试和分支类:测试某个条件,然后根据不同的测试结果执行不同的后续指令。

循环类:重复执行一系列操作。

我们编程就是用对应的五类语句组合起来去解决问题,而组合的思路我们称为算法。

C语言中对应的这五类语句,以及应试类程序设计所涉及的算法,后面会逐一介绍。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,117
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,590
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,435
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,206
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,842
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,927