第一种:
先找穿蓝衣的
再从蓝衣服中找穿白裤子的人
判断是不是男人
第二种:
先把女的都排除掉
不是蓝衣服的排除掉
不是白裤子的排除掉
以上两种方法,最后都能达到我们的目的,两种都是算法。那么它们有什么优劣之分吗?
这需要看我们的面对的群体(数据)是什么样的:如果这个群体中女人居多,那么第二种方法则优势明显。
所以,在编程中,我们一直都在致力于寻找解决问题的最优算法。
说到这里,丫姐突然想起一个笑话,讲给你听。
一个程序员下班,他老婆打来电话说:「你下班后去超市买十个苹果回家,如果看到西瓜,就买一个。」
结果,程序员回来的时候只带了一个苹果回家,他的可怜下场不可可知。但导致他犯错误的思考逻辑却正是编程中的算法逻辑:「若没看到西瓜,就买十个苹果;若看到西瓜,则买一个苹果。」
总的来说,【算法】就是运用逻辑来解决问题。而将算法和数据结构结合起来,就是程序。而程序的设计,就是编程。
这个时候你可能又会想,那编程到底是一门知识,还是一种能力呢?
丫姐认为,【懂编程】是计算机知识积累的结果,但是【能编程】则是一种实践能力。
这就类似于:有些人汽车知识了解一大堆,但却不能开车上路。所以理论还是要和实践相结合呦~
好,真正知道编程到底是个啥之后,下一关丫姐会继续给你科普一些关于编程,你不知道的冷知识,标准让你张大嘴巴~
第四关 科普编程知识欢迎来到第四关,本关我们主要科普一些编程常识,让你对编程理解的更透彻,也能拥有更多饭后谈资~
常识1:编程是谁发明的,如何演变的?
这个可就说来话长了,听丫姐细细给你道来。
你知道么?很久以前,在电子计算机诞生之前,计算机这个角色是由(女)人来扮演的。
因为大多数计算都是由人类女性,手工完成的,所以这些女人被统称之为「computers」。
但后来大家发现人计算既浪费时间,又存在误差,于是慢慢研究出一种东西,叫做【真空管】。
这些真空管有一个有趣的特性:用三个针脚可以控制真空管两端节点的电流。这使得真空管在处理模拟信号方面是可行的,真空管可以控制机器和传输模拟信号。
后来,数学家意识到,如果能够使用布尔运算,理论上就可以创建执行这些运算的机器。于是,人们使用这种理论构建了一些【机械式计算机】,但是由于机械计算机的速度太慢而且成本高昂,所以没有真正的应用。
下图就是【机械式计算机】:
接下来,是【固态晶体管】,能提供与真空管相同的功能,但它们更小,更便宜并且能够持续更长时间。所以电脑开始变得越来越便宜,越来越广泛。
但由于操作员(程序员)不得不坐在终端前,打开闭合开关,非常不方便,所以后来又发明出了穿孔打卡的方式,能够更简单方便地切换开关。
下图就是打出来的纸孔。打孔的卡上面有很多排线,每条线都有可以打的孔,这些线和开关相互匹配。
现在开始,人们不再天天操作那些乏味的开关了,改为程序员们去打孔了。每一条线,都代表着不同的指令。有个机器,可以连接到计算机读取这些指令。
就这样,我们就可以在【打孔卡】上面写程序啦。这减少了相当多的工作,写出一个卡片能使用相当久,也避免了重复造轮子问题。
再后来,天才格雷斯·霍珀(Grace Hopper)姐姐,后被人们称为“计算机程序之母“,她想出了一个很棒的点子。
她提出可以设计一种程序,让人们可以用类似英文的语法,把想做的事写下来,然后用这个程序把英文翻译成机器的语法,交给机器去执行。
于是,她发明了世界上第一个【编译器】 (Compiler),名字叫做 A-0。当时是没有任何组合语言及程序语言存在的,所有的程序设计人员都要把【程序】翻译成【机器码】,01101010110 这样的形式,在纸上打孔,再送到机器里去读。
编程语言因为 A-0【编译器】而迎来了曙光。虽然它只是科技史上的一小步,但是真的是革命性的,它改变了人类对于编程的思考方式,创造了抽象的思维方式。这意味着人们可以在更高的层次上思考。也改变了人们对如何编写程序的想法。
之后也就慢慢衍生出今天的编程来...
常识2:编程语言和编程是一个概念吗?
所谓编程语言,其实就是某一种计算机可以读懂的语言,它也是有发展历程的,你感不感兴趣?
坐好小板凳,听丫姐好好给你讲。
最先出生的编程语言是 机器语言。它非常简单。有多简单呢?
简单到只用“1”和“0”两个数字就可以进行编程。