易码技术论坛

 找回密码
 加入易码
搜索
查看: 64935|回复: 3

[原创]MathsTool的幕后介召

[复制链接]
发表于 2005-2-24 17:49:00 | 显示全部楼层
顶~不放在水区也很好啊
发表于 2005-2-24 00:37:00 | 显示全部楼层
呵呵,说实话,我们金陵中学的数学尖子的软件肯定优秀。
 楼主| 发表于 2005-3-2 21:25:00 | 显示全部楼层
怎么成水帖了?
 楼主| 发表于 2005-2-23 21:04:23 | 显示全部楼层 |阅读模式
MathsTool的幕后介召
  各位星迷,大家好.我们是MathsTool的作者:黑人类,谷虫。在这祝大家新年快乐。
MathsTool作为公认的WQX端最佳数学软件,为大家特别制作了新年特别版。希望大家可以喜欢。
谷虫开始吹牛:
下面谈谈如何制作一个像MathsTool这么大的BASIC软件呢?
1.你有技术(-_-b)。这是最基础的了。
2.有耐心。其实我们在制作的过程中也遇到了各种问题。比如BASIC的奇特BUG啦....所以,有一个耐心是十分重要的。
3.团体合作。这点我深有体会。不论是我和黑的合作,还是donghui2199的帮助。都使软件可以更好的制作。如果你身边没有帮手。在网上也可以找啊(可以找我啊)。
下面谈谈方法上的问题。在你制作一个软件前。要有一个步局,把软件分成几块。下面以MathsTool为例。
1.选则的界面(总体)
2.每个小程序
  1.一元二次
  2.二元一次
  3.分数化简
  4.………
3.把它们串起来。
可能这简单了一点,可能每个程序不大一样,有的烦一点(幻世),工具类的可以这么先分块。
下面教一个MathsTool的编写方法。〖揉面法〗(汗....)
MathsTool在编写的时候用了这种原创(?)的方法。比如我们把一元二次方程单独编写成一个程序。(注意行号和别的不要重复,可以用2000-2200)。然后把其它的小块也这样编。其实很多的人都编过这种小程序,但似乎一合起来就觉的十分麻烦。下面是最重要的部分。
大家如何把小程序合并呢?这里推荐pacmgr(你不会不知道吧)。它的编写文件的功能十分的强大。打开你的主体程序(一个空壳)。通常一个BASIC的每一行之间都用00把它隔开,记注这一点。在最后一行的00按L可以粘帖你的小程序(按行号排列)
如果想在一个程序中间插一段怎么办呢?
1.先找到你要插的地方。然后按F4可以把下面的一段另存为。之后把那要插的和另存的分别粘入即可(注意找准插入点)。这样就可以轻松的作一个大型的BASIC了。
黑人类:插一句。对于初学者我看还是传到电脑上转成txt再粘起来,重新转回bas。讲完了。
【MathsTool】在广大星迷的支持下成为BASIC的经典之一。大家多多把这软件传给同学吧。
    以后的日子里。我们会给大家代来更多的好软件。
1.CHEMTOOL.(20%)
2.赌神训练营(80%)
3.金字塔冒险(70%)
都初具效果了.
还有一些已经搞定了的程序正在加强中。
〖BASIC小技巧〗
1.IF 语句后的行号前可以不加GOTO.如IF A>0 THEN 100
2.在BASIC里.如果(A=1)成立则结果为1.不成立为0.所以可以优化一些语句.
例:IF X=0 THEN X=1
    IF X=1 THEN X=0
可化为X=X=0
3.按键判别的化简
也用到了2中的方法.但又用了一个 ON A GOTO1,2,3
例 A$=INKEY$
   IF A$="b" THEN GOTO 100
   IF A$="n" THEN GOTO 200
   IF A$="m" THEN GOTO 300
化简后:A=ASC( INKEY$ ):ON (A=98)+(A=110)*2+(A=109)*3 GOTO 100,200,300
可能当选择多时效果更好.
4.四舍五入
其实这很简单.
A=INT(A+.5)
5.在BASIC中可以留一个"0 : "这一行.方便跳行想去8000就在0那打7999(请确定那是空行),一下就跳过去了.
☆路感悟
从2004年3月发现了SKY到现在也有快一年了.总认为自己混的不错啊.当年在NET和SKY的美好生活已不再有了.我认为大家还是要好好学学编程.这样才有意思.自己的游戏才是最棒的啊.
    黑人类:该我了。那个人吹牛吹完了,我来说几句大实话。
    我编这个程序(这里插一句话,程序的大部分是我写的,那个人主要活跃在论坛上,偶尔去编写)有几个背境因素:
  1.当年的"理科三剑客-数学篇"速度太慢,根本不实用。
  2.各种程序多而散,没有一个较为综合的程序,这样占用空间大找到要用的程序慢,三个字"不实用"。
  3.其实数学工具对我没什么用,编这个程序主要是练习编程(现在是进一步提高水平)。
    在最初的一个月里我为了分数化简繁了好长时间,因为那时我对算法毫无研究,化简速度慢得出奇。后来(大约是6、7月)发现了这一算法(学编程的人应该都会这一算法)为此高兴了一段时间。
    MathsTool的一大硬伤是一元四次方程,在此忠告一下:不要使用。一开始我对一元四次方程一点也不了解,整个程序是抄书的,但是书有打印问题,所以有些解有问题。两个月前,我在网上搜了半天为的是找公式。
    可是.....可是.....公式有了,自己水平不够,编出来还是问题多多,所以.....所以.....(我大喊)错了后果自负。知到了吗?
    FN的奇怪BUG是程序超过8K就会出错。班上的高手说这是程序的自我保护方式。???..奇怪吧!?!
    一开始分块些程序的时候毫无问题,就粘进了主程,可是再次运行主程序的时候就是一身问题。我俩检查了好几遍,又粘了好几遍问体还是没解决,只好暂时放下。
    还是谷虫细心,他发现每次都是粘完最后一个子程序的时候FN才会出错,这时,程序由7.5k变为8.7k,他猜想当程序大于8k时,FN就会出错。实验正明当程序为8192Bety(8k)时一切正常,加一个冒号后就开使问题多多了。
    因为新版中加了几何版所以讲一下几何版的制作。
    三角函数的计算这是因为我们学了三角函数才编的,只是gvbasic中只有:SIN COS TAN ATN四个函数,所以花了很长时间去推关系,再者是gvbasic的精度低,多转化几次就出现了误差。
    大家可以注意到在三角函数和函数绘图中可以输入π和根号,这应该谢一下donghui2199,我和谷虫是初三的人,计算时很少用到π,团结协作可以使软件更实用。
    函数绘图我曾经做过一次。可是X轴和Y轴还有单位长度是要可以改变的,所以没做好。后来借用了一下水银的算法最后完成了,他的程序也是最后被删去的数学程序。
    结束语:我们的软件是在大家的批评和建意中成长起来的,请大家再继续提出一些建意,特别是还能再加些什么,当然以后将很可能是三个文件。

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-29 19:08 , Processed in 0.010000 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表