|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.08.2012, 10:32 | #1 |
Пользователь
Регистрация: 28.11.2011
Сообщений: 23
|
Машина Тьюринга
Ребят, надо сделать машину Тьюринга с условием что она будет выдавать "ДА" если четное кол-во единиц, "НЕТ" в противном случае. Алфавит (1,0).
Сделала так что если их две, то он выдает "ДА", но не всегда, только когда подряд стоят... Помогите чем можете, пожалуйста! Вот наработки: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- int MT (AnsiString s) { Form1->ListBox1->Clear(); int b=0,q=0,i=1,q1; while (b==0) { q1=q; switch (q) { case 0: switch (s[i]) { case '0': q=0;break; case '1': q=1;break; case ' ': b=1;break; } break; case 1: switch (s[i]) { case '0': q=0;break; case '1': q=2;break; case ' ': b=1;break; } break; case 2: switch (s[i]) { case '0': q=0;break; case '1': {q=2; b=1; break; } case ' ': b=1;break; } break; } Form1->ListBox1->Items->Add("(q"+IntToStr(q1)+" "+s[i]+"-->q"+IntToStr(q)+" "+s[i]+" R, "+s+")"); i++; } return(q); } void __fastcall TForm1::Button1Click(TObject *Sender) { int rez,i=0; AnsiString s; while (Form1->StringGrid1->ColCount!=i) { s=s+Form1->StringGrid1->Cells[i][0]; i++; } s=s+' '; rez=MT(s); if (rez==2) Label1->Caption="Да"; else Label1->Caption="Нет"; } //------------------------------------------------------------------------ void __fastcall TForm1::Button4Click(TObject *Sender) { Form1->StringGrid1->ColCount=1; Form1->StringGrid1->Cells[0][0]=' '; } //------------------------------------------------------------------------ void __fastcall TForm1::Button2Click(TObject *Sender) { if (Form1->StringGrid1->ColCount!=1 || Form1->StringGrid1->Cells[Form1->StringGrid1->ColCount-1][0]==1 || Form1->StringGrid1->Cells[Form1->StringGrid1->ColCount-1][0]==0) Form1->StringGrid1->ColCount++; Form1->StringGrid1->Cells[Form1->StringGrid1->ColCount-1][0]=1; } //------------------------------------------------------------------------ void __fastcall TForm1::Button3Click(TObject *Sender) { if (Form1->StringGrid1->ColCount!=1 || Form1->StringGrid1->Cells[Form1->StringGrid1->ColCount-1][0]==1 || Form1->StringGrid1->Cells[Form1->StringGrid1->ColCount-1][0]==0) Form1->StringGrid1->ColCount++; Form1->StringGrid1->Cells[Form1->StringGrid1->ColCount-1][0]=0; } //------------------------------------------------------------------------
Scio Me Nihil Scire
|
13.09.2012, 16:18 | #2 |
Пользователь
Регистрация: 13.07.2011
Сообщений: 40
|
Вот вы нагородили. Все намного проще:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Машина Тьюринга | namazi74 | Помощь студентам | 0 | 04.06.2011 21:29 |
Машина Тьюринга и алгоритмы Маркова. Машина Поста. | MarkForMath | Помощь студентам | 0 | 27.04.2011 21:55 |
Машина Тьюринга | strangegirl | Помощь студентам | 1 | 27.03.2011 23:11 |
Машина Тьюринга. | skorpi | Помощь студентам | 0 | 30.12.2009 21:40 |
Машина Тьюринга | NoHeart | Помощь студентам | 3 | 16.01.2009 20:40 |