Задания на зачет 2011
Реализовать грамматики и интерпретаторы следующих языков
1. Реализовать грамматику для систем линейных уравнений вида
2.5 * x + 3 * y = 7.1; - x - 3.4 * y = 3.2
Реализовать интерпретатор, выводящий ответ
2. Реализовать грамматику для многочленов, заданных в виде
2*x^2+3.1*x-2.4;-3*x^3+4*x;x+1
Написать интерпретатор, вычисляющий их сумму
3. Разработать грамматику логических выражений, содержащую T (True), F (False), знаки отношения и операции and, or. Написать интерпретатор, вычисляющий данное логическое выражение
4. Разработать грамматику, позволяющую вычислять определители матриц. Определитель записывать в виде: |[1,2.5,3],[4,5.6,6],[7.3,8.66,9]| Написать интерпретатор, вычисляющий записанный определитель
5. Усовершенствовать грамматику выражений, добавив в нее возможность использовать стандартные функции произвольного количества аргументов. Должны поддерживаться функции sqrt, abs, power, min(произвольное количество), max(произвольное количество) Написать интерпретатор, вычисляющий данное выражение с функциями.
6. Реализовать грамматику для множеств Паскаля в виде [1,2..5,10] с операциями + и * Написать интерпретатор, вычисляющий выражение с множествами вида [1,2..5,10] + [3..7] или [1,2..5,10] * [3..7]
7. Реализовать численное дифференцирование для выражений, включающих умножение, деление, сложение, вычитание, скобки, функции sin, cos, ln
8. Реализовать язык программирования, включающий присваивание, вывод, целые константы, переменные, цикл for, составной оператор
9. Разработать грамматику, позволяющую вычислять сумму двух матриц, задаваемых в виде:
((1,2,3),(4,5,6))+((7,8,9),(1,3,5))
В случае неправильных размеров матриц должно выдаваться сообщение об ошибке.
10. Разработать грамматику языка, определяющего три плоскости
2x+13y-4z+1=0;3x-y=0;4x+3z-1=0;
и написать интерпретатор, определяющий точку их пересечения или выдающий точку их пересечения или информацию о неоднозначном (отсутствующем) решении
11. Разработать грамматику языка, определяющего список точек в пространстве
(2,3,-1), (4,-5,6), (1,1,3)
Написать интерпретатор, определяющий расстояния от каждой точки до начала координат.
12. Разработать грамматику языка, определяющего уравнение прямой и список точек:
x-2y+3=0; (2,1),(3,4),(5,-1)
Реализовать интерпретатор, находящий расстояния от каждой из заданных точек до указанной прямой.
13. Разработать грамматику языка, определяющего список троек точек на плоскости
{(2,1),(3,4),(5,-1)},{(4,6),(2,6),(7,-3)},{(-2,2),(2,5),(1,-1)}
Реализовать интерпретатор, вычисляющий площади треугольников, построенных на этих точках
14. Разработать грамматику языка, задающего однородное дифференциальное уравнение 2 порядка вида
y+12y-23=0
Реализовать интерпретатор, выдающий общее решение этого ДУ
15.