//Взять public TComplexNumber Take() { TComplexNumber res = number.Copy(); return(res); }
//Конструктор public TComplexMemory() { number = new TComplexNumber("0", "0", 10); state = 0; }
//Записать public void Write(TComplexNumber E) { number = E.Copy(); state = 1; }
//Копия числа public TComplexNumber Copy() { TComplexNumber res = new TComplexNumber(number.re, number.im, p); return(res); }
//Конструктор public TComplexProcessor() { Lop_Res = new TComplexNumber("0", "0", 10); Rop = new TComplexNumber("0", "0", 10); operation = 0; }
//Делить public TComplexNumber Div(TComplexNumber num) { TComplexNumber res = new TComplexNumber(number.re, number.im, p); res.number.re = ((Convert.ToDouble(number.re) * Convert.ToDouble(num.number.re) + Convert.ToDouble(number.im) * Convert.ToDouble(num.number.im)) / (Convert.ToDouble(num.number.re) * Convert.ToDouble(num.number.re) + Convert.ToDouble(num.number.im) * Convert.ToDouble(num.number.im))).ToString(); res.number.im = ((Convert.ToDouble(number.im) * Convert.ToDouble(num.number.re) - Convert.ToDouble(number.re) * Convert.ToDouble(num.number.im)) / (Convert.ToDouble(num.number.re) * Convert.ToDouble(num.number.re) + Convert.ToDouble(num.number.im) * Convert.ToDouble(num.number.im))).ToString(); return(res); }
//Сложить public TComplexNumber Summ(TComplexNumber num) { TComplexNumber res = new TComplexNumber(number.re, number.im, p); res.number.re = (Convert.ToDouble(number.re) + Convert.ToDouble(num.number.re)).ToString(); res.number.im = (Convert.ToDouble(number.im) + Convert.ToDouble(num.number.im)).ToString(); return(res); }
//Обратить public TComplexNumber Pay() { TComplexNumber res = new TComplexNumber(number.re, number.im, p); res.number.re = ((Convert.ToDouble(number.re) / (Convert.ToDouble(number.re) * Convert.ToDouble(number.re) + Convert.ToDouble(number.im) * Convert.ToDouble(number.im)))).ToString(); res.number.im = ((Convert.ToDouble(number.im) * (-1)) / (Convert.ToDouble(number.re) * Convert.ToDouble(number.re) + Convert.ToDouble(number.im) * Convert.ToDouble(number.im))).ToString(); return(res); }
//Добавить public void Add(TComplexNumber E) { if (state == 1) { number = number.Summ(E); } else { Write(E); } }
//Выполнить операцию 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 31: Lop_Res = Lop_Res.Sqr(); break; case 32: Rop = Rop.Pay(); break; case 33: Rop = Rop.Sqr(); break; } }
public string DoCommandComplex(int n) { string str = ""; TComplexNumber buf = new TComplexNumber("0", "0", 10); if (n >= 0 && n <= 15) { str = Ceditor.AddSymbol(n); switch (Ceditor.State) { case 3: Ceditor.State = 0; break; case 2: Ceditor.State = 1; break; } } switch (n) { case 16: str = Ceditor.AddDot(TypeCalculator); break; case 17: str = Ceditor.AddAndChangeSign(); break; case 18: str = Ceditor.Clear(); Ceditor.State = 0; processor.ResetOper(); break; case 20: str = "0+0i"; Ceditor.Clear(); Ceditor.State = 0; break; /*Работа с памятью*/ case 21: str = Ceditor.number; Cmemory.Clear(); Ceditor.Clear(); /*Очистить память*/ break; case 22: str = TakeOutTheMemory(); /*Копировать из памяти*/ break; case 23: str = Ceditor.number; buf.NumberString = str; buf.PInt = processor.LeftOp.PInt; Cmemory.Write(buf); /*Сохранить в память*/ break; case 24: str = Ceditor.number; buf.NumberString = str; buf.PInt = processor.LeftOp.PInt; Cmemory.Add(buf); /*Добавить к содержимому памяти*/ break; case 28: if (processor.Operation != n - 24 && Ceditor.State == 1) { str = ExecOperation(Ceditor.number); } str = CPreparation(Ceditor.number, n); break; /*Выполнение функций*/ case 30: case 31: str = CExecFunc(Ceditor.number, n); break; case 32: str = CExecFunc(Ceditor.number, n); break; /*Выполнение операций*/ case 40: str = CExecOperation(Ceditor.number); break; case 99: str = Ceditor.Re(); break; case 98: str = Ceditor.Im(); break; } if (n == 19) { str = Ceditor.RemoveLastSymbol(); } return(str); }