<формула>::=<индетификатор>/(<формула><знак><формула>)
<знак>::= +/-/*
<индетификатор>::=<буква>/<буква><цифра>
<цифра>::=0/1/2/3/4/5/6/7/8/9
Проверить правильность сочетания.
Не получается процедура проверки на истинность, может кто подскажет как это сделать. Вот мои наработки процедура ввода (скорее всего и там косяк есть).
Код
procedure TForm1.Button1Click(Sender: TObject);
type
tl=(form,buk,sko,skz,znak,cif);
var a:string[20];
i:integer;
begin
i:=1;
function read(var s:string; var i:integer):tl;
begin
if s[i] in ['A'..'z'] then result:=buk;
if s[i] in ['0'..'9'] then
result:=cif
else
case s[i] of
'+':result:=znak;
'-':result:=znak;
'(':result:=sko;
')':result:=skz;
else
result:=err;
end;
i:=i+1;
end;
end;