как работать с итерацией ? то есть пошагово показывать результаты цикла

введите сюда описание изображения Mоя каляка маляка при вводе цифры выводит надпись Чтобы остановить введите 0, а чтобы продолжить введите 1, ну еще переменная proda при печати не увеличивается, а все время показывает цифру 1

            bool Stop = true;
            double ch = 0;
            while (Stop)
            {
                double proda = 1;
                Console.WriteLine("Введите x: ");
                double x = double.Parse(Console.ReadLine());
                Console.WriteLine("Введите y: ");
                double y = double.Parse(Console.ReadLine());
                Console.WriteLine("Введите длину ряда: ");
                int n = int.Parse(Console.ReadLine());
                double p = 0;
                int k = 0;
                int l = 1;

                for (int i = 1; i <= n; i++)
                {
                    k = k + 2;
                    l = l + 2;
                    proda++;
                    if (i % 2 == 0)
                        p += Math.Pow(x, k) * Math.Sin((Math.Pow(y, i))) / (k * l);
                        Console.WriteLine("Чтобы остановить нажмите 0, а чтобы продолжить введите {0}", proda);
                        double s = double.Parse(Console.ReadLine());
                        if (ch == s)
                            break;
                        if (s==proda)
                            Console.WriteLine($"P = {p}");

                    if (i % 2 == 1)

                        p -= Math.Pow(x, k) * Math.Sin((Math.Pow(y, i))) / (k * l);
                        Console.WriteLine("Чтобы остановить нажмите 0, а чтобы продолжить введите {0}", proda);
                        if (ch == s)
                            break;
                        if (s == proda)
                            Console.WriteLine($"P = {p}");
                }
                Console.WriteLine($"P = {p}");

Ответы (1 шт):

Автор решения: Bulson

пример работы

static void Main(string[] args)
    {
        Console.WriteLine("Вычисление ряда.");
        Console.WriteLine(new string('-', 40));

        var calc = new SeriesCalculator(Console.ReadLine, Console.WriteLine);
        while (calc.RunNewSeries())
        {
            calc.Calculate();
        }

        Console.ReadLine();
    }


class SeriesCalculator
{
    private readonly Func<string> _input;
    private readonly Action<string> _output;
    private bool _isFirstTime = true;
    private double _x;
    private double _y;
    private int _n;

    public SeriesCalculator(Func<string> input, Action<string> output)
    {
        _input = input;
        _output = output;
    }

    internal bool RunNewSeries()
    {
        if (_isFirstTime)
        {
            _isFirstTime = false;
        }
        else
        {
            _output("Новый ряд? yes/no");
            string answer = _input();
            if (answer.StartsWith("n",
                StringComparison.InvariantCultureIgnoreCase))
            {
                _output("Хорошо. Закончили.");
                return false;
            }
        }

        SetNewSeries();
        return true;
    }

    private void SetNewSeries()
    {
        _output("Введите x: ");
        _x = double.Parse(_input());
        _output("Введите y: ");
        _y = double.Parse(_input());
        _output("Введите длину ряда: ");
        _n = int.Parse(_input());
    }

    internal void Calculate()
    {
        double p = 0;
        int k = 0;
        int l = 1;

        for (int i = 1; i <= _n; i++)
        {
            k += 2;
            l += 2;
            if (i % 2 == 0)
            {
                p += Math.Pow(_x, k) * Math.Sin((Math.Pow(_y, i))) / (k * l);
            }
            else
            {
                p -= Math.Pow(_x, k) * Math.Sin((Math.Pow(_y, i))) / (k * l);
            }
                
            _output($"P = {p}");

            _output("Для остановки 0, для продолжения любую цифру");
            var goOn = _input();
            if (goOn.StartsWith("0"))
            {
                break;
            }
        }
    }
}
→ Ссылка