Что значит "Построить синтаксический анализатор для..."?
В общем недавно на фрилансе наткнулся на такой вот вид задач:
Естественно возникли вопросы. Заказчик написал: "Решить программу, файл с заданием прикреплен. Язык программирования любой."
Что он имел в виду? Я с такими задачами сталкиваюсь впервые и могу только догадываться про что идёт речь. Достаточно ли здесь просто определить классы для каждой переменной как тут, или нет?
class Rectangle:
def __init__(self, topLeft, topRight, bottomLeft, bottomRight):
self.topLeft = topLeft
self.topRight = topRight
self.bottomLeft = bottomLeft
self.bottomRight = bottomRight
class Vertex:
def __init__(self, x, y):
self.x = x
self.y = y
class Trapezoid(Rectangle):
pass
if __name__ == "__main__":
#test
point1 = Vertex(-1, 1)
point2 = Vertex(1, 1)
point3 = Vertex(-1, -1)
point4 = Vertex(1, -1)
rect = Rectangle(point1, point2, point3, point4)
Ответы (1 шт):
Нет, недостаточно. Синтаксический анализатор должен разобрать строку и создать объекты классов, которые вы написали. Т.е. входные данные строка - {{{1.0} {0.0}} {{1.0} {1.0}} {{0.0} {1.0}} {{0.0} {0.0}}}. В результате в программе создать объект класса Rectangle, содержащий 4 объекта класса Vertex, в свою очередь содержащих 2 объекта класса число с точкой, в свою очередь содержащих 2 объекта класса целое без знака.
Причем при создании объекта нужно проверять углы - если 90 градусов, то создавать прямоугольник, если нет - то трапецию. А в остальном классы прямоугольника и трапеции одинаковые.