public void Calculate() { for (var i = 0; i < FileSplit.Count(); i++) { var splitElementsOperation = FileSplit[i].Split(',', ' '); switch (splitElementsOperation[0]) { case "var": dicElements.Add(splitElementsOperation[1], double.Parse(splitElementsOperation[2])); break; case "add": dicElements[splitElementsOperation[1]] = MakeOperation(splitElementsOperation, "add"); break; case "div": dicElements[splitElementsOperation[1]] = MakeOperation(splitElementsOperation, "div"); break; case "mul": dicElements[splitElementsOperation[1]] = MakeOperation(splitElementsOperation, "mul"); break; case "sub": dicElements[splitElementsOperation[1]] = MakeOperation(splitElementsOperation, "sub"); break; case "mov": dicElements[splitElementsOperation[1]] = MakeOperation(splitElementsOperation, "mov"); break; } } }
public string AddInFraction() { for (int i = 0; i < FileSplit.Count() - 1; i++) { var splitedFirstPartFile = FileSplit[i].Split(' ', '\\').Where(s => s != String.Empty).ToArray <string>(); var splitedNextPartFile = FileSplit[i + 1].Split(' ', '\\').Where(s => s != String.Empty).ToArray <string>(); double firstDenumerator = double.Parse(splitedFirstPartFile[2]); double adv = firstDenumerator; double nextDenumerator = double.Parse(splitedNextPartFile[2]); if (splitedFirstPartFile[2] != splitedNextPartFile[2]) { splitedFirstPartFile[1] = (double.Parse(splitedFirstPartFile[1]) * nextDenumerator).ToString(); splitedNextPartFile[1] = (double.Parse(splitedNextPartFile[1]) * firstDenumerator).ToString(); firstDenumerator *= nextDenumerator; nextDenumerator *= adv; } var operation = FoundOperation(null); switch (operation) { case "+": if (first == true) { Main += double.Parse(splitedFirstPartFile[0]) + double.Parse(splitedNextPartFile[0]); Numerator += double.Parse(splitedFirstPartFile[1]) + double.Parse(splitedNextPartFile[1]); Denumerator = nextDenumerator; first = false; } else { Main += double.Parse(splitedNextPartFile[0]); Numerator += double.Parse(splitedNextPartFile[1]); Denumerator = nextDenumerator; } break; case "-": if (first == true) { Main += double.Parse(splitedFirstPartFile[0]) - double.Parse(splitedNextPartFile[0]); Numerator += double.Parse(splitedFirstPartFile[1]) - double.Parse(splitedNextPartFile[1]); Denumerator = nextDenumerator; first = false; } else { Main -= double.Parse(splitedNextPartFile[0]); Numerator -= double.Parse(splitedNextPartFile[1]); Denumerator = nextDenumerator; } break; case "*": if (first == true) { Main += double.Parse(splitedFirstPartFile[0]) * double.Parse(splitedNextPartFile[0]); Numerator += double.Parse(splitedFirstPartFile[1]) * double.Parse(splitedNextPartFile[1]); Denumerator = nextDenumerator; first = false; } else { Main *= double.Parse(splitedNextPartFile[0]); Numerator *= double.Parse(splitedNextPartFile[1]); Denumerator = nextDenumerator; } break; case "/": if (first == true) { Main += double.Parse(splitedFirstPartFile[0]) / double.Parse(splitedNextPartFile[0]); Numerator += double.Parse(splitedFirstPartFile[1]) / double.Parse(splitedNextPartFile[1]); Denumerator = nextDenumerator; first = false; } else { Main /= double.Parse(splitedNextPartFile[0]); Numerator /= double.Parse(splitedNextPartFile[1]); Denumerator = nextDenumerator; } break; default: break; } } return("Ответ без перевода: " + Main.ToString() + ' ' + Numerator.ToString() + '/' + Denumerator.ToString()); }