CriteriaResult calculateMark(double visiting, double tasks, double labs, double knowledge, double canRead) { // определение степени принадлежности к какой-либо оценке var two = toTwoMark(visiting, tasks); var three = toThreeMark(visiting, tasks, labs, knowledge, canRead); var four = toFourMark(visiting, tasks, labs, knowledge, canRead); var five = toFiveMark(visiting, tasks, labs, knowledge, canRead); // модификация функций принадлежности для оценок по методу минимума var twoFunc = twoMark.Modify(Function.ModifyMethod.Minimum, two); var threeFunc = threeMark.Modify(Function.ModifyMethod.Minimum, three); var fourFunc = fourMark.Modify(Function.ModifyMethod.Minimum, four); var fiveFunc = fiveMark.Modify(Function.ModifyMethod.Minimum, five); // композиция функций оценок var super = Function.Superposition((Function.CombinationType)superposCombo.SelectedItem, twoFunc, threeFunc, fourFunc, fiveFunc); // скаляризация результата - нахождение максимума функции var value = super.Scalarize((Function.ScalarMethod)scalarCombo.SelectedItem); // возвращение оценки return(mark.Calculate(value)); }
public CriteriaResult(Function func, double value) { Name = func.Name; Value = value; Func = func; }