Главная /
Основы программирования - обучения основам /
Рассмотрим следующую реализацию функции onMul, которая исполняет команду умножения в проекте «Стековый калькулятор»: static void onMul() { double y, x; assert(st_size() >= 2); // утв: глубина стека // не меньше двух y = st_pop(); x = st_pop(); st_push(
Рассмотрим следующую реализацию функции onMul
,
которая исполняет команду умножения в проекте
«Стековый калькулятор»:
static void onMul() {
double y, x;
assert(st_size() >= 2); // утв: глубина стека
// не меньше двух
y = st_pop();
x = st_pop();
st_push(x * y);
display();
}
Правильно ли здесь используется конструкция «утверждение»,
которая в Си реализуется функцией assert
?
вопрос
Правильный ответ:
Правильно, поскольку выполнение любой бинарной операции,
в частности, умножения, возможно лишь, когда в стеке
не меньше двух элементов. Следовательно,
выполнение программы должно быть прекращено.
Неправильно, поскольку прекращение выполнения программы
при невыполнении утверждения должно происходить в результате
ошибки в программе, а не из-за некорректных входных данных.
Сложность вопроса
92
Сложность курса: Основы программирования - обучения основам
50
Оценить вопрос
Комментарии:
Аноним
Это очень элементарный тест intuit.
22 ноя 2016
Другие ответы на вопросы из темы программирование интуит.
- # Бинарное дерево называется полным, если длины всех путей к внешним (нулевым) вершинам одинаковы. (Это означает, что у каждой нетерминальной вершины ровно два сына, и длины всех путей от корня к терминальным вершинам одинаковы и равны высоте дерева.) Высотой дерева называется число вершин в пути максимальной длины от корня к некоторой терминальной вершине, включая первую и последнюю вершины пути. Сколько вершин в полном бинарном дереве высоты 10?
- # Что больше в современных архитектурах: объем физической памяти или объем виртуальной памяти?
- # Что означает описание "double (*a)[10]"?
- # Указать, чему будет равно значение переменной n в результате выполнения следующего фрагмента программы: int n = 0; int i = 2; switch (i) { case 2: n += 2; case 4: n += 2; break; default: n += 6; }
- # Пусть описан тип R2Vector, представляющий вектор на плоскости с вещественными координатами, typedef struct { double x; double y; } R2Vector; также описаны три переменные u, v и w типа вектор и вещественная переменная s: R2Vector u, v, w; double s; при этом переменная u содержат конкретный вектор единичной длины, а вектор v получается из u вращением на 30 градусов по часовой стрелке. Указать, чему будет приблизительно равно значение вещественной переменной s в результате выполнения следующего фрагмента программы: w.x = (-u.y); w.y = u.x; s = v.x * w.x + v.y * w.y;