语言的顺序表的合拼_计算机程序设计语言极简入门(一)

    这两周收集了一些关于学习编程的疑惑,不管是vb、C、C++还是python,我发现其实绝大部分同学的问题并不在于“某门语言应当怎么学”,而在于“编程应当怎么学”。在具体介绍某一门语言之前,我决定先讲讲:怎么学编程。

    这个入门教程能够帮助你从一个更高的角度去理解程序,理清编程语言的内在逻辑与联系,为你打开上帝视角。

    温馨提示:本教程是综合各个语言讲了一些共通的东西,并非针对某一门语言来详细叙述,但这一些铺垫能让你更好地适应编程的语言逻辑。

1.什么是”编程"?

       什么是“计算机程序设计语言”?

    我不想用太正经的语言去给这两个东西下一个概念性的定义,事实上为它们下一个定义也毫无意义。我希望通过一个例子让你们理解一种“编程”的思想:搭积木。编程就是一个搭积木的过程,就像玩乐高。你是把一块一块的小零件拼成一个个小部件,比如拼舰艇的时候要先拼成炮台、甲板、指挥室等,然后再将它们组合在一起拼成一个完整的舰艇。为了把零件拼在一起,每两块零件之间都有特定的连接方式,比如积木上面的突起和底下的凹槽贴合,才能顺利装在一起。

173dd44ae89e48d61ffcac742e9f0ff0.png

    程序也一样,也有特定的拼装顺序和连接方式。所谓“计算机程序设计语言”,你可以理解为不同的拼接方式的集合。就像乐高是一种拼接方式,拼图是另一种拼接方式,仅此而已,不同的编程语言之间在差异性之外,有很大的相似性,有了一门语言的基础,学起另一门语言就会方便很多。从“编程”的角度讲,它们“拼积木”的性质是几乎完全一致的。

2.程序的零件

    其实程序的组件大致来说主要也就几种:变量、操作符(算术运算与逻辑运算等)、保留字。每一个小部件都是由这三种东西拼起来的。

1.变量

    变量,通俗点来说,就是可变的量。但显然这样的说法并不准确。更准确地说,变量应当是一个符号,一个储存着某种信息,可以是数字,可以是字母,可以是单词、词语、甚至句子等的符号。小学我们就学过一个跟变量很类似的概念:未知量。在一个方程里,比如:2 X+1=5,看似我们是解得X=2这个值的,但实际上在我们解这个方程之前它已经储存着”2“这个数字。在高中的解析几何里,我们也常常令字母 p = -b+b2+ a3 这样甚至更复杂的式子,来起到简化运算的作用。但同时,我们也会刻意避免使用y、x这种有特定含义的字母来代替某个式子,也会使用 y1、y2 这样的下标来区分不同的式子。

    同样,我们在为变量取名的时候也会注意:不取编程软件本来就带有特定意义的名字(即关键字),不取相同的名字。

    这里说的变量,其实就是有这么的作用:储存一定的信息以简化程序。

    但是显然,X = 2 和 p = -b+b2+ a3 这样的式子里,前者只代表了一个数字,后者代表了一个式子,它们在复杂运算中并不能混为一谈。这就是为什么变量会有分类:对不同类型的变量,程序有不同的处理方式。而且,只有把变量类型与处理方式匹配,这个程序才能正常执行。比如一个短语“Hello World”加上一个数字3,这代表什么意思?程序并不能识别。

    变量的定义要求在不同的编程语言当中是不一样的。有的语言是不强调大小写的(比如vb),但别的绝大多数语言都是强调大小写的。有的语言的序列索引是从1开始的(比如matlab的脚本,虽然严格来说不能称谓语言),但别的绝大多数语言的序列索引都是从0开始的。诸如此类。

    这里举出几种常见的变量类型作讲解:

c13431d5c9dd060ca700f168e1b5b7e1.png

1.整型(Integer)

    简单理解:整型就是整数。但根据数据量的不同,不同的编程语言里会用整型、长整型、短整型等各种不一样的整型。这是由于数据量的不同必然导致存储空间消耗不同,如果我划分一个可以存20位数的空间给你存储一个两位数,这就造成了空间的浪费。所以在编程的时候,程序员会根据预计的数据量来决定使用哪种整型变量。

fcbd9cb55020d207a129ddd43e024428.png

2.浮点型(Float)

    简单理解:浮点型就是带小数点的数字。同样根据数据量(这里可以理解为精度)的不同会分为单精度(Single)和双精度(Double)两种基本的浮点型和多种限定长度和符号的浮点型,这里不再列举。

fdbfce3a0379ab28e395c274d86d0135.png

3.字符型(Char)

    字符型就是一个单引号括起的字符,比如 ‘a’,‘b’,‘c’,‘!’,‘9’ 这样的字符都是浮点型。

3dea98899d1f53ffc36b92412078fc34.png

4.字符串(String)

    字符串就是一长串有序的字的集合。比如”abcdefg“,”我要关注成柴之路公众号“这都是字符串。

ccfbea13a5fe6ce7f17c671f90d214c8.png

5.布尔型(Boolean)

    布尔型只有两种,一是真(TRUE),二是假(FALSE),在多数编程语言里可以用1和0代替真和假。

e572a86b0a9adcda33125937cfeece7e.png

6.无类型(void)

    作为程序完整性的一个结构,不表示任何类型。

2.操作符

    操作符其实分类非常细,包括算术操作符、移位操作符、逻辑操作符、关系操作符、赋值操作符等等,是一种对变量操作的特定符号。其实我们日常都经常接触其中大部分的操作符,比如:加减乘除与或非,大于小于不等于。这些都是操作符。C++里还有取址运算符‘&’和间址运算符‘*’。由于这里的内容关于不同语言差别会非常大,所以不作详细叙述,等以后具体讲到某一门语言的时候再详细介绍。

c725006fcac99f9816fdf05496d0efe4.png

3.关键字与保留字

    关键字可以理解为一段程序的骨架。每一个关键字都有特定的用法和程序识别的特定格式,而且每一个关键字只允许定义一次,即系统定义。用户在定义变量名的时候是不可以再使用与保留字相同的变量名的。而保留字除去关键字以外的部分,就是为了以后能承担与关键字相同的功能而预留下的,是一个编程语言对未来拓展性的考虑,所以用户使用过程中除了暂时无法用它来实现一定的功能外,在定义上是和关键字一样的。

    举一个例子:比如你在系统里维护了一段代码,定义了一个变量print(当然这个词语现在很多程序里就是关键字,这里只是一个假设),某一天该门语言拓展,将print加入了关键字当中,那你这个程序马上完蛋。所以除去关键字外的更多保留字就是这个作用,防止用户误用导致在版本更新后出事。

    同样,由于这里的内容关于不同语言差别会非常大,所以不作详细叙述,等以后具体讲到某一门语言的时候再详细介绍。

e997631b0e788ec62ccf31544e3a6b21.png

(这里的圈里有一些是拓展库的函数名,事实上关键字的数量很少而已,变量命名除了不能和关键字保留字或已知变量和函数重名外,还要注意避开拓展库的函数名。)

3.程序的部件

    除了零件之外,程序还自带有非常多的各种函数和方法。这些函数和方法都是由前面说到的变量、操作符和关键字所构建起来的。就像细胞够成组织再够成器官,一个程序就是这样一层一层地进行构建。比如一个简单的print,就是一个方法,其内部包含了各种各样的设置,可以通过help指令进行查看。

4d69ac3b4b749535426ad8e368e10607.png

    所以说,其实编程就是一个搭积木的过程。通过搭出它的骨架,再搭出一个个小的整体部件,再进行组合装配,以做成一个完整的程序。

07b355c517f4b0ac8e06199d1e615337.png

扫码关注我们 babc5c8b3db2eb0ded6e415832b124de.png

公众号:成柴之路

新浪微博:@秀米XIUMI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值