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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2016, 17:01   #1
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
Восклицание С# Windows.Forms Программа содержит более одной указанной точки входа: "Program.Main()". Скомпилируйте с /main, чтобы указать тип

Добрый день!

Подскажите пожалуйста. В TextBox1 и 2 вводятся значения. Затем наживается кнопка решение(пока что для метода половинного деления). В результате работы программы в textBox3 должны выводится результаты. Программа выдает ошибки:
Элемент "InitializeComponent" не существует в текущем контексте.
Элемент "textBox1" не существует в текущем контексте.
Элемент "textBox2" не существует в текущем контексте.
Элемент "textBox3" не существует в текущем контексте.
Программа содержит более одной указанной точки входа: "Program.Main()". Скомпилируйте с /main, чтобы указать тип, который содержит точку входа.
Программа содержит более одной указанной точки входа: "WindowsFormsApplication1.Program.M ain()". Скомпилируйте с /main, чтобы указать тип, который содержит точку входа.

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
        }
}
}
    class Program
    {
        static void Main()
        {
            double c = 0;
            double a = Convert.ToInt32(Convert.ToInt32(textBox1.Text));
            double b = Convert.ToInt32(Convert.ToInt32(textBox2.Text));
            do
            {
                c = (a + b) / 2;
                if ((res(a) - res(c)) < 0)
                    a = c;
                else
                    b = c;
            }
            while (!((b - a) > c));
            textBox3.Text = Console.WriteLine("Значение x: {0:d3}, значение y: {1:d3}",  (a + b) / 2, (b - a) / 2);
            
        }
        static double res(double n)
        {
            return n*n+2*n*n+3*n+1;
        }
    }

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
        }
}
Изображения
Тип файла: png Безымянный.png (8.6 Кб, 38 просмотров)
Maray вне форума Ответить с цитированием
Старый 05.04.2016, 17:05   #2
max_prorok
Форумчанин
 
Регистрация: 06.10.2011
Сообщений: 181
По умолчанию

Я так подозреваю, что
Код:
 class Program
    {
        static void Main()
        {
...
вы сами написали.
Просто необходимые вам расчеты нужно вставить внутрь фигурных скобок обработчика нажатия на клавишу
Код:
private void button2_Click(object sender, EventArgs e)
        {
        }
max_prorok вне форума Ответить с цитированием
Старый 05.04.2016, 18:26   #3
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
По умолчанию

Цитата:
Сообщение от max_prorok Посмотреть сообщение
Я так подозреваю, что
Код:
 class Program
    {
        static void Main()
        {
...
вы сами написали.
Просто необходимые вам расчеты нужно вставить внутрь фигурных скобок обработчика нажатия на клавишу
Код:
private void button2_Click(object sender, EventArgs e)
        {
        }
Вот, вроде всё исправила. Ошибок не выдает. Программа запускается, я ввожу значения и нажимаю на кнопку "Решение" и программа просто зависает. В чем может быть проблема?


Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        static double res(double n)
        {
            return n * n + 2 * n * n + 3 * n + 1;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string str;
            double c = 0, z = 0, x = 0;
            double a = Convert.ToInt32(textBox1.Text);
            double b = Convert.ToInt32(textBox2.Text);
            do
            {
                c = (a + b) / 2;
                if ((res(a) - res(c)) < 0)
                    a = c;
                else
                    b = c;
            }
            while (!((b - a) > c));
            z = (a + b) / 2;
            x = (b - a) / 2;
            textBox3.Text = Convert.ToString(z);
            textBox4.Text = Convert.ToString(x);
        }
    }
}
Изображения
Тип файла: png Безымянный.png (8.8 Кб, 57 просмотров)
Maray вне форума Ответить с цитированием
Старый 05.04.2016, 19:11   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Maray Посмотреть сообщение
Программа запускается, я ввожу значения и нажимаю на кнопку "Решение" и программа просто зависает. В чем может быть проблема?
Проблема в том, что у Вас получается бесконечный цикл.
Момент окончания вычислений в данном численном методе определяется условием: величина интервала < заданная погрешность.
Какое условие окончания вычислений использовано у Вас?
Streletz вне форума Ответить с цитированием
Старый 05.04.2016, 20:42   #5
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Проблема в том, что у Вас получается бесконечный цикл.
Момент окончания вычислений в данном численном методе определяется условием: величина интервала < заданная погрешность.
Какое условие окончания вычислений использовано у Вас?
Ввела в программу точность. Но теперь возникла такая проблема. Программа сразу выходит из цмкла while, хотя не должна этого делать. Получается a=1, b=-10, p=0,001

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        static double res(double n)
        {
            return n * n * n + 2 * n * n + 3 * n + 1;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string str;
            double c = 0, z = 0, x = 0;
            double a = Convert.ToInt32(textBox1.Text);
            double b = Convert.ToInt32(textBox2.Text);
            double p = Convert.ToDouble(textBox5.Text);
            do
            {
                c = (a + b) / 2;
                if ((res(a) * res(c)) < 0)
                    b = c;
                else
                    a = c;
            }
            while (Math.Abs(b - a) < p);
            x = res(c);
            textBox3.Text = Convert.ToString(c);
            textBox4.Text = Convert.ToString(x);
        }
    }
}
Maray вне форума Ответить с цитированием
Старый 05.04.2016, 21:06   #6
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Maray Посмотреть сообщение
Но теперь возникла такая проблема. Программа сразу выходит из цмкла while, хотя не должна этого делать. Получается a=1, b=-10, p=0,001
У Вас условие в цикле записано не правильно.
Цитата:
Сообщение от Maray Посмотреть сообщение
Код:
while (Math.Abs(b - a) < p);
После while указывается условие при истинности которого цикл выполняется, а не завершается. Должно быть:
Код:
while (Math.Abs(b - a) > p)
Короче, только без обид, почитайте учебник по C# или хотя бы документацию.
Streletz вне форума Ответить с цитированием
Старый 06.04.2016, 07:07   #7
Maray
Форумчанин
 
Регистрация: 03.01.2015
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
У Вас условие в цикле записано не правильно.

После while указывается условие при истинности которого цикл выполняется, а не завершается. Должно быть:
Код:
while (Math.Abs(b - a) > p)
Короче, только без обид, почитайте учебник по C# или хотя бы документацию.
Большое спасибо за помощь!
Maray вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Main menu !2marselo12 Общие вопросы Delphi 2 16.12.2014 15:09
Преобразование в строчный тип данных(Ошибка не содержит статического метода "Main", подходящего для точки входа) aly-lucenko Помощь студентам 8 02.10.2011 11:36
Exception in thread "main" java.lang.NullPointerException at Main.main(Main.java:9) elpilasgsm Помощь студентам 4 18.01.2011 08:23
ПЕРЕДЕЛАЙТЕ ПРОГРАММУ ТАК, ЧТОБЫ ОНА НИКОГДА НЕ ВЫВОДИЛА БОЛЕЕ 10 ЧИСЕЛ В ОДНОЙ СТРОКЕ D_bl_M Общие вопросы C/C++ 6 05.06.2010 06:54
Функция main и main(void) Pord Помощь студентам 1 11.12.2008 15:57