База ответов ИНТУИТ

Основы программирования

<<- Назад к вопросам

Выражение содержит числа, переменную x и знаки четырехарифметических операций (переменная x можетиспользоваться многократно). Выражение можно преобразовывать,пользуясь известными свойствами арифметических операций.Значение переменной x сообщается только после того,как выражение преобразовано в удобную для вычисления форму.Какой максимальной глубины стека достаточно, чтобы вычислитьзначение любого такого выражения с помощью стековогокалькулятора (записывать промежуточные результаты на бумагезапрещено)?

(Отметьте один правильный вариант ответа.)

Варианты ответа
Достаточно стека максимальной глубины 4.
Достаточно стека максимальной глубины 5.
Достаточно стека максимальной глубины 2.
Достаточно стека максимальной глубины 3. (Верный ответ)
Похожие вопросы
Выражение содержит числа, переменную x и знаки трехарифметических операций +, -, × (нет операции деления);переменная x может использоваться многократно.Выражение можно преобразовывать, пользуясь известнымисвойствами арифметических операций. Значение переменной xсообщается только после того, как выражение преобразовано вудобную для вычисления форму. Какой максимальной глубиныстека достаточно, чтобы вычислить значение любого такоговыражения с помощью стекового калькулятора (записыватьпромежуточные результаты на бумаге запрещено)?
Выражение содержит числа, переменные, круглые скобки и знакичетырех арифметических операций. Его можнопреобразовывать, пользуясь известными свойствамиарифметических операций. Значения переменных сообщаютсятолько после того, как выражение преобразовано в удобную длявычисления форму. Какой максимальной глубины стека достаточно,чтобы вычислить значение любого такого выражения с помощьюстекового калькулятора (записывать промежуточные результатына бумаге запрещено)?
Пусть описан тип R2Vector, представляющий векторна плоскости с вещественными координатами:
    typedef struct {        double x;        double y;    } R2Vector;
также описаны три переменные u, v иw типа вектор и вещественная переменная s:
    R2Vector u, v, w;    double s;
при этом известно, что переменные u и vсодержат два конкретныхвектора единичной длины.Пусть в результате выполнения следующего фрагмента программызначение переменной s приблизительно равно 0.7071,т.е. корню из двух, деленному пополам:
    w.x = (-u.y); w.y = u.x;    s = v.x * w.x + v.y * w.y;    // s == 0.7071
На какой угол надо повернуть вектор u,чтобы получить вектор v?
Пусть описан тип 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;
Пусть описан тип R2Vector, представляющий векторна плоскости с вещественными координатами:
    typedef struct {        double x;        double y;    } R2Vector;
также описаны три переменные u, v и wтипа вектор и вещественная переменная s:
    R2Vector u, v, w;    double s;
при этом переменная u содержат конкретный векторединичной длины. Указать, чему будетприблизительно равно значение переменной s врезультате выполнения следующего фрагмента программы:
    v.x = (-u.y);    v.y = u.x;    w.x = u.x + v.x;    w.y = u.y + v.y;    s = sqrt(w.x * w.x + w.y * w.y);
(функция sqrt извлекает квадратный корень из вещественногочисла).
Пусть A = A(x) —некоторое условие, зависящее только отзначения переменной x.Указать, чему может быть равно значение переменной yв результате выполнения следующего фрагмента программы:
x := 1;y := 1;цикл пока A(x)| . . .| если y < 0| | то| |   x := 2;| |   y := 10;| | иначе| |   x := 1;| |   y := 20;| конец есликонец цикла
Рассмотрим два способа представления матрицы размера4×4. В первом случае используется массив из четырехэлементов типа «указатель на double»:
    double *a[4];
при этом элемент a[i] содержит адресначала i-й строки матрицы.Во втором случае используется линейный массив из шестнадцатиэлементов:
    double a[16];
В первом случае обращение к элементу матрицы с индексамиi, j осуществляется с помощью выражения
    a[i][j],
во втором — с помощью выражения
    a[4*i + j].
Есть ли существенная разница в эффективности программыв первом и втором случаях при использовании оптимизирующегокомпилятора?
Обозначим через push и pop команды добавленияэлемента в стек и извлечения элемента из стека.Рассмотрим фрагмент программы на псевдокоде:
    push x;    push y;    pop x;    pop y;
Что происходит с переменными x и y в результатеего выполнения?
Целочисленная переменная xпредставляет короткое целое число со знакомв диапазоне -128...127 и занимает 1 байт.Чему равно значение x после выполнения приведенногониже фрагмента программы?
x := 120;x := x + 40;
Целочисленная переменная xпредставляет короткое целое число со знакомв диапазоне -128...127 и занимает 1 байт.Чему равно значение x после выполнения приведенногониже фрагмента программы?
x := 30;x := x * 5;