private void bEqual_Click(object sender, EventArgs e) { /*Först vill jag extrahera tal från strängen. Jag skappade en float vecktor som ska innehålla numrar som vi har mattat i vår mini räknare*/ input = tbscreen.Text; string[] numbersArray = input.Split('+', '-', '*', '/'); // en ny vecktor av typ sträng med tal skapades efter jag delade input när det finns öperatörer +,-,*,/ float[] SplitedNumbers = new float[numbersArray.Length]; //konvertarar alla tal av typ sträng i ett ny vektor SplitedNumbers av typ float for (int i = 0; i < numbersArray.Length; i++) { SplitedNumbers[i] = float.Parse(numbersArray[i]); } /*Nästa steg är att extrahera öperatörer + - * / från input sträng och lägga dem i ett ny lista oper av typ char. * Detta gör jag genom itterera genom input vektor. Om en element i input innerhåller en av öperatör tecken då lägga man öperatörer i lista oper*/ string operatorTecken = "+-*/"; List <char> oper = new List <char>(); for (int j = 0; j < input.Length; j++) { if (operatorTecken.Contains(input[j])) { oper.Add(input[j]); } } /* Här börjar jag att räkna med hjälp av klassen Calculator. Först startat jag ackumulators värde som är den första nummer i vecktor SplittedNumbers, * och instansiera MyCalc objekt. Därefter itererar jag genom vektor av numrar (SplitedNumbers) med position 1 och genom öperatörer (oper). * Eftersom vektor av tal är alltid store än vecktor av öperatörer med 1. Därför när man har tal på position 1 det motsvarar tecken på position 0 (i-1). * På detta sätt kan jag se vilket tal som motsvarar vilken operatör. */ n = SplitedNumbers[0]; MyCalc = new Calculator(n); for (int i = 1; i < SplitedNumbers.Length; i++) //vi börjar med i=1, så vi se { tecken = oper[i - 1]; n = SplitedNumbers[i]; if (tecken == '+') //Om öperatör är + då ska man summera den nummer som motsvarar position av + { MyCalc.Sum(n); } if (tecken == '-') { MyCalc.Sub(n); } if (tecken == '*') { MyCalc.Mul(n); } if (tecken == '/') { MyCalc.Div(n); } result = MyCalc.execute(); } tbscreen.Text = "= " + result.ToString(); }
static void Main(string[] args) { double input1 = 0; double input2 = 0; double input3 = 0; bool inputCheck = false; int userInput = 0; string userInputConvert = ""; Calculator Calculatron = new Calculator(); while (inputCheck == false) { Console.WriteLine("Welcome to Calculatron!"); Console.WriteLine("1) Add two numbers"); Console.WriteLine("2) Subtract two numbers"); Console.WriteLine("3) Multiply two numbers"); Console.WriteLine("4) Divide two numbers"); Console.WriteLine("5) Square one number"); Console.WriteLine("6) Square root of a number"); Console.WriteLine("7) Advanced: Write a simple equation (ex. 2 + 2)"); Console.WriteLine("0) Exit"); Console.WriteLine(""); Console.Write("Choose an option: "); userInput = Int32.Parse(Console.ReadLine()); if (userInput == 0) { Console.WriteLine(); Console.WriteLine("Thanks for using Calculatron!"); inputCheck = true; } else if (userInput == 1) { try { Console.Write("Please enter the numbers seperated by a space: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[1]); } catch (Exception ex) { Console.WriteLine("Incorrect input: Try again."); Console.WriteLine(""); Console.Write("Please enter the numbers seperated by a space: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[1]); } double inputSum = Calculatron.Sum(input1, input2); Console.WriteLine($"The result of adding {input1} and {input2} is {inputSum}"); Console.WriteLine(""); System.Threading.Thread.Sleep(2000); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } else if (userInput == 2) { try { Console.Write("Please enter the numbers seperated by a space: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[1]); } catch (Exception ex) { Console.WriteLine("Incorrect input: Try again."); Console.WriteLine(""); Console.Write("Please enter the numbers seperated by a space: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[1]); } double inputSub = Calculatron.Sub(input1, input2); Console.WriteLine($"The result of subtraction {input1} and {input2} is {inputSub}"); Console.WriteLine(""); System.Threading.Thread.Sleep(2000); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } else if (userInput == 3) { try { Console.Write("Please enter the numbers seperated by a space: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[1]); } catch (Exception ex) { Console.WriteLine("Incorrect input: Try again."); Console.WriteLine(""); Console.Write("Please enter the numbers seperated by a space: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[1]); } double inputMult = Calculatron.Mult(input1, input2); Console.WriteLine($"The result of multiplying {input1} and {input2} is {inputMult}"); Console.WriteLine(""); System.Threading.Thread.Sleep(2000); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } else if (userInput == 4) { try { Console.Write("Please enter the numbers seperated by a space: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[1]); } catch (Exception ex) { Console.WriteLine("Incorrect input: Try again."); Console.WriteLine(""); Console.Write("Please enter the numbers seperated by a space: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[1]); } double inputDiv = Calculatron.Div(input1, input2); Console.WriteLine($"The result of dividing {input1} and {input2} is {inputDiv}"); Console.WriteLine(""); System.Threading.Thread.Sleep(2000); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } else if (userInput == 5) { try { Console.Write("Please enter the number to be squared: "); userInputConvert = Console.ReadLine(); input3 = double.Parse(userInputConvert); } catch (Exception ex) { Console.WriteLine("Incorrect input: Try again."); Console.WriteLine(""); Console.Write("Please enter the number to be squared: "); userInputConvert = Console.ReadLine(); input3 = double.Parse(userInputConvert); } double inputSquare = Calculatron.Square(input3); Console.WriteLine($"The square of {input3} is {inputSquare}"); Console.WriteLine(""); System.Threading.Thread.Sleep(2000); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } else if (userInput == 6) { try { Console.Write("Please enter the number to get the square root of: "); userInputConvert = Console.ReadLine(); input3 = double.Parse(userInputConvert); } catch (Exception ex) { Console.WriteLine("Incorrect input: Try again."); Console.WriteLine(""); Console.Write("Please enter the number to get the square root of: "); userInputConvert = Console.ReadLine(); input3 = double.Parse(userInputConvert); } double inputSqr = Calculatron.SquareRoot(input3); Console.WriteLine($"The square root of {input3} is {inputSqr}"); Console.WriteLine(""); System.Threading.Thread.Sleep(2000); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } else if (userInput == 7) { string op = ""; try { Console.Write("Please enter your equation with spaces between each number and the operators: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[2]); op = userInputConvert.Split(" ")[1]; } catch (Exception ex) { Console.WriteLine("Incorrect input: Try again."); Console.WriteLine(""); Console.Write("Please enter your equation with spaces between each number and the operators: "); userInputConvert = Console.ReadLine(); input1 = double.Parse(userInputConvert.Split(" ")[0]); input2 = double.Parse(userInputConvert.Split(" ")[2]); op = userInputConvert.Split(" ")[1]; } double answer = 0; if (op == "+") { answer = Calculatron.Sum(input1, input2); } else if (op == "-") { answer = Calculatron.Sub(input1, input2); } else if (op == "*") { answer = Calculatron.Mult(input1, input2); } else if (op == "/") { answer = Calculatron.Div(input1, input2); } Console.WriteLine($"The answer to your question is {answer}"); Console.WriteLine(""); System.Threading.Thread.Sleep(2000); Console.WriteLine("Press any key to continue..."); Console.ReadLine(); } else { Console.WriteLine("Incorrect Input: Try again!"); System.Threading.Thread.Sleep(3000); } } }