Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace CalcExpression
- {
- class CalcExpression
- {
- public static List<string> rawExpression = new List<string>();
- public static void ReadExpression()
- {
- string input = Console.ReadLine();
- string tmp = null;
- for (int i = 0; i < input.Length; i++)
- {
- if(input[i]=='.' || ('0'<=input[i] && input[i]<='9'))
- {
- tmp+=input[i];
- }
- else
- {
- if (tmp != null)
- {
- rawExpression.Insert(rawExpression.Count, tmp);
- tmp = null;
- }
- if (input[i] == '(' || input[i] == ')')
- rawExpression.Insert(rawExpression.Count, input.Substring(i, 1));
- else
- if (input[i] == 'p')
- rawExpression.Insert(rawExpression.Count, input.Substring(i, 3));
- else
- if (input[i] == 's')
- rawExpression.Insert(rawExpression.Count, input.Substring(i, 4));
- else
- if (input[i] == 'l')
- rawExpression.Insert(rawExpression.Count, input.Substring(i, 2));
- else
- if (input[i] == '+' || input[i] == '-' || input[i] == '*' || input[i] == '/')
- rawExpression.Insert(rawExpression.Count, input.Substring(i, 1));
- }
- }
- if (tmp != null)
- rawExpression.Insert(rawExpression.Count, tmp);
- }
- public static double CalcPow(double b, double power)
- {
- return Math.Pow(b, power);
- }
- public static double CalcSqrt(double num)
- {
- return Math.Sqrt(num);
- }
- public static double CalcLn(double num)
- {
- return Math.Log(num);
- }
- public static Queue<double> q = new Queue<double>();
- public static Stack<double> st = new Stack<double>();
- public static double CalcExp(List<string> str)
- {
- for (int i = 0; i < str.Count; i++)
- {
- switch (str[i])
- {
- case "sqrt":
- q.Enqueue(CalcSqrt(double.Parse(str[i+2])));
- i+=3;
- break;
- case "pow":
- q.Enqueue(CalcPow(double.Parse(str[i + 2]), double.Parse(str[i + 3])));
- i += 4;
- break;
- case "ln":
- q.Enqueue(CalcLn(double.Parse(str[i + 2])));
- i += 3;
- break;
- case "(":
- int lenght = 0;
- while (str[i + lenght] != ")")
- lenght++;
- break;
- }
- }
- return 0;
- }
- static void Main()
- {
- ReadExpression();
- for (int i = 0; i < rawExpression.Count; i++)
- {
- Console.WriteLine(rawExpression[i]);
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment