Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2014, 21:09   #1
qwot
Пользователь
 
Регистрация: 08.11.2014
Сообщений: 27
По умолчанию копипаст

Помогите вынести все расчеты за комбобоксы возвратом функции,чтобы не было одинаковых строк когда



Код:
double f(double x, double r, double t, double y)
        {
            return r * Math.Pow(x, 2) + t * x - y; //функция
        }

        double f1(double x, double r, double t)
        {
            return 2 * r * x + t; //первая производная
        }

        double f2(double x, double r)
        {
            return 2; //вторая производная
        }

        double Hordes(double a, double b, double eps)
        {
            {
                double r;
                double t;
                double y;
                string k;
                double n = 0;
                k = comboBox1.SelectedItem.ToString();
                switch (k)
                {

                    case "2x^2+2*x-1":
                        r = 2;
                        t = 2;
                        y = 1;
                        while (Math.Abs(b - a) > eps) 
                        {
                            a = b - (b - a) * f(b, r, t, y) / (f(b, r, t, y) - f(a, r, t, y)); 
                            b = a - (a - b) * f(a, r, t, y) / (f(a, r, t, y) - f(b, r, t, y));  
                            listBox1.Items.Add(b);
                            n++;
                           
                        }


                        break;

                    case "13x^2+x-5":
                        r = 13;
                        t = 1;
                        y = 5;
                        while (Math.Abs(b - a) > eps) 
                        {
                            a = b - (b - a) * f1(b, r, t) / (f1(b, r, t) - f1(a, r, t)); 
                            b = a - (a - b) * f1(a, r, t) / (f1(a, r, t) - f1(b, r, t));  
                            listBox1.Items.Add(b);
                            n++;
                        }

                        break;

                    case "x^2+9x-3":
                        r = 1;
                        t = 9;
                        y = 3;
                        

                        while (Math.Abs(b - a) > eps)
                        {
                            a = b - (b - a) * f(b, r, t, y) / (f(b, r, t, y) - f(a, r, t, y));
                            b = a - (a - b) * f(a, r, t, y) / (f(a, r, t, y) - f(b, r, t, y));
                            listBox1.Items.Add(b);
                            n++;
                        }

                        break;

                }
                label4.Text = n.ToString();
     
            }

            return b;


        }
        private void button1_Click(object sender, EventArgs e)
        {
            double a = double.Parse(textBox1.Text);
            double b = double.Parse(textBox2.Text);
            double eps = 0.0001;
            label3.Text = (Hordes(a, b, eps).ToString());
           
        }
qwot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
КопиПаст или как вставить текст в нужное место admin-one Общие вопросы Delphi 6 14.08.2013 13:01