Проверка входных данных подпрограмм и тестирование
Введение
Рассмотрим задачу:
Описать процедуру Mean(X, Y, AMean, GMean), вычисляющую среднее арифметическое AMean = (X+Y)/2 и среднее геометрическое GMean = (X·Y)1/2 двух положительных чисел X и Y (X и Y — входные, AMean и GMean — выходные параметры вещественного типа).
Проверка входных данных: Assert
Обратите внимание, что положительность параметров X
и Y
нужна для вычисления среднего геометрического, которое происходит внутри процедуры Mean
. Никто не гарантирует, что на вход процедуре будут передаваться только корректные входные данные, но правильная работа самой процедуры — забота разработчика этой процедуры. Он должен «обезопасить» себя от неверных входных данных, поэтому их проверка должна находиться именно внутри процедуры Mean
.
Мы знаем, как проверять входные данные: можно использовать оператор Assert
. Рекомендуется использовать оператор Assert
для каждого параметра отдельно. То есть в данном примере должно быть два оператора:
Assert(x > 0);
Assert(y > 0);
а не
Assert((x > 0) and (y > 0));