Пример #1
0
        private void CalcOperacja(EOperacje op)
        {
            switch (op)
            {
            case EOperacje.Sum:
                Display = (y + x).ToString();
                break;

            case EOperacje.Sub:
                Display = (y - x).ToString();
                break;

            case EOperacje.Prod:
                Display = (y * x).ToString();
                break;

            case EOperacje.Div:
                Display = (y / x).ToString();
                break;
            }
            ostatnia_operacja = EOperacje.None;
        }
Пример #2
0
        public KalulatorViewModel()
        {
            clear     = true;
            Display   = "0";
            AddNumber = new CommandClick(p =>
            {
                if (clear && p.ToString() != ",")
                {
                    Display = p.ToString();
                }
                else
                {
                    Display += p;
                }
                clear = false;
            });

            CalcOp1 = new CommandClick(p =>
            {
                EOperacje op = Encode(p);
                switch (op)
                {
                case EOperacje.ClearE:
                    if (y > 0)
                    {
                        Display = y.ToString();
                        x       = 0;
                    }

                    else
                    {
                        Display = "0";
                        clear   = true;
                    }
                    break;

                case EOperacje.Clear1:
                    if (Display.Length > 1)
                    {
                        Display = Display.Remove(Display.Length - 1);
                    }
                    break;

                case EOperacje.Clear:
                    Display = "0";
                    clear   = true;
                    break;

                case EOperacje.Sqrt:
                    if (x > 0)
                    {
                        Display = Math.Sqrt(x).ToString();
                    }
                    clear = true;
                    break;

                case EOperacje.Pow2:
                    if (x != 0)
                    {
                        Display = Math.Pow(x, 2).ToString();
                    }
                    clear = true;
                    break;

                case EOperacje.Neg:
                    if (x != 0)
                    {
                        x = x * -1;
                    }
                    Display = x.ToString();
                    clear   = true;
                    break;

                case EOperacje.Opp:
                    if (x != 0)
                    {
                        x = 1 / x;
                    }
                    Display = x.ToString();
                    clear   = true;
                    break;

                case EOperacje.Proc:
                    if (x != 0)
                    {
                        x = x / 100;
                    }
                    Display = x.ToString();
                    clear   = true;
                    break;
                }
            });

            CalcOp2 = new CommandClick(p =>
            {
                CalcOperacja(ostatnia_operacja);
                ostatnia_operacja = Encode(p);
                y     = x; //zapamiętuje 1. argument
                clear = true;
            }
                                       );
        }