コード例 #1
0
ファイル: Brain.cs プロジェクト: Beisenbek/PT2017_W10G1
 public void AccumulateDigits(char item, bool isInput)
 {
     if (isInput)
     {
         result = result + item;
         invoker.Invoke(result);
         currentState = CalcStates.AccumulateDigits;
     }
     else
     {
         if (digits.Contains(item))
         {
             AccumulateDigits(item, true);
         }
         else if (operations.Contains(item))
         {
             ComputePending(item, true);
         }
         else if (separators.Contains(item))
         {
             AccumulateDigitsWithDecimal(item, true);
         }
         else if (equals.Contains(item))
         {
             Compute(item, true);
         }
         else if (operations.Contains(item))
         {
             ComputePending(item, true);
         }
     }
 }
コード例 #2
0
ファイル: Brain.cs プロジェクト: Beisenbek/PT2017_W10G1
 public void Zero(char item, bool isInput)
 {
     if (isInput)
     {
         numbers = "0";
         result  = "0";
         op      = '.';
         invoker.Invoke(numbers);
         currentState = CalcStates.Zero;
     }
     else
     {
         if (nonzerodigits.Contains(item))
         {
             AccumulateDigits(item, true);
         }
         else if (separators.Contains(item))
         {
             AccumulateDigitsWithDecimal(item, true);
         }
         else if (zero.Contains(item))
         {
             Zero(item, true);
         }
     }
 }
コード例 #3
0
ファイル: Brain.cs プロジェクト: Beisenbek/PT2017_W10G1
 public void Compute(char item, bool isInput)
 {
     if (isInput)
     {
         currentState = CalcStates.Compute;
         double a1 = double.Parse(numbers);
         double a2 = double.Parse(result);
         double a3 = 0;
         if (op == '+')
         {
             a3 = a1 + a2;
         }
         else if (op == '-')
         {
             a3 = a1 - a2;
         }
         result = a3.ToString();
         invoker.Invoke(result);
     }
     else
     {
         if (nonzerodigits.Contains(item))
         {
             AccumulateDigits(item, true);
         }
         else if (zero.Contains(item))
         {
             Zero(item, true);
         }
         else if (operations.Contains(item))
         {
             ComputePending(item, true);
         }
     }
 }
コード例 #4
0
ファイル: Brain.cs プロジェクト: Beisenbek/PT2017_W10G1
 public void ComputePending(char item, bool isInput)
 {
     if (isInput)
     {
         currentState = CalcStates.ComputePending;
         op           = item;
         if (numbers != "")
         {
             double a1 = double.Parse(numbers);
             double a2 = double.Parse(result);
             double a3 = 0;
             if (op == '+')
             {
                 a3 = a1 + a2;
             }
             else if (op == '-')
             {
                 a3 = a1 - a2;
             }
             result = a3.ToString();
         }
         numbers = result;
         invoker.Invoke(result);
         result = "";
     }
     else
     {
         if (digits.Contains(item))
         {
             AccumulateDigits(item, true);
         }
     }
 }
コード例 #5
0
ファイル: Calc.cs プロジェクト: MirasK/Gunship
 public Calc()
 {
     currentState = CalcStates.FirstNumber;
     firstNumber  = 0;
     secondNumber = 0;
     resultNumber = 0;
 }
コード例 #6
0
 public Calc()
 {
     currentstate = CalcStates.Firstnumber;
     firstnumber  = 0;
     secondnumber = 0;
     resultnumber = 0;
     lastnumber   = 0;
     a            = 0;
 }