Лабораторная работа 24 по информатике (984087)
Текст из файла
Лабораторная работа №24 по курсу «Языки 11рограммироиания» (2007/08 уи. год) Составить программу выполнения заданных преобразований арифметических выражений с применением деревьев. Преобразование выражения в дерево рекомендуется осуществлять одним из известных методов (Рутисхаузера, Дейкстры и др.). Операнды в обрабатываемых выражениях могут быть целого нли вещественного типа (по усмотрению преподавателя). Задания могут быль переформулированы и для булевского типа. Преобразование выражения реализовать в виде набора подпрограмм.
Программа должна вводить и печатать выражения в исходном (текстовом) виде, преобразовывать их в деревья, выполнять заданные преобразования путем обращения к подпрограммам и печатать результаты в виде дерева и в текстовом представлении. Для некоторых задач приводятся примеры, поясняющие постановку задачи. В примерах слева от стрелки приводится фрагмент выражения до, а справа после выполнения преобразования. Программа должна обрабатывать все вхождения сходных фрагментов в анализируемых выражениях, а не только те, что приведены в примерах.
Программу проверить на нескольких выражениях, среди которых должны быть выражения, не содержащие преобразуемых элементов, содержащие ровно одни такой элемент или несколько элементов, подлежащих преобразованию, причем в «разныхк местах дерева. Варианты преобразований 1. Упростить выражения, выполнив сложение: 213 э5, ( — 26554)ай (215)ай. 2.
Упростить выражения, выполнив вычитание: 3 .5-~-.2, 565-3 — 265. 3. Упростить выражения, выполнив умножение: 4. Упростить выражения, выполнив деление: 4: а~2-э 2 э а. 5. Упростить выражения, выполнить возведение чисел в степень с целым показателем: 2 3- 8. 6. Упростить выражения, выполнив приведение подобных членов. 7. Редуцировать выражения, заменив операщ1ю умножения переменной на целое число п на сумму и слагаемых: аа3-эай и+а 8. Редуцировать выражения, заменив онерацивз возведения переменнои в целую степень и на произведение и слагаемых: а, 3 в иэаэи.
9. Умножение переменной на сумму заменить на сумму произведений. 10. Умножение переменной на разность заменить на разность произведений. 11. Вынести общие сомножители (переменные и константы) из суммы. 12. Вынести общие сомножители (переменные и константы) из разности. 13. Упростить выражения, убрав из него все произведения, в которых в качестве сомножителя используется нуль. 14.
Убрать из выражоний все слагаемые, равные нулю. 15. Убрать из выражений все сомножители, равные единице, 16. Убрать из частных все делители, равные единице. 17. Перемножить стопепи с одинаковыми основаниями (в простейшем случае можно рассматривать основания, состоящие из одной переменной или константы): а 2 агг Ь --» а (2+ Й). 18. Вынести из произведений упарные минусы; па( — Ь)а3 — — (ггаЬа3), аа( — Ь)в4ь( — 5) — г>гЬа4эб. 19.
Вынести из частных унарные минусы: ав(--Ь)а3 -~ .(акЬа3), ав(-Ь)ь4в(-5) -»пкЬа4в5. 20. Упростить сложные (многоэтажные) дроби; (гг/1>)/г — гг/(Ь а с), г>,Г(Ьггс) — (г»/Ь) ь с. 21. Заменить вычитание на сложение с протггвоположным числом, т.
е. на ело>кение гл унарный минус: а — Ь а с. — » а+ (-(Ь а с)). 22. Выполнить сложение и вычитание дробей: ггг'Ь -Ф- с/г1 — » (а, в г) + Ь э с) г'(Ь ь »4), 23. Упростить дробь, сократив в гислителе и знаменателе общие переменные и константы: (а а Ь а 3) г(3 а Ь в с) -» оггс. г>,Г(о а Ь) -» 1>гЬ. 24. Перемножить дроби; (а>ГЬ) * (сгг г1) — » (а, э с) гг(Ь э гу) . 25.
Заменить степень с суммой в показателе на щюизведение степеней: а (Ьй с) -»а Ьэгт с. 26. Заменить степень с разностью в показателе на частное степеней: а (Ь вЂ” с) — » а Ьгггг с. 27. Заменить дробь со степенью в знаменателе произведением на степень с отрицательным показателем: а,1(Ь г.) — » а а Ь ( — г:). 28. Поменять местами операндьг у операций сложения н умножения, Учитывать приоритет (спачала выполняется умножение, потом -- сложение) и ассоциативность (операцин сложения и умножения лсвоассоциативны) операций.
29. Выполнить замену переменной на выражение: пример замены; а, — » г + 4 ай 2аа - г+4+2а(>4 4). 30. Упорядочить соседние операнды в операциях сложения и умножения, вынося вперед константы. Сохранить порядок следования констант и переменных: а 1 3 + Ь Ь п ь с 4 2 — -» 3 .~- 2 4 а, 1.
Ь 4 а, » с. 31. Лексикографически упорядочить соседние операнды операции сложения и умноткения: 2+б+с+а,— аеб 2+а+Ь+с — аеб. 32. Подсчитать количество слагаемых или сомножителей на )с-том уровне дерева выражения. 33. Даны два выражения. Подсчитать количество вхождений первого выражения во вто1юе в качестве подвыражения. Учесть коммутативность операций сложения и умножения.
34. Подсчитать число уровней дерева выражения. 35. Подсчитать количество операндов (переменных и констант) в выражении. 36. Подсчитать количество переменных, используемых в данном выражении. 37. Подсчитать количество целых констант, используемых в выражении. 38. Подсчитать коли гество операций в данном выражении полагая, что все операции являются бннарнымн.
39. Построить новое выражение копию исходного. 40. Проверить, идентичны лн два выражения, учитывая ьоммутативность сложения и умножения, а также возможность раскрытия скобок. 41. Вычислить значение многочлена от х при заданном х. 42. Провернтть является ли выражение многочленом от переменной х. 43. По заданному многочлену от з. построить выражение, являющееся производной данного многочлсна. 44. Проверить, упорядочены ли слагаемые заданного многочлена по степеням х в порядке возрастания или убывания. 45. Напечатать коэффициенты при степенях х в заданном многочлене в порядке возрастания и убывания степеней.
В случае отсутствия какой-либо степени печатать О. Слагаемые в исходном многочлене могут быть неупорядочены яо степеням х. 46. В многочлене и 7(х) =- ~ аих' =о выполнить замену аи на число 1 и на выражение а, — 1. 47. Заданы два многочлена. Построить новые многочлены, представляющие собой сумму и разность данных, 48. Даны два многочлена ) (х) =- ~~~ аит.' и д(х) =- ~~~ Ь,х'. Построить новый многочлен Ь(а;) — -- ~с,х', =о где, с, = твх(а,„б,,), с, = тт(а,„б,), с, = а,, Ь, и с,, = а,/Ь, 'и и 49. Дан многочлен )'(х) .— 1 а,х'.
ПостРоить многочлен д(т) —.. 2 аи,х'. -о =о 50. Умножить многочлен от х на число Е 51. Поделить многочлен от х на число Й. 52. Умножить многочлен от:г на переменную а. 3 53. Даны ьлногочллилы 7(х) —. 2 о,,х' и д(х) — 'Л ' 16хгч Умножить многочлен 7(х) на многочлен д(х). =о 54. Даны многочлены )'(х) .—.. 2 а,х' н д(:л:) =. х ~Ь,,х'. Разделить мнол.очлен )'(х) на многочлен д(т) Г(х) .— 2 з х+ Ь ' х,д(х) —... х — 2+ Ь, Дх) .—.. 3 е х.д(о;) —. а+ и — ~ (3 э х)/(и+ х). 55. Разложить на множители разность квадратов а 2 — Ь 2. ~(а- 6)*(о.66).
56. Свернуть множители в разность квадратов, 57. Разложить на множители квадрат суммы (о+6) 2-.'о" 2+2ааеЬ1 Ь 2 58. Свернуть множители в квадрат суммы. 59, Разложить на множители квадрат разности (а--6) 2--~а 2 -2ааа69 6 2. 60. Свернуть множители в квадрат разпостлл. 61. Разложить на множллтелн сумму кубов. а 3+Ь 3 — ~ (о+6) а(о, 2 — ааЬ+6 2). 62. Свернуть множители в сумму кубов, 63.
Разложить на множители разность кубов. а "3. Ь" 3--~(а- Ь)а(а 2+а.'63 Ь 2). 64. Свернуть множители в разность кубов. 65, Разложить на множители квадратный трехчлен. 66. Преобразовать многочлен в стандартный вид, располагая слагаемые заданного многочлена по степеням х в порядке возрастания или убывания /(х) .— ~~ а,х'. ~=0 67. Преобразовать бинарное дерево в н-арнос (заменяя соответствующие деревья операций сложения и умножения) 68. Преобразовать п-арное дерево в бинарное (заменяя соответствующие деревья операций сложения и умножения) 99"'.
Выполнить полное дифференцирование выражения. .
Характеристики
Тип файла DJVU
Этот формат был создан для хранения отсканированных страниц книг в большом количестве. DJVU отлично справился с поставленной задачей, но увеличение места на всех устройствах позволили использовать вместо этого формата всё тот же PDF, хоть PDF занимает заметно больше места.
Даже здесь на студизбе мы конвертируем все файлы DJVU в PDF, чтобы Вам не пришлось думать о том, какой программой открыть ту или иную книгу.