首页 » 排名链接 » 程序员(记实散文)(计算步长系统软件处长)

程序员(记实散文)(计算步长系统软件处长)

少女玫瑰心 2024-11-06 11:39:39 0

扫一扫用手机浏览

文章目录 [+]

图片来自网络

程序员(记实散文)

程序员这个角色,在当今社会已经形成了一种职业。
设计信息系统,编制操作软件,统计,会计,审计系统都要有人编制软件,维护和升级系统。
这些工作需要程序员完成。

程序员(记实散文)(计算步长系统软件处长) 排名链接
(图片来自网络侵删)

三十五年前,程序员带着神秘的面纱。
能够编程,研制分析系统,计算系统的人寥寥无几。
一个省级银行分行,科技处不足十人。
主要解决会计,储蓄手工记账问题。
各专业处室根本不配计算机。
报表汇总靠打算盘。
项目评估中的函数计算,最先进的机器是日本松下的函数计算器。
每个业务处仅配置一个。

一个偶然的机会,我成为了程序员。
但是严格的说是兼职程序员,或者叫业余程序员。
虽然很业余,可是凭着我的好学爱研究,锲而不舍专研,向书本学习,在实践中试验,从小成就,到分系统,大系统,逐步完善研制《项目信贷计算机管理系统》。
程序员的经历终生难忘。

(1)

二十世纪八十年代,商业银行开始发放项目贷款。
每个贷款项目都要进行评估。
需要计算许多指标,编制许多表格。
那个时候,全凭手工计算。
经处长批准,财会处同意,技改信贷处配备了一台松下函数计算器。
处长同意由我使用。
我用这台计算器计算一个现金流量表和内部收益率。
最快时十分钟就能算完。
算是一个高手了。
其他同事至少两个小时才能算完。
搞项目评估,大部分时间在手工计算指标,手工编制报表上了。
如果要进行敏感性分析,最多搞几十张报表。

如果能够用计算机自动生产报表,自动计算指标,就可大大节约评估时间。
这是我的梦想。

1987年,工行重庆分行技改信贷处研发了一个项目评估软件。
总行十分重视,四月份在重庆举办全国技改信贷专业计算机应用培训班。
史处长批准我去参加,并要我学好后培训全省信贷人员。

四月份的重庆,最缺少的是阳光,一个月的时间仅看到半日阳光。
由于重庆刚发生空难,我们选择乘飞机到成都,第二天乘火车到重庆。

培训班设在重庆分行培训中心。
中心设在南岸区的长江边。
我们安排好住宿后,把衬衣衬裤洗了,挂在阳台的晒衣架上。
第二天早上,想把衣服收起来。
没想到,用手一摸,比刚挂上时还湿,用手一拧,哗哗淌水。
没办法,我们就去上课了。

重庆分行非常重视,调来了三十几台个人电脑。
每个分行参培人员一台。
培训是速成式,除了讲评估基础知识外,计算机评估软件只讲操作。
软件系统是编译的加密软件,看不到源程序。

评估基础知识和指标计算我最熟悉了,根本不费力。
前十天的课我没费气力,我还可以辅导其他同事。
计算机基础操作,开机,简单的DOS命令,考盘,输入输出文件,也简单。
我都学会了。

重庆,特别是南岸区,地无三里平,天无三日晴。
四月的大雾,对面不见人。
洗衣服要在房间里用电扇吹,才能干。
我们房间住四个人,一个河南的,两个广东的,一个辽宁的。
河南老李不爱说话。
两个广东的一直在说着笑话。
他们两个笑得前仰后合,我们却是一头雾水,不知他们说什么。
我就问广州的H同事,你们为啥笑成这样。
那个广东的Y同事普通话稍好些,他告诉我了答案。
他说:

杨,杨,杨老兄,我嘞,我嘞依噶岗(讲)岗,一个笑话。
hongkang(香港)一个bos(老板)岗(讲),kuangzhou(广州)的饭店刀太快了。
李,李,李连杰进去了,李…莲英出来了。

我们被他的蹩脚的普通话逗笑了,但觉得他讲的故事没什么可笑。
过了大约五分钟,河南老李大笑了起来。

哈哈哈,太幽默了。
他们是说广州饭店菜价太贵了,太宰人了。
我们才反应过来,全屋一片笑声。
从此,我们宿舍和谐了。
南北中打成一片了。
一个月过得很快乐。

最后七天是软件系统上机操作。
这是我们最期望的。
重庆行演示了软件。
开机后,电脑自动进入了《贷款项目评估系统》。
他们把模拟贷款项目的数据按屏幕提示,逐个输入电脑。
然后敲击计算键。
电脑进入了计算系统。
屏幕中提示着:

“”正在计算…”

每隔一分钟响一下铃,屏幕上的字闪一下,提示还没完成计算。
大约过了十五分钟,屏幕闪烁,显示,已经计算完成。

老师们按报表键,打印出五张报表和指标。

我们盼着的计算机评估软件就算这样了。

我举手提了问题。

老师好,这个软件很好,很实用。
有两个问题如何解决?第一,计算机计算速度太慢了,和我手工计算的速度差不多,能否优化。
第二,如果要进行敏感性分析,比如原材料价格上涨、销售价格下降、投资增加等,需要如何操作。

重庆分行老师答复了我的问题,目前,我们用的是IBM8086机,运算速度已到极限,无法优化。
第二,敏感性分析,现在还没有设计模块,需要分析时,重新调整数据,输入,再计算分析。
就是按变化了的数据再做一遍。

我知道我问的问题肯定没法解决。
只希望拿到系统后,再修改优化。

最后一天,考核顺利通过了。
每位学员交款三百元,拷贝了一套评估系统软件。

拿到软件后,我迫不及待的将软盘放入电脑,试验运行状况。
运行还算顺畅。
但是,这个系统软件是编译软件,已经加密,看不到源程序。
我们花三百元就拿到一个运行软件。
经过反复交涉,还是没拿到源程序。
真是有些失望。

带着惆怅的心情回到辽宁,向处长汇报了情况,软件不是很实用。
建议不要先举办培训班。
待我优化后再培训。

处长同意了我的意见。

(2)

我反复研究了重庆软件,本想在此基础上优化,但是,编译软件无法修改源程序,只能读,不能写。
所以,优化根本不可能。
只能推到重来,从零开始起步。

我把这个想法向处长汇报。

处长说,你学过计算机专业吗?

我没学过,在大学时学习过计算机ago60语言。
这是最古老的语言,适用于国产djs6大型机。
个人机我没学过。
我回答。

编软件,你能行吗?

我没有把握,我对自己的学习能力很自信,我相信能够学会。

从头学很难吧,不然向科技处借一个人吧,你负责评估计算,科技处的负责软件设计。

好哇,试试吧!

处长给科技处长打了电话。
刘处长说,我们真抽不出人手。
第一,我们正在搞储蓄系统,人非常紧,派不出人手。
第二,我们处的人都是搞多用户的,个人机不熟悉。
无法完成你处的任务。

处长和我认真的谈了一次。
他说:

搞这个系统非常必要。
我们没有外援,只能自己搞。
相信你会有办法。

我可以学,可以试,争取成功。
我先边学边干,请给我三个月的时间,处里的活照干,尽量少安排出差,闲暇时间我就上机学习。
请给我一台专用电脑。
三个月之内,我如果能完成核心指标计算,我们自己编软件就成功了。

三个月?没问题。
如果我们能搞出一个比较先进的软件,那就太好了。
批你专用一台中环0530计算机,三个月内不安排你出差。
处里全力支持你。

我是出生牛犊不怕虎。
决心很大,但现实很残酷。
计算机dos系统命令我只是粗知。
编软件需要的计算机语言,我算是一窍不通。
大学专业是工业会计,开了一门计算机ago60语言,早就落后了。
那次穿纸带上大机试运行学生成绩计算表,我们班仅通过5个学生,当然包括我。
但是,只有这么一点点基础,想编一个评估软件谈何容易。
我下了决心,信心满满,坚决打好第一仗。

和处长谈话后,我马上去了新华书店。
买了一本BASIC语言教程,一本dBaseⅢ数据库教程,一本编程教程。
学习这三本书,开始了系统软件攻关。
这三本书都很系统,如果全部掌握,三个月肯定不行。
我着重研究编程教程,从逻辑框图开始学习。

最先从学生统计表开始,采用降序排列,将最高分的学生放在前面,按分数逐一排列。
然后算出85分(含)以上人数,在计算班级平均分。

把这个任务画成流程图。
开始——录入姓名分数——排序——统计85分以上的学生人数——计算平均分——结束。
然后再把每个步骤画成逻辑框图。

逐步学习,逐步完善。
第三天,完整的逻辑框图画完。
此任务只有一个入口,仅有一个出口,符合要求。

我运用BASIC语言开始试验语句和功能。
我打开计算机,进入BASIC系统,开始试编小程序,一个语句一个语句的试验。
语句拼写不允许一个错误。
不会的就查书。
每天下班把程序清单打印出来,拿回家再研究。

十天过去了,我编好了第一个程序——学生成绩统计表。
运行程序,按要求打印出了学生统计表。
这是初战胜利。

从第十一天开始,我试图画评估中最重要的指标内部收益率计算流程图和逻辑框图。
画了改,改了画。
同时,继续在计算机上编写试验程序。

第十八天,试验程序基本成型。
开机输入数据,开始运行计算。
软件运行三分钟后,突然断开退回DOS系统。
运行几次都是一样。
说明软件有问题。

我打开源程序,一个字节一个字节的检查,没发现错误。
再运行,还是不行。

我用打印机打印出程序清单,然后,认真检查。
功夫不负有心人,经过细心检查,发现程序中多了一个逗号,问题应该出在这里。

修改后我又运行了程序。
按下计算键,开始计算。
屏幕上提示着“正在计算”。
时间过去了20多分钟,还是没算完。
我担心进入了死循环。
如果是死循环就只能关机才能退出。
直至35分钟时,计算机嘟的一声,提示计算完毕。
指标打印在屏幕上。

等待期间,我用计算器手工计算出了这些指标。
与计算机计算结果一致。
说明计算机软件计算的结果正确。
最不满意的就是时间太长。
如能改进最好。

我分析了软件试算部分的步长。
因为内部收益率要精确到万分位。
所以步长设为0.0001。
逐步迭代试商,直至算到累计净现值为0时的折现率。
那时的8086和80186计算机,计算速度特别慢。

找到问题后,我就着手在计算步长上做文章。
我先把步长放宽到千分位,待计算数值接近0的时候,在把步长调整为万分位。

这个调整步长的修改完成后,运行后速度达到了10分钟。
我高兴万分。
我找到了提高速度的办法。

我又把步长修改为百分位,得到接近的结果时,再调整步长为万分位。
我又开始运行计算,居然提高到五分钟。
我非常兴奋,我仅用了重庆分行软件计算时间的三分之一时间。

这是第23天。
我把处长和处里同事叫到我的电脑台前,演示着我的评估计算系统。

处长说,祝贺!
成功了。
看来我们能够研发这个评估系统了。
美中不足的是,计算时间还是长了些。
如能优化缩短到秒,那就先进了。
另外还要完善软件,方便操作。

我接受了这个挑战,开始优化和完善系统。

(3)

我先着手研究优化缩短计算时间。
我请教了几位科技处的同事,没能解决。
又到图书馆查找资料,还是没解决。

我去新华书店,科技书店寻找解决问题的书。
咨询了店员,都说没有这些书。

当我出了书店的门,一回头无意中在橱窗里看到了一本书,华罗庚先生的《优选法》。
优选法——优化系统。
二者也可能有关系。
华罗庚是应用数学大师,解决应用数学问题肯定有帮助。
我花了两角四分钱,买了一本《优选法》。
如饥似渴的读起来。

0.618,黄金分割点。
我的大脑一下子开窍了。
我的计算程序慢的原因找到了。
《优选法》给我提供了解决问题的方法。

我的程序中采用固定步长计算,无意义的计算步骤过多。
从0开始最小步长0.0001计算,计算到内部收益率值为止。
试商过程太长,速度就慢了。

受《优选法》的启发,由固定步长改为不定步长。
第一步,将整个赋值区域设为1,直接计算0.618的数值。
第二步,判断数值正负,如为正数,我们再把0.618至1的范围设定为1,用0.618+(1—0.618)x0.618计算数值。
如果数字为负,则把0至0.618设为1,用0.618x0.618计算数值。

每次计算一个步长,很快接近百分位的期望数值。
在精确到万分位。

我用这种思路修改了源程序。
我反复检验无误后,开始了我的试运行。
当我输完数据,按计算指令后,本来屏幕上有提示“”正在计算…”。
可是运行时根本没看到。
计算只用了不到0.5秒的时间就出结果了。
也就是按下指令瞬间结果就出来了,根本没看到“正在计算”提示,直接“嘟”的一声,结果就打印在屏幕上了。

这次,我仅和处长汇报了运行结果,处长也亲自看了试运行。
我们两人非常兴奋。
攻关成功!
我们两人决定保守秘密,在软件推出前保密。
同时,抓紧完善,达到实用,方便,先进。

我耗时45天完成了攻关核心计算程序。
比和处长预订的时间缩短了一半。

(4)

核心计算部分出来后,仅仅是软件系统的30%工作量。
还有大量的工作要做。
核心计算采用了BASIC语言,因为是数据分析系统,必须采用数据库语言来设计人机对话,输入整理数据,形成数据库供计算。
这又是一个大难题,我必须学会dBaseⅢ数据库语言。
这时已经来不及系统学习了,只能把教程当工具书,用什么学什么。

整个系统,我采用模块设计。
分为四个大模块:数据输入,计算分析,敏感分析,报表打印。
数据库和软件主体采用dBaseⅢ语言编写,计算接口采用BASIC语言。
用BASIC语言调用数据库数据进行计算,再将计算结果数据存入数据库供打印报表。

最难的是敏感性分析模块。
重庆软件没有这个功能。
但是这个功能最重要。
如果评估中出现变化,必须进行敏感分析,研究数据波动时项目的可行性。

这个问题花费了我非常多的精力。
白天,晚上,一直在研究。
我做成了变动指标数值随机输入,同时变动数据自由组合,积木式的分析模块。
变动因素包括:

1、成本升降%

2、销售增减%

3、建设成本升降%

4、项目寿命周期变化

可以单因素变动进行敏感分析,只要输入变动%,系统自动调整数据并计算出结果。

也可以多因素变动分析,输入变动%,自动调整数据并计算。
这也是这个软件先进的一个大特点。

经过三个月的研制,软件投入试运行,又经过三个月的优化,完善的项目评估系统(辽宁版)推出来。
总行推广到全国使用。
此软件全国工行系统一直用到1993年。

这个软件大大提高了评估速度。
评估人员只要进行尽职调查,收集到准确的数据,就可上机计算出各项指标,打出需要的报表。

我的业余程序员的生涯一发不可收拾。
我研发了《项目信贷统计系统》,《项目贷款管理台账》。
从而形成了完整的项目贷款计算机管理系统。

我的程序员是兼职的,繁重的评估任务一直没停歇。
由于我对电脑操作比较熟悉,我还当上了省行机关各处室的电脑业余维护员。

当时,各处配备了中环0530机,质量比较差。
我在研发运行评估软件时,出现了不能启动的现象。
开机后不能进入DOS系统。

怎么办,我找到了电脑说明书,知道是电脑硬盘0磁道出现问题了。
排除这个故障比较麻烦。
首先用DOS引导盘插入软盘驱动器,然后启动计算机,进入DOS系统。
第二,用backup 命令备份电脑硬盘中数据。
第三,运用初级格式化命令,对硬盘初级格式化,这个过程需要一至两小时时间。
第四,进行带系统的高级格式化。
第五,编制自动P处理文件。
第六,将备份文件拷贝到电脑硬盘。
我按说明书成功激活了电脑。
处里其他电脑出问题了,我也帮助搞好了。

我能够维修电脑系统的消息不胫而走,省行都知道我能修复电脑。
所以,经常接到其他处室电话,请求帮助修复电脑。
我都欣然同意,帮助他们修理。
我确实非常累,在帮他们修电脑格式化的时间,我又跑回处里干活了。
等到格式化结束,我再跑到他们处继续修理。
能够帮助同事解决问题,我非常高兴,同事也很感谢。
我在行里的口碑比较高。

《项目贷款计算机管理系统》等到省行的肯定,也得到总行的肯定。
总行后来研发的《贷款台账系统》就是在我行个人机系统的基础上过渡到多用户大型机上的。

1990年,《贷款项目计算机管理系统》通过了省科委和电子振兴办的鉴定,获辽宁省科技进步二等奖。

在鉴定报告书上,程序员一栏工整的签上我的名字。

从零开始,边学习边编程,完成了艰巨的攻关任务。
在这个过程中,我觉得信心最重要,拼搏精神最必要。
学习是基础,试验谋提高。
通过这次程序员的实践,我学会了计算机软件开发技术,等于多学了一个专业。
程序员的实践使我养成了系统思维,锻炼了系统分析能力,为以后的工作打下了良好的基础。

图片来自网络,感谢提供者

标签:

相关文章