Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
3 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 276

Метод Ньютона переделать с консоли на формы

23.10.2019, 20:42. Показов 721. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код на консоли, но возникли трудности с переводом на формы, а именно, как прописать функцию и вообще в правильном ли направлении двигаюсь
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            double x, pr;
            Console.Write("Введите начальное значение точки: ");
            double x0 = double.Parse(Console.ReadLine());
            Console.Write("Введите погрешность, используя запятую: ");
            double epsilon = double.Parse(Console.ReadLine());
            Console.Write("Введите количество итераций:");
            int a = Convert.ToInt32(Console.ReadLine());
            do
            {
                x = x0;
                x0 = x - f(x) / f1(x);
                i++;
                if (x0 == 0)
                {
                    pr = Math.Abs(x - x0);
                }
                else
                {
                    pr = Math.Abs(x - x0) / Math.Max(x,x0);
                }
 
            }
            while ((pr >= epsilon) && (i != a));
            double y = f(x0);
            Console.WriteLine();
            if (pr <= epsilon)
            {
                Console.WriteLine("Найденные значения уравнения:");
                Console.WriteLine("Корень уравнения x = {0}", x);
                Console.WriteLine("Погрешность pr = {0}", pr);
                Console.WriteLine("Значение функции y = {0}", y);
                Console.WriteLine("Количество итераций i = {0}", i);
            }
            else
            {
                Console.WriteLine("Корень уравнения не найден, приближенное значение x0 = +x0);
                Console.WriteLine("Значение функции y = {0}", y);
            }
            Console.ReadKey();
 
        }
        static double f(double x)
        {
            return Math.Sin(x);
        }
        static double f1(double x)
        {
            return Math.Cos(x);
 
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public partial class Form1 : Form
    {
        double x0 = 0;
        double epsilon = 0;
        double a = 0;
        double x;
        double pr;
        int i = 0;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            double x0 = Convert.ToDouble(textBox1.Text);
            double epsilon = Convert.ToDouble(textBox2.Text);
            double a = Convert.ToDouble(textBox3.Text);
            do
            {
                x = x0;
                x0 = x - f(x) / f1(x);
                i++;
                if (x0 == 0)
                {
                    pr = Math.Abs(x - x0);
                }
                else
                {
                    pr = Math.Abs(x - x0) / Math.Max(x, x0);
                }
 
            }
            while ((pr >= epsilon) && (i != a));
            double y = f(x0);
            if (pr <= epsilon)
            {
                textBox4.Text = Convert.ToString(x);
                textBox5.Text = Convert.ToString(pr);
                textBox6.Text = Convert.ToString(i);
                textBox7.Text = Convert.ToString(y);
            }
            else
            {
                MessageBox.Show("Корень уравнения не найден, приближенное значение x0  =" + x0);
                MessageBox.Show("Значение функции y =" + y);
            }
 
 
        }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2019, 20:42
Ответы с готовыми решениями:

Метод Ньютона для решения уравнения в консоли
Здравствуйте! Вот программа реализующая метод Ньютона для решения конкретного уравнения в консоли. Помогите выделить класс. Ну или...

Переделать из консоли в формы C++
Народ помогайте!!!Написал курсовую в консольном варианте, а требуют в формах.Формы плохо понимаю.Помогите переделать код. Условие задачи:...

Переделать из консоли в формы
вообщем ребят есть код, для консоли помогите переделать в формы, создав одну кнопку &quot;расчет&quot;, также желательно сделать чтобы...

6
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
23.10.2019, 20:49
plktre, если работает - значит правильно. Единственное что я бы посоветовал, если не будете использовать переменные больше нигде (что прописаны перед конструктором формы Form()), то перенесите инициализацию в button_click (там где вся логика).
Функцию прописать также как в консольном.
0
3 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 276
23.10.2019, 21:02  [ТС]
Прописала, но пишет, что входная строка имела неверный формат(16 строка), хотя ввожу просто число 2
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
23.10.2019, 21:36
plktre, взглянуть бы на код или приложение. ответ быстрее найдется
0
3 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 276
23.10.2019, 22:11  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
namespace MethodN
{
    public partial class Form1 : Form
    {
 
        double x;
        double pr;
        int i = 0;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            double x0;
            double epsilon;
            double a;
            x0 = Convert.ToDouble(textBox1.Text);
            epsilon = Convert.ToDouble(textBox2.Text);
            a = Convert.ToDouble(textBox3.Text);
            do
            {
                x = x0;
                x0 = x - f(x) / f1(x);
                i++;
                if (x0 == 0)
                {
                    pr = Math.Abs(x - x0);
                }
                else
                {
                    pr = Math.Abs(x - x0) / Math.Max(x, x0);
                }
 
            }
            while ((pr >= epsilon) && (i != a));
            double y = f(x0);
            if (pr <= epsilon)
            {
                textBox4.Text = Convert.ToString(x);
                textBox5.Text = Convert.ToString(pr);
                textBox6.Text = Convert.ToString(i);
                textBox7.Text = Convert.ToString(y);
            }
            else
            {
                MessageBox.Show("Корень уравнения не найден, приближенное значение x0  =" + x0);
                MessageBox.Show("Значение функции y =" + y);
            }
        }
            static double f(double x)
            {
                return Math.Sin(x);
            }
            static double f1(double x)
            {
                return Math.Cos(x);
            }
    }
}
Миниатюры
Метод Ньютона переделать с консоли на формы  
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
23.10.2019, 22:26
plktre, скорее всего вы вводите не 2 а 2.0, а нужно 2,0
Региональные настройки каждой страны по данному нюансу отличаются. Кто то ставит точку, кто то запятую. При неверном вводе выдается та самая ошибка. На данный момент не помню кода как изменить, если вспомню - напишу. Попробуйте пока дробные значение писать через запятую.
0
3 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 276
24.10.2019, 06:49  [ТС]
Я и так через запятую прописываю, где погрешность, все равно ошибку выдаёт
Я нашла ошибку, у меня ьекстбоксы в разнобой стоят в приложении

Добавлено через 19 минут
Как обнулять данные, то есть, чтобы я написала на «решить» и мне приходилось снова вводить данные, а то я нажимаю и у меня количество итераций увеличивается с каждым нажатием
Сделала, вопрос закрыт
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.10.2019, 06:49
Помогаю со студенческими работами здесь

Нужно переделать из консоли в формы
Здравствуйте! Помогите пожалуйста вот с этой прогой, нужно ее переделать в windowsforms, т.к. я в этом (windows forms) на данный момент не...

Переделать программу из консоли на форму и по возможности добавить метод
Есть готовая программа решения матричных игр методом Брауна-Робинсона, нужно переделать её из консольной на форму, для того чтобы добавить...

Метод итерации и метод Ньютона (метод касательных)
Помогите решить методом итерации и методом Ньютона выражение привиденное ниже: e(в степени Х) - e(в степени (-x)) - 2 = 0

Метод Ньютона или метод простых итераций для нелинейных уравнений
нужно выбрать один из методов и с помощью этого метода реализовать решение нелинейных уравнений, в конце необходима оценка погрешности

Вычислить корни уравнения, используя метод простой итерации, метод Ньютона
2 1) Вычислить корни уравнения 2*(e^x)-5*x-2 с точностью 0.000001, используя метод простой итерации 2) Решить это же уравнение методом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru