Премини към съдържанието

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

rusrusrus

Помощ за рекурсивна програма

Препоръчан отговор


Здравейте, сетих се, че бях изпуснал някои задачки от урока за рекурсия, тъй като не можех да се справя с тях.Сега се сетих за една от тях и тя е следната : 

 Да се напише програма, която въвежда от клавиатурата без грешка булев израз от вида

<булев_израз> ::= t|f|

  <операция>(<операнди>)

<операция> ::= n | a | o

<операнди> ::= <операнд>|

<операнд>, <операнди>

<операнд> ::= <булев_израз>,

където t и f означават истина и лъжа съответно, n има само един операнд, а a и o могат да имат произволен брой операнди и означават съответно логическо отрицание, конюнкция и дизюнкция. Програмата намира и извежда стойността на булевия израз. Да се напише програма, която въвежда от клавиатурата без грешка булев израз от вида

<булев_израз> ::= t|f|

  <операция>(<операнди>)

<операция> ::= n | a | o

<операнди> ::= <операнд>|

<операнд>, <операнди>

<операнд> ::= <булев_израз>,

където t и f означават истина и лъжа съответно, n има само един операнд, а a и o могат да имат произволен брой операнди и означават съответно логическо отрицание, конюнкция и дизюнкция. Програмата намира и извежда стойността на булевия израз.

Ще се радвам, ако някой може да ми помогне, тъй като като цяло тези задачки с въвеждане и пресмятане изобщо не ги усвоих добре, но като гледам решените примерни задачи мога да ги напиша.Тази обаче ми идва сложничка.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ми това е граматика. Трябва да напишеш парсър за тази граматика. Както и да напишеш алгоритъм, който обхожда дървото и пресмята резултатът. Последното ще стане най-лесно с обратен полски запис...

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.