//Взять public TNumber Take() { TNumber res = number.Copy(); return(res); }
//Записать public void Write(TNumber E) { number = E.Copy(); state = 1; }
//Конструктор public TMemory() { number = new TNumber("0", 10); state = 0; }
//Копия числа public TNumber Copy() { TNumber res = new TNumber(number, p); return(res); }
//Конструктор public TProcessor() { Lop_Res = new TNumber("0", 10); Rop = new TNumber("0", 10); operation = 0; }
//Добавить public void Add(TNumber E) { if (state == 1) { number = number.Summ(E); } else { Write(E); } }
//Вычесть public TNumber Sub(TNumber num) { TNumber res = new TNumber(number, p); res.number = conv.P10_To_P((conv.P_To_10(number) - conv.P_To_10(num.number))).ToString(); res.number = res.number.Replace(',', '.'); res.number = deleteZero(res.number); return(res); }
//Квадрат public TNumber Sqr() { TNumber res = new TNumber(number, p); res.number = conv.P10_To_P(Math.Pow(conv.P_To_10(number), 2)).ToString(); res.number = res.number.Replace(',', '.'); res.number = deleteZero(res.number); return(res); }
//Выполнить операцию public void ExeuteOperation() { switch (operation) { case 1: Lop_Res = Lop_Res.Summ(Rop); break; case 2: Lop_Res = Lop_Res.Sub(Rop); break; case 3: Lop_Res = Lop_Res.Mult(Rop); break; case 4: Lop_Res = Lop_Res.Div(Rop); break; default: break; } }
//вычислить функцию public void CalculateFunction(int n) { switch (n) { // Обратная функция case 30: Lop_Res = Lop_Res.Pay(); break; case 32: Rop = Rop.Pay(); break; // Функция корень case 31: Lop_Res = Lop_Res.Sqr(); break; case 33: Rop = Rop.Sqr(); break; } }
/*Выполнить команду*/ public string DoCommand(int n) { string str = ""; TNumber buf = new TNumber("0", 10); if (n >= 0 && n <= 15) { str = editor.AddSymbol(n); switch (editor.State) { case 3: editor.State = 0; break; case 2: editor.State = 1; break; } } switch (n) { case 16: str = editor.AddDot(TypeCalculator); break; case 17: str = editor.AddAndChangeSign(); break; case 18: str = editor.Clear(); editor.State = 0; processor.ResetOper(); break; case 20: str = "0"; editor.Clear(); editor.State = 0; break; /*Работа с памятью*/ case 21: str = editor.number; memory.Clear(); editor.Clear(); /*Очистить память*/ break; case 22: str = TakeOutTheMemory(); /*Копировать из памяти*/ break; case 23: str = editor.number; buf.number = str; buf.PInt = processor.LeftOp.PInt; memory.Write(buf); /*Сохранить в память*/ break; case 24: str = editor.number; buf.number = str; buf.PInt = processor.LeftOp.PInt; memory.Add(buf); /*Добавить к содержимому памяти*/ break; case 28: if (processor.Operation != n - 24 && editor.State == 1) { str = ExecOperation(editor.number); } str = Preparation(editor.number, n); break; /*Выполнение функций*/ case 31: str = ExecFunc(editor.number, n); break; case 32: str = ExecFunc(editor.number, n); break; /*Выполнение операций*/ case 40: str = ExecOperation(editor.number); break; } return(str); }