Курсовая работа: Построение распознавателя для заданной грамматики и реализация его в виде программы которая проверяет
for i: =0 to ListBox1. Items. Count-1 do
if (not (ListBox1. Items. Strings [i] [1] in mn)) and
(Pos (ListBox1. Items. Strings [i] [1],s) =0) then s: =s+ListBox1. Items. Strings [i] [1] +' ';
if s<>'' then
begin
if length (s) >2 then MessageDlg ('Нетерминалы '+s+'непродуктивны. '+#13+'Все правила, их содержащие, будут удалены из грамматики. ',mtInformation, [mbOk],0)
else MessageDlg ('Нетерминал '+s+'непродуктивен. '+#13+'Все правила, его содержащие, будут удалены из грамматики. ',mtInformation, [mbOk],0);
Again1:
if ListBox1. Items. Count<>0 then
begin
for i: =0 to ListBox1. Items. Count-1 do
for j: =1 to length (ListBox1. Items. Strings [i]) do
if (ord (ListBox1. Items. Strings [i] [j]) in Neterminal) and
(not (ListBox1. Items. Strings [i] [j] in mn)) then
begin
ListBox1. Items. Delete (i);
goto Again1;
end;
end
else
begin
MessageDlg ('Все правила были удалены из грамматики. '+#13+'Введите новые правила. ',mtInformation, [mbOk],0);
BitBtn2. Enabled: =False;
exit;
end
end;
flag: =False;
for i: =0 to ListBox1. Items. Count-1 do
begin