Рассмотрим следующую реализацию функции onSqrt,которая исполняет команду извлечения квадратного корня в проекте«Стековый калькулятор»:static void onSqrt() { double x; if (st_empty()) { printf("Stack empty.\n"); return; } x = st_pop(); assert(x >= 0.0); // утв: x неотрицательно st_push(sqrt(x)); display();}
Правильно ли здесь используется конструкция «утверждение»,которая в Си реализуется функцией assert?
(Отметьте один правильный вариант ответа.)
Варианты ответа
Неправильно, поскольку прекращение выполнения программы при невыполнении утверждения должно происходить в результате ошибки в программе, а не из-за некорректных входных данных. (Верный ответ)
Правильно, поскольку невозможно извлечь квадратный корень из отрицательного числа. Следовательно, если x < 0, то выполнение программы должно быть прекращено.