Лабораторный практикум

доцента кафедры ИВТ Гродненского госуниверситета

канд. техн. наук Ливак Елены Николаевны

 

Лабораторная работа №7а

РЕКУРСИЯ

 

Методические указания к выполнению лабораторной работы

 

Необходимо

1)  разработать приложение, реализующее указанное задание;

2)  разработать систему тестов для верификации программы и провести тестирование.

 

Для самопроверки рекомендуется выполнить вариант 1.

 

Для контроля преподавателем необходимо выполнить предложенный преподавателем вариант задания, включающий две задачи.

Следует продемонстрировать преподавателю работу приложения на разработанной системе тестов.

Задание 7a.            Вариант 1.

 

Проверить, является ли введенный с клавиатуры текст правильной записью формулы, если синтаксически формула определена следующим образом:

     <формула>::=<цифра>|(<формула><знак><формула>)

     <знак>::= + | - | *

     <цифра>::= 0 | 1 | 2| 3 | 4 | 5 | 6 | 7 | 8 | 9

Вычислить значение правильно введенной формулы.

Использовать рекурсию.

 

 

Задание 7a.           Вариант 2.

 

Проверить, удовлетворяет ли структура введенного с клавиатуры текста следующему синтаксическому определению:

     <текст>::=<элемент>|(<элемент><текст>)

     <элемент>::= a | b | (<текст>) | [<текст>] | {<текст>}

Использовать рекурсию.

 

 

Задание 7a.           Вариант 3.

 

Ввести логическое выражение, проверить, удовлетворяет ли его структура следующему синтаксическому определению

     <логич_выражение>::=<True>|<False> |<операция>(<операнды>)

     <операция>::= not | and | or

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

      <операнд>::=<логич_выражение>

а также вычислить его значение.

Использовать рекурсию.