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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2010, 18:25   #11
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Спасибо конечно за код но я не просил. . . ,но я сделал проще. . .кому надо могу выложить свой проект на формах

Последний раз редактировалось Alex_sim; 17.05.2010 в 18:34.
Alex_sim вне форума Ответить с цитированием
Старый 17.05.2010, 18:27   #12
bullvinkle
Временно — юрист.
Форумчанин
 
Аватар для bullvinkle
 
Регистрация: 31.03.2008
Сообщений: 204
По умолчанию

Выложи всю программу. Полюбому пригодится.
bullvinkle вне форума Ответить с цитированием
Старый 18.05.2010, 06:52   #13
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Лампочка Вот my programm)))

кому интересно могут глянуть но это еще не совершенный вариант
вероятность истиного выражения мала...
Вложения
Тип файла: rar v1.01.rar (5.4 Кб, 6 просмотров)
Alex_sim вне форума Ответить с цитированием
Старый 18.05.2010, 13:27   #14
bullvinkle
Временно — юрист.
Форумчанин
 
Аватар для bullvinkle
 
Регистрация: 31.03.2008
Сообщений: 204
По умолчанию

Alex_sim, я думал, ты исходник дашь.
bullvinkle вне форума Ответить с цитированием
Старый 11.06.2010, 16:02   #15
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Восклицание ...

Всем привет
Сделал задачу Для проверки валидности скобочного выражения
не пойму почему проверка не работает все учел короче вот код может кто подскажет
Код:
int t = 0;
        int pr = 0, tr = 0, lp = 0;
               
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {


            for (int i = 0; i < 1024; i++)
            {
                string s = "";
                int x = 1 << 9;

                for (int j = 0; j < 10; j++)
                {
                    if ((i & x) > 0)
                    {
                        s += "(";
                    }
                    else
                    {
                        s += ")";
                    }
                    x = x >> 1;
                }
                

                for (int p = 0; p < 10; p++)
                {

                    if (s[p] == '(')
                    {
                        t++;
                        pr++;

                    }
                    else
                        if (s[p] == ')')
                        {
                            t--;
                            tr++;
                        }

                    if (t < 0)
                    {
                        lp++;

                    }
                    else 
                    {
                        if (p == 10)
                        {
                            if (t != 0)
                            {
                                lp++;
                            }
                        }
                    }

                }
                if (lp==0)
                {
                    label1.Text = "Выражение Верно: количество '('==" + pr + "   количество ')'==" + tr;                    
                    textBox1.AppendText(s + "\r\n");
                }
                else
                    if (lp > 0)
                    {

                        label1.Text = "Выражение Не верно: количество '('==" + pr + "   количество ')'==" + tr
                        + "\nВозможно скобка не закрыта ";
                    }

            }
Alex_sim вне форума Ответить с цитированием
Старый 11.06.2010, 16:20   #16
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Я бы сделал так:
Код:
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
                string s = textBox1.Text;
                int k = 0;

                for (int i = 0; i < s.Length; i++)
                {
                    if (s[i] == '(') k++;
                    if (s[i] == ')') k--;
                    if (k < 0) break;
                }

                if (k == 0)
                {
                    label1.Text = "Выражение Верно";
                }
                
                if (k > 0)
                {

                    label1.Text = "Выражение Не верно: не хватает закрывающихся скобок";
                }
                if (k<0)
                {
                    label1.Text = "Выражение Не верно: лишняя закрывающаяся скобка";
                }
        
        }
почитал первую страницу, и кажется я не так понял задание, у меня просто проверяется правильно ли расставлены скобки...
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.

Последний раз редактировалось mrChester; 11.06.2010 в 16:25.
mrChester вне форума Ответить с цитированием
Старый 11.06.2010, 16:39   #17
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Да так будет лучше но я сейчас пошагово прошелся по коду у меня проверяет но почему то всего 2 раза и все, по моему алгоритму должен каждый раз проверять т.е 1024 раза?
Как я сделал генерирую выражение длины 10 и сразу его проверяю если правильное то записываю иначе сообщение об ощибке...
Alex_sim вне форума Ответить с цитированием
Старый 11.06.2010, 18:03   #18
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
По умолчанию

Код:
private void button1_Click(object sender, EventArgs e)
        {
            

            for (int i = 0; i < 1024; i++)
            {
             int t = 0;    
string s = "";
                int x = 1 << 9;

                for (int j = 0; j < 10; j++)
                {
                    if ((i & x) > 0)
                    {
                        s += "(";
                    }
                    else
                    {
                        s += ")";
                    }
                    x = x >> 1;
                }
                for (int p = 0; p < 10; p++)
                {

                    if (s[p] == '(')
                    {
                        t++;

                    }

                    if (s[p] == ')')
                    {
                        t--;
                    }


                    if (t < 0)
                    {
                        break;
                    }
                }
                if (t == 0)
                {
                      listBox1.Items.Add(s);
                }

                if (t > 0)
                {
                    textBox2.AppendText("Выражение:" + s + "не верно не хватает закрывающей скобки\r\n");
                }
                
                if (t < 0)
                {
                    textBox2.AppendText("Выражение:" + s + "не верно лишняя закрывающая скобка\r\n");
                }
                
            }                   
            

                          
                
            
        }
Извините за ттакой глупый вопрос все я нашел ошибку "t" не внес в цикл и он у меня постоянно менялся вот в чем была ошибка)))
приятно когда сам находишь ошибку

Последний раз редактировалось Alex_sim; 11.06.2010 в 19:05.
Alex_sim вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
преобразование выражений alexander-57n Помощь студентам 0 16.05.2010 14:33
вычисление арифметических выражений на с++ Euforia_PZAS09_1 Помощь студентам 1 09.03.2010 17:40
Парсер математических выражений Granus Общие вопросы Delphi 3 24.06.2009 15:19
условие в построителе выражений! SKIF_SPB Microsoft Office Access 3 25.12.2008 14:07
Решение простых выражений MStorm Помощь студентам 5 10.03.2008 14:34