Начало здесь. Для уменьшения объёма повторяющегося кода в классах областей, одинаковый функционал необходимо реализовать в одном классе и наследовать от него соответствующие классы областей. Для каждой области следует предусмотреть проверку принадлежности пары входных параметров ([t, p] (за исключением Области 4), [p, h], [p, s]) данной области. Методы для определения принадлежности пары входных параметров данной области, которые должны быть переопределены во всех дочерних классах, помещены в класс ParamsIn. Там же будет находится объект класса SaturationCurve, который позволяет определить границы области 4 и границу между областями 1 и 2. Вода и водяной пар могут находится в однофазном состоянии (вода, Область 1, или перегретый пар, Область 2) и в двухфазном состоянии (влажный пар, Область 4). Класс для Области 4 будет включать в себя классы для Области 1 (Region1) и Области 2 (Region2). Так как однофазных областей две, то для них предусмотрен родительский класс Region в котор