Как мне объединить метод, который преобразует дробь в двойное, и метод, который возводит число в степень другого числа? - PullRequest
1 голос
/ 07 мая 2019

Я хочу создать метод, который позволит мне сначала преобразовывать дроби в двойные, но также заниматься возведением в степень. Например, если я ввел 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.");
}
...