从日常思维到计算机程序编程思维

计算机是我们的生活必需品,我们的日常生活已经离不开计算机了。我们都在有意无意的使用计算机。比如一天,你到银行柜台上取钱,银行的职员使用的也是计算机。当我们使用计算机的时候,我们都是要用计算机上面已经有的软件,比如说你在使用手机,手机也是一台计算机,我们要用手机的时候我们想的是,去哪下一个APP来使用?而不是说我们都要自己去写一个APP,当然,你找遍了所有的这个市场,你找到不自己想要的那个功能的APP,那也许一个特殊的功能需求,要求你想做一件特殊的事情,即也许得要牛自己去写一个软件去解决,但是写软件的这种事情在现在也很少见了吧?大多数的人都不需要自己写,这个任务分配给了我们这些学计算机编程的程序员。

所以我们学程序设计的目的是什么呢?重要的目的不在于你要为自己写一个软件,而是重要通过学习程序设计,你可以理解计算机是怎么工作的,计算机擅长做什么样的事情?计算机能做什么样的事情?什么样的事情是计算机不容易做或者不擅长做的?计算机一般又是怎么解决问题的呢?比如说,我们在餐馆里吃饭,刚坐下来,我希望能够喝一杯水,我可能请服务员给我一杯水,所以呢,你只要跟他说:请给我一杯水。他会转身走到厨房找一个杯子倒一杯水给你,然后给你拿过来。但是对于计算机来说,如果你想让他为你做一件事情,可能没有那么好的自动化的程度,也许需要你一步一步的告诉那个计算机,应该怎么去做?

比如说你可能会对计算机说,你要转身走到厨房,然后找到一个杯子,然后找到一个水壶,然后在杯子里面倒入一些水,最后拿着杯子走回桌子。计算机就是这样子,事实上呢,我们在说,它是电脑,它很聪明很智能。但其实他什么也不会,只会做一件事情,就是你要他走一步他就走一步,一步步的怎么做给你看。当然它最大的能力是什么呢?你叫他做这一步,他一定不会走那一步,他会把你要求做的每一步都按要求做得很好。可是,他不知道怎么把这些步骤串起来来满足你的要求,那怎么去把这些串起来,这就是我们作为一个程序员要做的事情。即程序逻辑。

所以,当我面对一个人的时候,我们只要对那个人说:what to do,我要你做什么?他就自己就知道要去做什么。可是面对计算机,我们就必须要告诉他:how to do,如何去把这件事情做出来。因此我们要告诉计算机,要让计算机知道如何去把一件事情做起来的时候,我们需要有一定的方式,我们需要有一定的描述这种步骤的手段,那么这个手段呢,就叫做程序。

程序就是用一种特殊的编程语言去写出来表达,如Java、Python、Html+CSS、C等等。那么我们要计算机如何去解决问题,就需要要我们用编程语言来告诉计算机,我要你怎么一步一步的去做,怎么走过去去厨房取水来给我喝。我们用编程语言去编写代码,通过代码告诉计算机做事情的步骤,让计算机按特定的逻辑继续去执行。

那计算机懂什么样的语言呢?如上图所示的这种语言,在这个图的右边可以看到的是一连串的数字,你可能会觉得奇怪,有些不是常见的数字还带有字母,这是计算机另一种常用的计数方式--16进制的数字。因为有16进制,也就是说他要从0~15的,每一位都有从0~15的,阿拉伯数字范围就不够表达了,计算机就用字母a到f来表达后面的数字,所以里面有字母在里头,但它还是数字,这是16进制的数字。这是一段计算机能够懂的程序,然后它用计算机的原型,执行一系列的操作。其实这张的数字部分对应的段程序,程序员也不知道这里面具体是什么,一看是数值,这些到底指的是什么样的意思,需要将这一段程序通过另外的一个软件或者说通过一个工具,转换我们能够看懂的东西,数值转换之后的程序如图中右边部分所示,才知道他原来的样子是这样的。

当然在我们学习任何编程语言之前,这一段代码文字对我们来说也可能还是像天书一样,但是你大概能够猜一猜这里面可能有些什么样的东西,干了啥。那么右边这一段程序是做什么呢?这段程序是在用辗转相除法,去计算两个数,也就是这儿的32和26他们的最大公约数。你看到的是这一段程序,虽然这段程序是用编程语言写的,但是其实他是根据计算最大公约数的数学逻辑写的,就是下图右边的这一系列的文字,这部分可以把它叫做算法。我们要去计算一样事情,那我们需要有步骤,我们要告诉计算机怎么去做,就像前面去端水一样,我们要有有条理的一步一步的告诉计算机,步骤执行完那就得到了我们的最大公约数。

不断的算下去最后能够得到一个结果,这样的一些描述就叫做算法。所以你看计算机能懂的是那种二进制的东西。然后代码是程序员能够懂的东西,最后才是普通人的能懂的东西,就是如何去做计算的步骤,也就是算法。算法-程序-计算机能够运行的东西,这中间有步骤,有很多的事情要去做,所以,我们要让计算机去做计算,就需要像这样去找出其中的步骤,然后呢,又变成原句写出来。那我们把计算机做的所有的事情都叫做计算,加减乘除运算只是是计算的一部分,所有由计算机去做的事情都是计算。计算的步骤就是算法。

发布了55 篇原创文章 · 获赞 103 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/godot06/article/details/104377734