|
|
身为一个程序员,也许并不需要太多的内涵。
而身为设计程序的人,必须思考设计方法,以向天才的前辈们表示尊敬。
程序究竟是什么东西?首先程序包含如下部分,表示和逻辑。
所谓的表示,基本就是数学表示,字节编码之类的。
而逻辑即转化表示的算法。
比如 1+1=2的表示是三个字节,两个装着表示1的编码,结果装着2的编码。
而转化的过程就是 + 算法。
表示是识别的一种规范,而识别的主体,可以是硬件,如cpu,也可以是人,比如“它是小狗“。
而逻辑负责推导,比如1+1,推导结果为2。推导是基于硬件的,同时也可以扩充为人认知的一些规则。“它是小狗,小狗是动物“推导出“它是动物”。
但是,一切表示最基本的形态就是硬件表示,一切逻辑的行为也不能超出硬件的功能。
我们在设计程序的时候,首先要明白到我们的手段和目的是什么?
我们的手段就是逻辑推导,我们的目的就是改变表示形态。
首先要确定表示的形态。通俗一点就是数据结构。
但是数据结构只是数据的布局,而不是数据的范围和性质。
而表示的形态,是应该包括基础形态(也就是硬件表示形态),同时具备意义。意义可以成为逻辑推导的依据。
算法是什么东西?算法表示一种转化过程,同时算法能够一般化的处理同一种表示形式。
具体来说,我们首先将问题归纳为数据和操作,数据简化为硬件形态,并辅加定义用成员。
数据的转化规律简化为硬件形态的转化,并且受限于数据的定义。
最后如果需要,还需要将硬件形态转化为原始形态。
举个例子,统计一个班的学生的身高之和。
首先每一个学生应该有一个主属性身高,单位是厘米。
举例:学生a身高176厘米,b145,c165....等,然后将身高数值累加,就是结果。
数据即176厘米等。
而操作,即将数据项累加起来。
将其简化为基本形态,即用 int 类型表示。
逻辑也就是将每个int 成员用+法累加起来。
如果需要转化为原始表示形式(文字),直接使用函数printf();
不是所有的设计过程都那么简单。我们的设计过程需要使用一些技巧,或者说经验。
实际开发过程中,往往因为事物的复杂性而导致设计失败。我们首先应该着重分析事物本身,分析哪些是数据,哪些是操作。并且它们的形态和内容是什么,这些都要我们细心分析,并重复修正。
|
|