2016-1-18 表达式求值小结

来源:互联网 发布:网络主播传媒公司 编辑:程序博客网 时间:2024/05/17 01:20

1.做任何编程之前请不要急,先想好要怎样去做,再去做思路会非常清晰,编程也比较流畅,分析好模型,方法,谨记!!!

   比如:表达式究竟是如何进栈求值,各运算符前后优先级,自己多来手动求值几次体会,得出求值方法,而不是瞎想各种情况,混乱无误。

2.请自己先分析清楚,不要完全学书,才能真正有所收获,慢慢积累技术和思想方法!否则,只是浪费时间而已!

3.查错能力必须要狠狠提高,最好是不犯错!


查找错误,由大处至小处,逐步细化

   a .  是否执行

   b.  执行是否符合预期

   c.  找原因

记住:大多数时候可能不是程序方法错误,而是参数,漏写,等!

    while(!StackEmpty(Opert))
    {
        if(IsOperd(ch))
        {
            Push(Operd,ch);
         //   printf("if\n");
            ch=getchar();//此处被遗忘,第一次,找最简单例子手动执行分析,可得知!
        }
        else
        {
            GetTop(Opert,t1);
            switch(Precede(t1,ch))   // switch(Precede(GetTop(Opert,t1),,ch))   //最笨但最简单最实用的查错方法即是手动细致的执行程序就会发现错误!所以写的慢但是正确率高可能用更少时间!
            {
            case '<':
             //   printf("<\n");
                Push(Opert,ch);
                ch=getchar();
                break;
            case '>':
             //   printf(">\n");
                Pop(Operd,d1);
                Pop(Operd,d2);
                Pop(Opert,t1);
                Push(Operd,Execute(d1,d2,t1));
                break;
            case '=':
               // printf("=\n");
                Pop(Opert,t1);
                ch=getchar();
                break;
            }
          //  printf("else\n");
        }
      //printf("一次\n");
    }

0 0