编程夜未眠

有志者,事竟成,破釜沉舟,百二秦关终属楚;苦心人,天不负,卧薪尝胆,千三越甲可吞吴.

郑绍辉ID:shaohui
[修改头像]
824799次访问,排名28好友3人,关注者8
两次PHP programmar.
分别一次C++和Delphi程序员。
一次SQA.
现在为UESTC在校研究生,系统分析员,参与和负责多个项目的开发。
shaohui的文章
原创 109 篇
翻译 0 篇
转载 7 篇
评论 1256 篇
shaohui的公告
首页链节
公开留言私人留言
blog日志 blog声明
Shaohui的google相册

语言   English(beta) Chinese
最近关注

最新公告

My Work
发布SnifferFox v1.0,该软件在界面和易用性方面作了比较大的改进,默认安装提供了超过30套界面皮肤。
下载 源程序 安装程序

发布一个公式计算器,功能不比Windows的计算器弱哈,而且还更为实用,不过还有一些bug等以后有时间了再来改进.
下载 安装程序 免安装压缩包
发布SnifferFox Version Beta了,并且提供源代码,对学网络编程的朋友可能会有帮助!

下载 源程序 安装程序
个人档案

联系方式:

访问统计

.
最近评论
Shaohui:re rain:
1. Windows 下面push的问题
我只是在windows下pull过,但是从来都没有push过,所以,这个问题我也不知道,不过建议你到他们的mail list去问一下
2.其实可以开多个端口,但是必须是不同的目录,这个我试验过

新的问题
hg实际上比CVS好用多了. 至于push权限,我也不是太了解,一般……
rain:谢谢楼主!
1. 关于ssl required,按上面的步骤在linux下push没有问题,在windows下 clone一下配置库,修改完,pussh时出现ssl required ,可能是上面的配置不适合在windows下执行,不知道楼主有没有遇到过?
2. 可能是受svn的影响,觉得应该只能启动一个端口,原来可以这样实现。hg服务好像也可以通过apache启动,不过……
Shaohui:re rain:
我是把我配置的步骤一步步写下来的,可能会有遗漏
至于“ssl required”,这个问题我遇到过,原因好像是你的仓库是readonly的,需要设置一下
建议你去看一下merciural的FAQ,里面有提到这个问题 www.selenic.com/mercurial/wiki/index.cgi/FAQ

如何配置多个库<……
rain:初次接触hg,很多都不懂,楼主能否帮忙解答呢?
rain:1. 似乎配置还不完整,完成上面的配置后,push提示:ssl required
2. 上面的配置只能启动一个配置库project.hg,如果有多个配置库,服务怎么启动呢?
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    关于我
    作品截图
    常去的地方
    C++Builder研究
    ChinaUnix
    CSDN
    系统分析之窗
    软件工程专家网
    友情链节
    CSDN Blog开发组
    Eric's BLog(RSS)
    Expression Calculator
    Fantasy Soft(RSS)
    Shaohui
    SnifferFox on Google Code
    流星絮语 JAVA学习笔记
    老顽童-程序员考试
    葛涵涛(RSS)
    键者天行
    珍藏链节
    Qmail 官方网站
    STL技术文章不完全列表
    中国历代疆域图
    存档

    原创 一个实用的公式计算器

    新一篇: "谷歌"为谁而歌,你是怎么翻译google的?

          说明:已经把下载文件转移到http://www.shaohui.org/exprcalc.html了. 

      两年以前在学校的时候,做了一个表达式求解的程序,是用C写的DOS环境下运行的程序,而现在用DOS的人在这个世界上已经差不多绝迹了。所以,实际上这个程序已经失去 了它的意义.最近,由于需要做一个计算器,而我发现以前的程序功能已经足够强大了,我把以前的代码做了一个小小的改动,用BCB做了一个图形界面,于是现在你所看到的公式计算器就诞生了。

          由于各种实际的原因,我不便于公布该程序现在的源代码.如果确实需要,请参考http://blog.csdn.net/shaohui/archive/2004/11/05/168323.aspx, 核心的代码我没有作一行改动,只是做了个图形界面,增加使用变量的功能.

          该软件为绿色软件,不需要安装,也不会修改你的注册表。

          你可以到以下地址下载该软件

    http://www.freewebs.com/zhengsh/download/ExprCalc.rar
    http://geostar.3322.org/soroc/downloads/ExprCalc.rar   

    公式计算器使用说明

     

    1         该程序能够识别大多数数学运算符号 

    + 加

    - 减

    * 乘

    / 除

    ^ 乘方开方

    % 取余  

    注意:绝对值符号||不能够使用,有专门的函数fabs或者abs求绝对值

        不能够用点号代替乘号例如1*2不能够写成1.2

     

    2. 该程序能够识别大多数数学函数(29个)  

     

    函数名称

    内部表示

    说明

    arcsin

    A

    反正弦

    arccos

    B

    反余弦

    arctan

    C

    反正切

    arcctg

    D

    反余切

    arcsec

    E

    反正割

    arccsc

    F

    反余割

    arctg

    C

    反余切

    asin

    A

    arcsin

    acos

    B

    arccos

    atan

    C

    反正切

    actg

    D

    反余切

    asec

    E

    反正割

    acsc

    F

    反余割

    fabs

    G

    绝对值

    exp

    H

    指数函数

    cos

    I

    余弦

    ctg

    J

    余弦

    tan

    K

    正切

    sec

    L

    正割

    csc

    M

    余割

    cth

    N

    双曲正割

    sin

    O

    正弦

    abs

    G

    绝对值

    tg

    K

    正切

    ln

    P

    自然对数

    sh

    Q

    双曲正弦

    th

    R

    双曲余弦

    ch

    S

    双曲余割

    log

    T

    对数

     

    3   可以识别常数e和圆周率pi  

       不区分大小写,也就是说你写成pi,PI,pI,Pi都是等效果的

     

    4 .可以识别省略的乘号 

    乘号在大多数情况下都可以省略.

     列如3*(3+4) 可以这样输入 33+4  

    3*sin(pi/4) 可以这样输入 3sin(pi/4);  

    (3+4)*(3+4) 可以这样输入(3+4)(3+4)  

     

    5.函数的输入可以数学上一样省略括号(以任意数为底数的对数函数除外)  

    列如sin(pi) 可以这样输入 sinpi  

     

    6.小于1的小数可以省略小数点前的0  

    列如0.123 可以这样输入 .123  

    0.2 * 0.3 可以这样输入 .2*.3

    7.对数函数的输入格式log(底数,真数),ln真数

       如:log(e,3.3)

        lne

    8.可以识别正负号(不是加减)  

     如:-3+4  

       +4+(-4+4)  

     

    9.能够识别几乎所有的合法的运算符号的函数的组合  

    如:sin cos tan sin(pi/4)  

    log(e,cos(pi/4))  

    log(lne^2,log(10,log(e,e^100)))

    10.支持用户自定义变量(新功能)

    注意

        为了便于和函数相互区别,用户自己定义的变量都要求以下划线‘_开头。

        变量只能够包含下划线和字母,不能够有数字和其它字符.

        变量的长度至少是2,以免变量名称重复。

        变量名称不能够相互包含:例如你已经定义了一个叫_varible的变量,你就不能够再定义一个变量叫_var

     

    使用举例

    求方程ax2+bx+c=0的解

    利用公式

    X1=(-b+(b^2-4ac)^(1/2))/(2a)

    首先定义变量

    _a,_b,_c(因为变量必须以_开头)

    然后可以这样

    (-_b+(_b^2-4_a_c)^(1/2))/(2_a)

     

    OK! 功能很强大,也很简单吧。


    11.括号

    括号包括大中小3种,它们的功能一样,可以混用,根据个人不同的习惯自己选用,但是在使用的时候请注意要配对使用。

    括号内部必须要有表达式,像下面这样的式子是不对的

    (1+2)*((+3+4)()(6))

        括号可以多重嵌套,例如下面的式子是合法的

    (1+2)((((((((((((1))))))))))))

        在以下情况你需要使用括号

    a.改变运算顺序

    b.使用函数时候

    c.当你不确定各种运算符号的优先级的时候,可以使用括号改变优先级

    例如2*30%4,当你不确定计算机是先计算那一个的时候,可以加上括号

    (2*30)%4,或者是这样2*(30%4)

        在以下情况你可以省略括号

    a.函数的表达式很简单

    如ln(1)可以写成ln1, sin(pi)可以写成sinpi

     

    PS:当发布完了这个程序了以后我才发现有些不妥当,因此再补充一些,这些都不是什么新的东西,都可以在以前的程序的说明中能够找到,但是这里再次说明一下我觉得还是有必要的。
    按照重要与否的顺序来,有的部分可能你不是很感兴趣。
     
    该软件现在存在的问题
     
    1.对于错误的表达式的处理还需要更一步改进
    对于表达式的语法识别上还没有发现什么问题,但是在处理具体表达式的内容的时候,程序还不够健全。没有对所有的错误都做处理。这并不难,但是麻烦了点。
    例如:
    arcsin100
    没有任何语法错误,但是对于函数arcsin的自变量的值应该在[-1,1].这样的情况我并没有全部都去仔细的去判断。这不是太大的问题,知道有这个问题就可以了。
     
        2.提示信息有时候还不够准确
    如果你输入 *9   (这当然是不合法的输入)
    系统虽然能够检查出语法错误,但是提示信息不正确.
    提示信息: 左括号后(不能有运算符号
    显然你没有输入左括号,出现该提示的原因是:为了能够正确处理诸如+3+4,-3*5的表达式,程序对于你输入的表达式都默认地加上了左括号.
      
    3.个别表达式不能够正确识别
    尽管已经做了很多的努力,但是还是不能识别形如下列的表达式
    sin-3
    系统认为这是错误输入,可以改成sin(-3)输入