Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Лабораторная работа 3

Составить программу выполнения заданных преобразований арифметических выражений с применением деревьев. Преобразование выражения в дерево рекомендуется осуществлять одним из известных методов (Рутисхаузера, Дейкстры и др.). Операнды в обрабатываемых выражениях могут быть целого или вещественного типа (по усмотрению преподавателя). Задания могут быть переформулированы и для булевского типа. Преобразование выражения реализовать в виде набора подпрограмм. Программа должна вводить и печатать выражения в исходном (текстовом) виде, преобразовывать их в деревья, выполнять заданные преобразования путем обращения к подпрограммам и печатать результаты в виде дерева и в текстовом представлении.

Для некоторых задач приводятся примеры, поясняющие постановку задачи. В примерах слева от стрелки приводится фрагмент выражения до, а справа — после выполнения преобразования. Программа должна обрабатывать все вхождения сходных фрагментов в анализируемых выражениях, а не только те, что приведены в примерах.

Программу необходимо проверить на нескольких выражениях, среди которых должны быть выражения, не содержащие преобразуемых элементов, содержащие ровно один такой элемент или несколько элементов, подлежащих преобразованию, причем в «разных» местах дерева.

Вариант 24:

(a/b) * (c/d) -> (a*c)/(b*d)

Пример

Ввод:

(a/b) * (c/d) + x

Фрагмент результата:

Исходное выражение: (((a / b) * (c / d)) + x)
Количество преобразований: 1
Преобразованное выражение: (((a * c) / (b * d)) + x)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages