unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Button3: TButton;
Label3: TLabel;
Edit1: TEdit;
Label5: TLabel;
Button4: TButton;
Label1: TLabel;
Edit2: TEdit;
Button1: TButton;
Label2: TLabel;
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject;
var Key: Char);
procedure Edit2KeyPress(Sender: TObject;
var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function f(zustand: integer; x:
string):integer;
function g(zustand: integer; x:
string):
string;
var
Form1: TForm1;
zustand,folgezustand,len,len2: integer;
eingabe:
string;
zeichen:
array of string;
implementation
{$R *.dfm}
function f(zustand:integer; x:
string):integer;
begin
Case zustand
of
0:
if x=zeichen[1]
then f:=1
else f:=0;
1:
if x=zeichen[2]
then f:=2
else f:=0;
2:
if x=zeichen[3]
then f:=3
else f:=0;
3:
if x=zeichen[4]
then f:=4
else f:=0;
4:
if x=zeichen[5]
then f:=5
else f:=0;
5:
if x=zeichen[6]
then f:=6
else f:=0;
6:
if x=zeichen[7]
then f:=6
else f:=0;
end;
end;
function g(zustand:integer; x:
string):
string;
begin
Case zustand
of
0:g:='
Zustand: Startzustand 0';
1:g:='
Zustand: 1';
2:g:='
Zustand: 2';
3:g:='
Zustand: 3';
4:g:='
Zustand: 4';
5:g:='
Zustand: 5';
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
label1.caption:='
';
label3.caption:='
Zustand: Startzustand z0';
Edit1.text:='
';
zustand:=0;
end;
procedure TForm1.Button4Click(Sender: TObject);
var i:integer;
begin
len:=length(Edit1.Text);
zustand:=0;
eingabe:=Edit1.Text;
for i:= 1
to len
do
begin
eingabe:=Copy(Edit1.Text,i,1);
folgezustand:=f(zustand,eingabe);
zustand:=folgezustand;
label3.caption:=g(zustand,eingabe);
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if (key < '
a')
or (Key > '
z')
then
begin
key:=Chr(27);
ShowMessage('
Bitte geben sie einen Buchstaben von a bis z oder ein @-Zeichen ein')
end;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject;
var Key: Char);
begin
if (key < '
a')
or (Key > '
z')
then
begin
key:=Chr(27);
ShowMessage('
Bitte geben sie einen Buchstaben von a bis z oder ein @-Zeichen ein')
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var j:integer;
begin
len2:=length(Edit2.Text);
for j:= 1
to len2
do
begin
zeichen[j]:=Copy(Edit2.Text,j,1)
end;
end;
end.