Рассмотрим следующую реализацию функции onMul,которая исполняет команду умножения в проекте«Стековый калькулятор»:static void onMul() { double y, x; assert(st_size() >= 2); // утв: глубина стека // не меньше двух y = st_pop(); x = st_pop(); st_push(x * y); display();}
Правильно ли здесь используется конструкция «утверждение»,которая в Си реализуется функцией assert?
(Отметьте один правильный вариант ответа.)
Варианты ответа
Правильно, поскольку выполнение любой бинарной операции, в частности, умножения, возможно лишь, когда в стеке не меньше двух элементов. Следовательно, выполнение программы должно быть прекращено.
Неправильно, поскольку прекращение выполнения программы при невыполнении утверждения должно происходить в результате ошибки в программе, а не из-за некорректных входных данных. (Верный ответ)