免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1472 | 回复: 3
打印 上一主题 下一主题

请教高手一个问题,关于关系运算符处理! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-21 21:14 |只看该作者 |倒序浏览
各位大侠:
    小弟想做一个关系运算符处理程序。
    条件是 1、关系运算条件存放在一个字符串里。
           2、可以进行大于,小于,等于,大于等于,小于等于,不等于判断
           3、分号是每一个判断条件的分隔符

    例:

  1.    char *str;     /*  存放关系运算符的字符串 */
  2.    sprintf(str,"1>;2?0:1;1<2?0:1;1==2?0:1;1>;=2?0:1;1<=2?0:1;1!=2?0:1;");

  3.       /* 经过程序处理后 结果显示为
  4.          1>;2?0:1     结果是:1
  5.          1<2?0:1     结果是:0
  6.          1==2?0:1   结果是:1
  7.          1>;=2?0:1   结果是:1
  8.          1<=2?0:1   结果是:0
  9.          1!=2?0:1    结果是:0  
  10.        */
复制代码


请高手给与指点,如果能提供代码,我将万分感谢!

论坛徽章:
0
2 [报告]
发表于 2003-02-21 21:25 |只看该作者

请教高手一个问题,关于关系运算符处理!

以前写MML语法分析程序时做过

以前的做法是
1
把语句按;分隔分开成独立句子

2
按?分开成两部分

3
取出判断符(合法字符是(>;,<,=,!)范围中)

4取出判断值
然后根据判断值返回结果

论坛徽章:
0
3 [报告]
发表于 2003-02-22 23:30 |只看该作者

请教高手一个问题,关于关系运算符处理!

既然有现成的,那就用现成的吧!不愿用可做个参考 orient c++类库
23.        csp程序解释执行器
24.        csp语句解释执行器

  1. #include <cline.h>;

  2. void TestCLine(char * run_line)
  3. {
  4. TLine line;
  5. TParaMgr mgr;
  6. int res;

  7.   line.SetParaMgr(&mgr);
  8.   line.Run_Line(run_line,&res);
  9.   printf("res of %s is %d\n",run_line,res);
  10. };

  11. int main(int argc,char * argv[])
  12. {
  13. TLine line;
  14. TParaMgr mgr;
  15. float x=100,y=200;

  16.   line.SetParaMgr(&mgr);
  17.   mgr.PushPara("x",x);
  18.   mgr.PushPara("y",200);
  19.   line.Run_Line("x=100*sin(2)+y");
  20.   line.Run_Line("x*100",&y);
  21.   mgr.GetParaValue("x",&x);
  22.   printf("now x is %f y is %f\n",x,y);

  23.   TestCLine("1<2");
  24.   TestCLine("1>;2");
  25.   TestCLine("1==2");
  26.   TestCLine("(1<=2)&&(2>;3)");
  27.   TestCLine("(1<=2)||(2>;3)");
  28.   getchar();
  29.   return 1;
  30. }

  31. /*
  32. 输出结果:
  33. now x is 290.929749 y is 29092.974609
  34. res of 1<2 is 1
  35. res of 1>;2 is 0
  36. res of 1==2 is 0
  37. res of (1<=2)&&(2>;3) is 0
  38. res of (1<=2)||(2>;3) is 1
  39. */
复制代码

论坛徽章:
0
4 [报告]
发表于 2003-02-23 22:08 |只看该作者

请教高手一个问题,关于关系运算符处理!

有没有ANSI C做的呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP