Example #1
0
 public string ChangeSystemBase(int _base)
 {
     number            = converter.ConvertBaseTo10(number.systemBase, editor.number);
     number.systemBase = _base;
     editor.number     = converter.Convert10ToBase(number.systemBase, number.GetNumberString());
     return(editor.number);
 }
Example #2
0
 public TProc()
 {
     Operation = TOprtn.None;
     Function  = TFunc.None;
     Lop_Res   = new TPNumber();
     Rop       = new TPNumber();
 }
Example #3
0
        public string ExecuteMemoryCommand(MemoryCommand cmd)
        {
            number = converter.ConvertBaseTo10(number.systemBase, editor.number);
            switch (cmd)
            {
            case MemoryCommand.add:
                memory.Add(number);
                break;

            case MemoryCommand.sub:
                memory.Sub(number);
                break;

            case MemoryCommand.clear:
                memory.Clear(number);
                break;

            case MemoryCommand.read:
                number = memory.ReadNumber(number);
                break;

            case MemoryCommand.write:
                memory.Write(number);
                break;

            default:
                break;
            }
            editor.number = converter.Convert10ToBase(number.systemBase, number.GetNumberString());
            return(editor.number);
        }
Example #4
0
 public TPNumber Divide(TPNumber d)
 {
     if (d.number == 0)
     {
         return(null);
     }
     return(new TPNumber(number / d.number, systemBase, accuracy));
 }
Example #5
0
 public TPNumber Invert(TPNumber d)
 {
     if (number == 0)
     {
         return(null);
     }
     return(new TPNumber(1 / number, systemBase, accuracy));
 }
Example #6
0
 void SecondOperand()
 {
     if (oneRepeat)
     {
         number = converter.ConvertBaseTo10(number.systemBase, editor.number);
     }
     processor.WriteRightOperand(number);
     processor.ExecuteOperation();
     editor.number = converter.Convert10ToBase(number.systemBase, processor.ReadLeftOperand().number.ToString());
     setState(SecondOperand);
 }
Example #7
0
        public string GetResult()
        {
            if (oneRepeat)
            {
                number    = converter.ConvertBaseTo10(number.systemBase, editor.number);
                oneRepeat = false;
            }

            update();
            setState(SecondOperand);
            return(editor.number);
        }
Example #8
0
        void ExecuteFunction(TProc.TFunc func)
        {
            number = converter.ConvertBaseTo10(number.systemBase, editor.number);
            processor.WriteRightOperand(number);

            processor.WriteFunction(func);
            processor.ExecuteFunction();
            if (activeState == FirstOperand)
            {
                processor.WriteLeftOperand(processor.ReadRightOperand());
                setState(SecondOperand);
            }

            editor.number = converter.Convert10ToBase(number.systemBase, processor.ReadRightOperand().number.ToString());
        }
Example #9
0
        public void ExecuteOperation()
        {
            switch (Operation)
            {
            case TOprtn.Add:
                Lop_Res = Lop_Res.Add(Rop);
                break;

            case TOprtn.Sub:
                Lop_Res = Lop_Res.Subtract(Rop);
                break;

            case TOprtn.Mul:
                Lop_Res = Lop_Res.Multiply(Rop);
                break;

            case TOprtn.Dvd:
                Lop_Res = Lop_Res.Divide(Rop);
                break;

            default:
                break;
            }
        }
Example #10
0
 public TPNumber Add(TPNumber d)
 {
     return(new TPNumber(number + d.number, systemBase, accuracy));
 }
Example #11
0
 void FirstOperand()
 {
     number = converter.ConvertBaseTo10(number.systemBase, editor.number);
     processor.WriteLeftOperand(number);
     setState(SecondOperand);
 }
Example #12
0
        public TPNumber ConvertBaseTo10(int p1, string strnum)
        {
            int      mod, k = 0, flag_sym = 0, check_num = 0;
            TPNumber numres = new TPNumber(0, p1);

            if (strnum == "0")
            {
                return(numres);
            }
            double num = 0;

            if (p1 == 10)
            {
                IFormatProvider formatter = new NumberFormatInfo {
                    NumberDecimalSeparator = "."
                };
                numres.number = double.Parse(strnum, formatter);
                return(numres);
            }
            int i = 0, count = 0;

            if (strnum[0] == '-')
            {
                flag_sym = 1;
                strnum   = strnum.Remove(0, 1);
            }
            strnum = strnum.Replace(',', '.');

            while (i < strnum.Length)
            {
                if (strnum[i] == '.')
                {
                    count = strnum.Length - i - 1;

                    break;
                }
                i++;
            }

            k = -count;

            check_num = checkNumBase(p1, strnum);

            if (strnum[0] == '0' && strnum[1] != '.')
            {
                check_num = 0;
            }


            if (check_num == 1)
            {
                for (int j = strnum.Length - 1; j >= 0; j--)
                {
                    if (strnum[j] >= '0' && strnum[j] <= '9')
                    {
                        num            = strnum[j] - '0';
                        numres.number += num * Math.Pow(p1, k);
                        k++;
                    }
                    else
                    if (strnum[j] >= 'A' && strnum[j] <= 'F')
                    {
                        num            = strnum[j] - 55;
                        numres.number += num * Math.Pow(p1, k);
                        k++;
                    }
                }

                if (flag_sym == 1)
                {
                    numres.number *= -1;
                }
                return(numres);
            }
            else
            {
                return(numres.Reset());
            }
        }
Example #13
0
 public TPNumber Square(TPNumber d)
 {
     return(new TPNumber(number * number, systemBase, accuracy));
 }
Example #14
0
 public TMemory()
 {
     FNumber = new TPNumber();
     FState  = MState._Off;
 }
Example #15
0
 public void WriteRightOperand(TPNumber Operand)
 {
     Rop = Operand.Copy();
 }
Example #16
0
 public TPNumber Subtract(TPNumber d)
 {
     return(new TPNumber(number - d.number, systemBase, accuracy));
 }
Example #17
0
 public void Write(TPNumber E)
 {
     FNumber = E.Copy();
     FState  = MState._On;
 }
Example #18
0
 public TPNumber ReadNumber(TPNumber E)
 {
     FNumber.systemBase = E.systemBase;
     return(FNumber.Copy());
 }
Example #19
0
 public void Clear(TPNumber E)
 {
     FNumber.Reset();
     FNumber.systemBase = E.systemBase;
     FState             = MState._Off;
 }
Example #20
0
 public void Sub(TPNumber E)
 {
     FNumber.systemBase = E.systemBase;
     FNumber            = FNumber.Subtract(E);
 }
Example #21
0
 public void Add(TPNumber E)
 {
     FNumber.systemBase = E.systemBase;
     FNumber            = FNumber.Add(E);
 }
Example #22
0
 public TPNumber Multiply(TPNumber d)
 {
     return(new TPNumber(number * d.number, systemBase, accuracy));
 }
Example #23
0
 public void WriteLeftOperand(TPNumber Operand)
 {
     Lop_Res = Operand.Copy();
 }