Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 11
1

Асинхронные автоматы

05.05.2014, 19:13. Просмотров 545. Ответов 4
Метки нет (Все метки)


Ребят помогите найти ошибку в коде.
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
 AnsiString Anssinhr1(AnsiString S)
  { enum conditions {A,B};
  conditions sit=A;
        AnsiString T="";
  while (!S.IsEmpty())
  { switch (sit)
  { case A :
  {if(S[1]=='0') T=T+"001";
        else
        if(S.Length()>1)
        {String sub=S.SubString(1,2);
        if(sub=="11") T=T+"1"; else
        if(sub=="100") T=T+"0"; else
         if(sub=="101") T=T+"01";
         sit=B;} }
         break; }
 
 case B:
 {if(S[1]=='0') T=T+"1";sit=A;}
 else T=T+"10";
 break;}
 }
 }
 return T;
 }
 
 
 
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{ AnsiString S=Edit1->Text;
 Edit1->Text=Anssinhr1(S); }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2014, 19:13
Ответы с готовыми решениями:

Конечные автоматы
есть код для вычисления количества строк в тексте, все вроде ок, но при нажатии на кнопку выдает...

Автоматы синхронные и асинхонные
Синхронный автомат программы не запускаются. по мойму я что-то с дужками напутала. помогите...

Литература. Синхронные и асинхронные автоматы
Поделитесь пожалуйста литературой. Необходимо написать программу работы синхронного автомата, и еще...

Асинхронные контроллеры
Не совсем понимаю как работают асинхронные контроллеры в ASP.NET MVC. Допустим есть два action...

4
698 / 490 / 126
Регистрация: 31.05.2013
Сообщений: 2,728
Записей в блоге: 3
06.05.2014, 00:18 2
прошу прощения, но хрень какая то ..все вперемешку..но вопрос был найти ошибку...достаточно было только причесать код

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
AnsiString Anssinhr1(AnsiString S)
  {
  enum conditions {A,B};
  conditions sit=A;
   AnsiString T="";
  while (!S.IsEmpty())
  {
   switch (sit)
 
  {
   case A :
            if(S[1]=='0') T=T+"001";
           else
            if(S.Length()>1)
             {
             String sub=S.SubString(1,2);
             if(sub=="11") T=T+"1"; else
            if(sub=="100") T=T+"0"; else
           if(sub=="101") T=T+"01";
           sit=B;
           }
         break;
 
 case B:
    if(S[1]=='0')
      {
        T=T+"1";
        sit=A;
       }
        else
         T=T+"10";
 
 break;
 
 
 }
 }
 
 return T;
0
0 / 0 / 0
Регистрация: 12.03.2014
Сообщений: 11
12.05.2014, 20:04  [ТС] 3
вот что получилось,но оно считает бред.
помогите дороботать
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
String Assinhr1(String S)
 
{
enum conditions {A,B};
conditions sit=A;
String T="";
while (!S.IsEmpty())
switch (sit)
{
case A:
{
if(S[1]=='0') T=T+"001";
else
if(S.Length()>1)
{
String sub=S.SubString(1,2);
if(sub=="11") T=T+'1';
else
if(sub=="100") T=T+'0';
else
if(sub=="101") T=T+"01";
sit=B;
}
if((S[1]=='2')&&(S.Length()>=1))S.Delete(1,2);
else S.Delete(1,1);
break;
}
 
case B:
{
if(S[1]=='0')
T=T+"10";
else if(S[1]=='1') {T=T+' ';sit=A;}
S.Delete(1,1);
break;
}
}
return T;
}
 
 
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String s=LabeledEdit1->Text;
LabeledEdit2->Text=Assinhr1(s);
}
0
4030 / 2320 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
13.05.2014, 16:15 4
Доработать что? Ты хоть расскажи, чего код делать должен. И поподробнее, не стесняйся.
0
67 / 55 / 8
Регистрация: 26.07.2013
Сообщений: 399
13.05.2014, 17:25 5
- nick14, вот, что получилось у меня:
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
// .........
AnsiString  Anssinhr1( AnsiString   S )
{
    //--------------------------------------------------------------------------
    enum    conditions
    {
        A,  // .........
        B   // .........
    };
    //--------------------------------------------------------------------------
    conditions  cond = A;
 
    AnsiString  T = "";
    while ( !S.IsEmpty() )
    {
        switch ( cond )
        {
            case    A:
            {
                if ( S[1] == '0' )
                    T = T + "001";
                else if ( S.Length() > 1 )
                {
                    String  sub = S.SubString( 1, 2 );
                    if ( sub == "11" )  T = T + "1";
                    else if ( sub == "100" )    T = T + "0";
                    else if ( sub == "101" )    T = T + "01";
                    cond = B;
                }
            }
            break;
//-     }   //(*** закрыл я. ***)
 
            case    B:
            {
                if ( S[1] == '0' )  T = T + "1";
                else    T = T + "10";   //(*** перенес я. ***)
                cond = A;
            }
            break;
 
        }//(switch)
//(ЗДЕСЬ, ВИДИМО, НАДО УДАЛИТЬ В СТРОКЕ S ПЕРВЫЙ СИМВОЛ!
// ИНАЧЕ СТРОКА S БУДЕТ ОСТАВАТЬСЯ ОДНОЙ ДЛИННЫ И ОПЕРАТОР while - БУДЕТ ВИСЕТЬ ВЕЧНО!)
//S.;
    }//(while)
//-}    //(*** закрыл я. ***)
    // .........
    return  T;
}
//==============================================================================
 
 
//##### ..... #####
// конструктор.
__fastcall  TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  Edit1->Text = "100110";  // пробная строка.
}
- Убрал две лишние закрывающие фигурные скобки и перенес один оператор, но это конечно по наитию,
т.к. совсем не знаю, что за автомат у Вас ... Лучше форматируйте код, тогда значительно легче будет искать
ошибки. Например лишние скобки.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2014, 17:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Асинхронные операции
Console.WriteLine("Some code"); using (var fs = new System.IO.FileStream("File.txt",...

Асинхронные делегаты
Здравствуйте ! Подскажите пожалуйста, (программа рабочая ) для чего в методе public bool...

Асинхронные сокеты
Здравствуйте. Очень нужна ваша помощь. Вот callback функция которая передается в метод асинхронного...

Асинхронные операции
Всем привет, имею следующий вопрос. Допустим, есть форма или JFrame, на которой есть кнопка и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.