至于个人的成就及表现有待于不断地自我要求和探索不.docx
《至于个人的成就及表现有待于不断地自我要求和探索不.docx》由会员分享,可在线阅读,更多相关《至于个人的成就及表现有待于不断地自我要求和探索不.docx(12页珍藏版)》请在冰豆网上搜索。
至于个人的成就及表现有待于不断地自我要求和探索不
学习任何一种艺术,只能从瞭解观念及熟练地运用工具、技巧上下功夫。
至于个人的成就及表现,有待于不断地自我要求和探索,不是仅仅通过学习就可以轻易获得的。
组合程式的写作亦然,虽说尚有时、空效率的客观标准,但是一个功能复杂、应用广泛的程式,其价值的全面评估却非如此单纯。
要言之,目前这种组合程式艺术仅在启蒙阶段,尚无成规可循,必须到大众都认识到其价值时,才会有定论。
因此,我只能在此举一个例子,说明程式写作的观念,希望读者能够举一反三,灵活应用。
第一节 主题认识
一、任务
兹假定有一任务,是要设计一些应用符号,其过程由编码到将符号绘制完成为止。
这是一个实际且实用的例子,我利用仓颉码定义符号码,并以程式处理之,既精简,又快速。
事实上,字形产生器就是利用类似原理设计的,在此特为参考。
这些应用符号,是用来画表格,要与文字混用,故将各种表格符号,分解成为文字字符,并予以定码。
首先考虑编码,在此,「编码」就是前面所说的「资料设计」。
一种考虑周全的编码,在程式处理上,可以节省大量的时间和空间; 对使用的人而言,循着一种规则,也可达到易记易用效果。
要达到上述目的,必须先瞭解一些相关的因素,只要把这些因素纳入考虑范围,且其结果能表现在所编的「码」中,上述的任务就达成了。
这些相关的因素是:
1,编码的限制:
仓颉码取一至五码,限用 24 个字母,此类符号也不 能例外。
要能与中文字同时输入,而且不能混淆,故不能 与已存在的中文字码有重码的情况发生。
2,功能的需求:
假定要设计四种不同粗细的格子,且每种皆能相互配 合。
如:
┌ ┬ ┬ ┬ ┬ ┐ ┌ ┬ ┬ ┬ ┬ ┐
├ ┼ ┼ ┼ ┼ ┤ ├ ┤
├ ┼ ┼ ┼ ┼ ┤ ├ ┤
├ ┼ ┼ ┼ ┼ ┤ ├ ┤
├ ┼ ┼ ┼ ┼ ┤ ├ ┤
└ ┴ ┴ ┴ ┴ ┘ └ ┴ ┴ ┴ ┴ ┘
图 一
┌ ┬ ┬ ┬ ┬ ┐ ┌ ┬ ┬ ┬ ┬ ┐
&n
bsp;├ ┤ ├ ┤
├ ┤ ├ ┤
├ ┤ ├ ┤
├ ┤ ├ ┤
└ ┴ ┴ ┴ ┴ ┘ └ ┴ ┴ ┴ ┴ ┘
│ │ │ │ ─ ─ ─ ─
图 二
二、分析
以上符号共有 104种形状(后来我发现不敷应用,又加入一些图形)可以细分为四类,分别为:
横向,左右延伸,上下等距。
纵向,左右等距,上下延伸。
横向,或左或右,上下等距。
纵向,或上或下,左右等距。
由此可知,我们已经能够定出其规律:
1,只有纵向横向,皆连接于格子的中央点。
2,只有四个位置,即上、下、左、右。
这种归纳方法相当有用,因为我们发现了二进位的影子,正该加以利用。
先以四个位置来考虑,上下形即为纵向,左右形为横向,是个标准的二进位结构,如果以对角线来看,左、上,右、下又可以组成另一维二进位,可以各用一个位元来表示。
我选用了四种粗细,以凑成四个位元。
以一字元示意(x 表与该性质无关的位元)如下:
凡属细点者:
xxxxxxx0
凡属粗点者:
xxxxxxx1
凡前述点不加粗:
xxxxx0xx
凡前述点粗细加倍:
xxxxx1xx
凡属于横向者:
xxxxxx0x
凡属于纵向者:
xxxxxx1x
凡属于左上者:
xxxx0xxx
凡属于右下者:
xxxx1xxx
以上各值用了四个位元,共有16种组合,若以码代表之,其组合数当视取码数而定。
再参考图一,每种因素取一码,横、直、位置共有四种,结论是最多应取四码。
取四码虽然理想,但仓颉码的设计原本是为了全部六、七万个中文字,而文字的产生为约定俗成,不可能恰好有一连续空余的四码区段,可以安排表格码。
我在输入码的组合中,好不容易找到一区,即YYX 码后,没有已存在的中文字,故此决定把表格码安排在此区。
仓颉码最多取五码,YYX 已用去三码,仅余两码可用。
&n
bsp;再看前面的分析,只有16种组合,而符号有24个之多。
这种搭配很不理想,需要再加考虑。
需要取三、四码的,都是要贯穿格子中心的形状,如果再设几个贯穿格子的形状,也当作基本图形,则每个图形仅取两码即可。
到底我们要多少贯穿形呢?
八个!
(见图二)八加十六,恰恰好廿四个,完全符合我们前面所强调的精简法则。
这几种定义,实际上仅需将第五个位元设为一即可:
凡属半形者:
xxx0xxxx
凡属贯穿形者:
xxx1xxxx
最后,这24个码再加 41H就可以得到与文字相等的码值,读者如有兴趣,不妨试着将这些码的值求出,今后应用时就可循着这种思路得出其输入码,而不必死记。
不过,编码还没有完成,因为在电脑中,一字一代码是相当重要的原则,精确、效率都建立在这个原则上。
假如有一代码所代表的形状,与其他代码所代表者相同,就相当于有「重码」字,这种情况应设法避免。
此外,为了便于使用,取码也应依一定规则,配合字母顺序,且以符合程式的处理为宜。
例如 YYXAK与 YYXKA所得形状完全相同,要避免困扰,应规定依字母顺序,只有 YYXAK为有效码。
又如 YYXAI所得之形,为左侧细横加右侧细横,相当于一条贯穿的细横。
而这种横与 YYXU 一码完全雷同。
必要时,可以仅以 YYXU 为正确码,将YYXAI, YYXBJ, YYXCK, YYXDL, YYXEM, YYXFN, YYXGO, YYXHP等码建表拦掉。
注:
关于这一点,由于我当年的疏忽,编错了几个,若现在改过来,就会造成过去所建资料不能再用的痛苦,所以从事规划者,千万慎始!
三、改进
上述的编码方式,是否很理想呢?
绝对不是,不仅由于当年的经验不足,考虑的不够周全,已经有了一些错误的编码,而且观念上也有疏忽处。
希望读者能进一步的研究出更好的方法,至少,应该能把我个人所发生的缺点加以改进。
关于这一点,不妨当作考试题目,在参考本章第五节程式写作时,留心一点,就会发现其中大有文章。
编码确定以后,就可以写程式了。
由于编码时已经把程式的「位元资料」一并考虑,所以立刻分支,利用绘图的程式,轻松愉快地,用几条指令,就完成了任务。
第二节 系统分析
所谓系统分析,即为有系统、有规则地去分析「对象」,以电脑术语而言,对象指的是所使用的硬体及软体。
系统是一系列有组织且统属的整体,从宏观角度来看,系统所涵盖的有:
1,目的:
任何一种系统,必然有一个特定的目的,如果不能对其目的先作分析,甚至于不知道目的为何,又怎能发挥系统的功能?
2,结构:
系统之组成,是基于其特殊结构,也可以说是组件、部件或或部门,端视其系统特性而定。
瞭解结构,分析结构的性质,再配合各种条件,才能达到目的。
3,效应:
效应指预期的结果,系统分析的意义是为了实现,唯有透过对目的的认识,对结构的瞭解,才能设计出方案。
可是这种方案所产生的效应,如不能料于机先,又怎知是否符合理想?
同时,系统分析还有另一层意义,天下所有的事都是相互的,单一的系统没有分析的可能与必要。
比如说分析一部汽车而不理会其行经的路况,不顾使用的条件、油料、配件、人员素养等因素。
则我们可以断言,这种分析的结果,除了提供参考外,毫无实用价值。
在电脑上亦不例外,电脑术语上的系统分析,概指对硬体机种的性质、设备以及使用者的需求范围等的分析、瞭解和设计而言。
在下面我们将对这些一一进行分析。
一、硬体机种
以 IBM PC/AT作为发展对象,本来不必讨论其硬体机种。
只是,站在系统分析的立场,则不能不加以说明,因为这是系统分析必要的步骤之一。
根据市场分析,国内 IBM及与其兼容的微电脑几乎占 80%以上,中文系统是特为国人发展的,而且是种「附属程式」。
以目前的形势看来,可以说是别无他途。
既然决定了系统,进一步是探讨系统的规格。
硬体系统的规格,不妨参考随机而来的手册或说明书,资料越齐全,对工作越方便。
尤其是「程式师手册」(Programm-er’s Manual)更是必备,应事先收集妥当,随时可以取用。
有了硬体的规格资料,再看哪些与程式本身有关,摘录下来,一条一条地比对,直到全部有了答案,机体的系统分析才算完成。
兹以一、所述的任务为目标,并假定使用的机种为 IBM的AT 兼容机。
其相关的规格有:
&n矚慫润厲钐瘗睞枥庑赖。
矚慫润厲钐瘗睞枥庑赖賃。
bsp;系统记忆体 640KB
硬磁盘 20 MB
软磁盘 360KB
萤幕显示卡 Hercules Graphic Card
键盘 101键,型号 CSK-1101
操作系统 dos 3.3 版本
其他周边无关宏旨,从略。
此外,为了应用中文,假定采用了“聚珍整合系统”,本系统程式包括所有中文字形及七大应用软件,占 440KB。
作为一个系统,使用者能支配的空间越大越好,既然要用中文,而中文系统程式又是一种附属程式,难免就会占用部份空间。
因此,要想使中文的应用功能不弱于原系统,必须非常有效地利用时间及空间。
既然已经用了 440KB,千万不要再多事浪费。
有些中文系统的设计,是把中文字形存贮在硬磁盘中,从表面上看来,空间并没有浪费多少。
但是不要忘了,硬盘的读写次数有其极限,如果每个中文字要读取一次,大概不到半年的时间,硬盘就会损坏。
不仅如此,这种方法速度很慢,用起来也不方便。
有些设计为了避免上述的缺点,便以扩充记忆体的办法,先将「常用字」装入扩充区内。
这样速度加快了,硬盘的损耗也减低了,可是成本却大大增加。
也有人认为,硬体在不断改进,光盘问世后,容量不再是问题,何必多虑?
软体工程师的责任,是要在自己的技术能力上,发挥最大的边际效益。
不论硬体是否能够改进,都应该不辞辛劳,努力将程式写好。
一方面当目前硬体尚不够理想时,效率高的软件有立足