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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2012, 12:03   #1
Лапенко_А
 
Регистрация: 19.04.2012
Сообщений: 6
По умолчанию Машина тьюринга!!!!!

Помогите пожалуйста!!!! Реализовал мт на делфи но он почему то ругается на одну строчку!!!!! вот
текст программы
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
   c=array[1..15] of string;
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const a: c=('0','1','1','1','1','1','_','1','1','1','1','_','_','_','_');
N=50;
Label 99;
var
  i1,i,k,m,s,flag:integer;
  x1,x2,x4,x5,x6,q:string;
  kom: array[1..N] of string;
begin
m:=2;
  q:='1';
  kom[1]:='11>11R';
  kom[2]:='1_>21R';
  kom[3]:='21>21R';
  kom[4]:='2_>3_L';
  kom[5]:='31>3_S';
Repeat
  Flag:=0; s:=s+1;
  For i:=1 to 5 do
  Begin
   x1:=copy(kom[i],1,1);
   x2:=copy(kom[i],2,1);
   x4:=copy(kom[i],4,1);
   x5:=copy(kom[i],5,1);
   x6:=copy(kom[i],6,1);
   if (flag=0) and (x1=q) and (x2=a[m]) then Begin
                                               q:=x4;

                                                a[m]:=x5; {ðàçîáðàòüñÿ â ýòîé ñòðîêå ïîïðîáûâàòü ôóíêöèþ àíñèñòðèíã, ÊÀÊ ÎÍÀ ÈÑÏÎËÜÇÓÅÒÑß È ×ÒÎ ÄÀÅÒ ÍÀÌ ÄËß äåëôè}
   {case x6 of
   'R':  m:=m+1;
   'L':  m:=m-1;
   'S':  goto 99; }
                                                  if x6='R' then  m:=m+1;
                                                  if x6='L' then m:=m-1;
                                                  if x6='S'then goto 99; flag:=1;

                                                end;
   end;
  99:
  k:=k+1;
  For i:=1 to 15 do Begin
                      Memo1.Lines.Add(a[i] + ' ');

                     Memo1.lines.Add('' + 'q=' + q + 'k=' + IntToStr(k));



                      for i1:=1 to m-1 do begin Memo1.Lines.Add('==' + '|'+ '');

                                         end;
                     end;
until x6='S';
 Memo1.lines.Add('Ëåíòà ìàøèíû Òüþðèíãà ');
 Memo1.lines.Add('_,1,1,1,1,1,_,1,1,1,1,_,_,_,_')

end;

end.
ругается на строчку подчеркнутую



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

Последний раз редактировалось Serge_Bliznykov; 22.05.2012 в 12:58.
Лапенко_А вне форума Ответить с цитированием
Старый 22.05.2012, 13:13   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

логично. вы же описали массив A как константу.
поэтому свежие версии дельфи помогают Вам не сделать ошибку, когда Вы пытаетесь константное значение поменять!

бороться с этим можно по разному.
начиная с установки параметра компиляции [ ] Assigned typed constant :
Код:
{$J+}
procedure TForm1.Button1Click(Sender: TObject);
и заканчивая введением дополнительного массива, в который иницилизируется константным:
Код:
procedure TForm1.Button1Click(Sender: TObject);
const aConst: c = ('0','1','1','1','1','1','_','1','1','1','1','_','_','_','_');
N=50;
Label 99;
var
  a : c;
  i1,i,k,m,s,flag:integer;
  x1,x2,x4,x5,x6,q:string;
  kom: array[1..N] of string;
begin
  m:=2;
  q:='1';
  a := aConst;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.05.2012, 13:42   #3
Лапенко_А
 
Регистрация: 19.04.2012
Сообщений: 6
По умолчанию

Спасибо за подсказку!!!! но я немного по дургому реализовал эту проблему теперь проблема остается за выводом в memo так как я исьпользую функцию concat для обьединения переменных, то поэтому в выводе получается чушь, а не то что мне надо!!! если есть идеи как это реализовать то я буду очень благодарен
!! итоговый ответ должен выглядить примерно вот так _111111111_____
Лапенко_А вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Машина тьюринга!!! Лапенко_А Общие вопросы Delphi 5 02.05.2012 01:14
Машина Тьюринга и алгоритмы Маркова. Машина Поста. MarkForMath Помощь студентам 0 27.04.2011 21:55
машина тьюринга SchwarzeWolfin Помощь студентам 1 30.11.2010 08:48
Машина Тьюринга ДваДваВо7 Помощь студентам 0 25.10.2010 16:43