![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
antonioSP |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите решить задачу на рекурсию. В строке записанно выражение следующего вида:
<формула>::=<индетификатор>/(<формула><знак><формула>) <знак>::= +/-/* <индетификатор>::=<буква>/<буква><цифра> <цифра>::=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; |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 20:43 |