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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2012, 10:32   #1
Electroflower
Пользователь
 
Аватар для Electroflower
 
Регистрация: 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;
}
//------------------------------------------------------------------------
Вложения
Тип файла: rar Л5.rar (406.0 Кб, 33 просмотров)
Scio Me Nihil Scire
Electroflower вне форума Ответить с цитированием
Старый 13.09.2012, 16:18   #2
sergey_dmitrievich
Пользователь
 
Регистрация: 13.07.2011
Сообщений: 40
По умолчанию

Вот вы нагородили. Все намного проще:
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  bool nochet = false;
  AnsiString str = Form1->Edit1->Text;
  while(str.Pos("1"))
  {
  str.Delete(str.Pos("1"),1);
  nochet=!nochet;
  }
  if(nochet) Form1->Label1->Caption="NO";
  else Form1->Label1->Caption="YES";
}
sergey_dmitrievich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Машина Тьюринга 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