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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2011, 21:13   #1
владислав10
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 13
Восклицание Очень очень важно!Программа в С#

Ребята, помогите пожалуйста!!программа находит макс. последовательность и выводит ответ! это всё работает!!не знаю как сделать, чтоб оно показывало с какого символа эта последовательность!!
напишите плиз, что нужно сделать!!
вот программа!
Код:
int count = 0, MaxCount = 0, PredChislo = 0, Number = 0,chis  ;
      
              do
              {
                  FormDlg dlg = new FormDlg();
                  dlg.Text = "Введите число номер ";
                  dlg.N = 0;
                  dlg.StartPosition = FormStartPosition.CenterScreen;
                  if (DialogResult.OK == dlg.ShowDialog())
                  {
                      chis = Convert.ToInt16(dlg.N);

                      if (chis == PredChislo)
                      {
                          count = count + 1;

                          if (count > MaxCount)
                          {

                              Number = chis;
                              MaxCount = count;
                          }
                      }
                      else
                      {
                          count = 1;
                          PredChislo = chis;

                      }
                  }
                  dlg.Dispose();

              }
              while (PredChislo != 0);
         
           label1.Text = "Число " + Convert.ToString(Number) + " подряд " + Convert.ToString(MaxCount) + " раза ";  
               button1.Visible = false;

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 03.03.2011 в 21:46.
владислав10 вне форума Ответить с цитированием
Старый 03.03.2011, 21:53   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

примерно так:
Код:
int count = 0, MaxCount = 0, PredChislo = 0, Number = 0,chis  ;
int i =0; int PosMax = 0;
      
              do
              {
                  FormDlg dlg = new FormDlg();
                  dlg.Text = "Введите число номер ";
                  dlg.N = 0;
                  dlg.StartPosition = FormStartPosition.CenterScreen;
                  if (DialogResult.OK == dlg.ShowDialog())
                  {
                      i++;

                      chis = Convert.ToInt16(dlg.N);

                      if (chis == PredChislo)
                      {
                          count = count + 1;

                          if (count > MaxCount)
                          {

                              Number = chis;
                              MaxCount = count;
                              PosMax = i;
                          }
                      }
                      else
                      {
                          count = 1;
                          PredChislo = chis;

                      }
                  }
                  dlg.Dispose();

              }
              while (PredChislo != 0);
         
           label1.Text = "Число " + Convert.ToString(Number) + " подряд " + Convert.ToString(MaxCount) + " раза начиная с позиции " + PosMax.ToString();  
               button1.Visible = false;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.03.2011, 22:06   #3
владислав10
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
примерно так:
Код:
int count = 0, MaxCount = 0, PredChislo = 0, Number = 0,chis  ;
int i =0; int PosMax = 0;
      
              do
              {
                  FormDlg dlg = new FormDlg();
                  dlg.Text = "Введите число номер ";
                  dlg.N = 0;
                  dlg.StartPosition = FormStartPosition.CenterScreen;
                  if (DialogResult.OK == dlg.ShowDialog())
                  {
                      i++;

                      chis = Convert.ToInt16(dlg.N);

                      if (chis == PredChislo)
                      {
                          count = count + 1;

                          if (count > MaxCount)
                          {

                              Number = chis;
                              MaxCount = count;
                              PosMax = i;
                          }
                      }
                      else
                      {
                          count = 1;
                          PredChislo = chis;

                      }
                  }
                  dlg.Dispose();

              }
              while (PredChislo != 0);
         
           label1.Text = "Число " + Convert.ToString(Number) + " подряд " + Convert.ToString(MaxCount) + " раза начиная с позиции " + PosMax.ToString();  
               button1.Visible = false;

не работает(
владислав10 вне форума Ответить с цитированием
Старый 03.03.2011, 22:31   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
не работает(
в чём проявляется?
Вместо ответа выдаёт текст "я не работаю" ?!
Или позиция всегда нулевая?
Или выдаваемое число вообще ничего общего не имеет с последовательностью?

Какие цифры вводите (приведите последовательность).
Какую строчку выдаёт (процитируйте)..


p.s. я, конечно, не проверял - писал прямо в браузере на форуме.
Но тут такая элементарщина... что прямо непонятно, где может быть косяк...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.03.2011, 22:50   #5
владислав10
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 13
По умолчанию

ввел "12233444560"

вывело Число 4 подряд 3 раза начиная с позиции 8
владислав10 вне форума Ответить с цитированием
Старый 04.03.2011, 00:46   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Ага. Точно. моя ошибка.
в PosMax находится индекс последнего числа последовательности.

попробуйте вывод изменить на:
Код:
 label1.Text = "Число " + Convert.ToString(Number) + " подряд " + 
Convert.ToString(MaxCount) + " раза начиная с позиции " + (PosMax-MaxCount+1).ToString();
кстати, Ваш алгорим не отрабатывает, если все максимальная длина последовательности единица:
12340
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.03.2011, 12:35   #7
владислав10
Пользователь
 
Регистрация: 03.03.2011
Сообщений: 13
По умолчанию

спасибо огромное)ошибку тоже исправил)всё работает
владислав10 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень важно!!! 2008kedr2008 Помощь студентам 1 22.11.2010 12:01
Это очень важно Славик Помощь студентам 2 04.12.2008 12:25