什么是编程
要理解“编程”,首先要给“程序”下个定义。你知道吗?作为一名小学生,你每天都在执行“程序”——
什么?这不是——作业吗?和程序有什么关系呢?
想一想,老师为什么每天都给我们布置“作业”呢?——是为了实现某个目标,这个目标就是为了让我们巩固已经学习的知识,温故而知新。而作业就是为实现这个目标,要求我们完成的一系列任务。
同理,我们要让计算机帮我们实现某个目标或者解决某个问题,是否也应该给计算机布置一些“作业”——一系列必须完成的任务呢?
答案是肯定的,我们要让计算机实现目标或解决问题,也要给计算机下达任务。只不过这种任务需要翻译成计算机能够理解的“指令”。程序就是为了实现某个目标而要求计算机执行的一系列指令的组合。
而给计算机“布置作业”,编写这一系列指令的过程,就是“编程”。
程序与算法
想一想,给我们的作业内容是老师随意布置的吗?当然不是,老师会结合不同学科的学习方法和重点内容综合考虑具体要做的任务。比如:经典诗词会要求诵读或默写;英语单词需要录制发音;而有些粗心写错的数学题,可能会罚你抄写十遍……
老师会考虑让我们做按什么步骤、做什么事情,才能更有效地复习已学知识。同样,给计算机编程时,我们也要为计算机考虑好一定的步骤和方法,以便达到我们设定的目标。这些步骤和方法被称为“算法”。
算法,就是利用计算机解决问题、实现目标的执行步骤和方法。
有了算法,再用计算机能够理解的指令把它表达出来,这就是程序,可以交给计算机去执行了。因此,所有的程序都是特定“算法”的表达,算法是程序的“灵魂”。