![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Глюк |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте!Я сделал прогу,которая выводит комментарий Конечного Автомата,но она выводит только 1 комментарий,а если вводить 2 и более - нет.Как это реализовать?И автомат может двигаться только вперед,а назад возвращаться не может...
procedure TForm1.Button1Click(Sender: TObject);
type Qka=(H,K,C,D,S,E); {Cостояния КА}
var qa : Qka;
Sa,Sc: string;
i: byte;
begin
edit2.Text:='';
Sc:='';
Sa:=edit1.Text;
qa:=H; i:=1;
repeat
case qa of
H : begin case Sa[i] of
'{' : qa:=K;
'(' : qa:=D;
end;
i:=i+1;
end;
K : begin case Sa[i] of
'}' : qa:=S
else begin qa:=K;Sc:=Sc+Sa[i]; end;
end;
i:=i+1;
end;
D : begin case Sa[i] of
'*' : qa:=C
else begin qa:=H; Sc:=''; end;
end;
i:=i+1;
end;
C : begin case Sa[i] of
'*' : qa:=E
else begin qa:=C; Sc:=Sc+Sa[i]; end;
end;
i:=i+1;
end;
E : begin case Sa[i] of
'*' : begin qa:=E;
Sc:=Sc+Sa[i];
end;
')' : qa:=S;
else begin qa:=C; Sc:=Sc+Sa[i];
end;
end;
i:=i+1;
end;
end;
until (i>length(Sa)) or (qa=S);
if qa<>S then edit2.Text:='Без комментариев' else edit2.Text:=Sc;
end;
|
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 4:59 |