Я хочу создать метод, который позволит мне сначала преобразовывать дроби в двойные, но также заниматься возведением в степень. Например, если я ввел 2 ^ (8/4), я хочу, чтобы он вывел 4. У меня уже есть методы, которые имеют дело с преобразованием дробей в удвоения и возведением в степень по отдельности, но я не могу понять, как я комбинирую эти методы для заставить программу работать так, как я хочу.
Это метод возведения в степень:
public static double Coefficient()
{
while (true)
{
string input = Console.ReadLine();
string[] items = input.Split('^');
if (items.Length == 1)
{
if (double.TryParse(items[0], out double A))
return A;
}
else if (items.Length == 2)
{
if (double.TryParse(items[0], out double A) &&
double.TryParse(items[1], out double B))
return Math.Pow(A, B);
}
Console.WriteLine("\nPlease follow the specified input form.");
}
}
Это метод, который преобразует дробь в двойное число:
public static double FractionToDouble(string fraction)
{
double result;
if (double.TryParse(fraction, out result))
{
return result;
}
string[] split = fraction.Split(new char[] { ' ', '/' });
if (split.Length == 2 || split.Length == 3)
{
int a, b;
if (int.TryParse(split[0], out a) && int.TryParse(split[1], out b))
{
if (split.Length == 2)
{
return (double)a / b;
}
int c;
if (int.TryParse(split[2], out c))
{
return a + (double)b / c;
}
}
}
throw new FormatException("\nNot a valid fraction.");
}