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

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

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

Всегда ли равны выражения
    (x - y) + (y * 2.0),    x + y
для произвольных вещественных переменных x, yтипа double?

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

Варианты ответа
Да, всегда равны.
Нет, могут быть неравными. (Верный ответ)
Похожие вопросы
Всегда ли равны выражения
    (x + y) + y,    x + (y * 2.0)
для произвольных вещественных переменных x, yтипа double?
Всегда ли равны выражения
    (x + y) + z,    x + (y + z)
для произвольных вещественных переменных x, y, zтипа double?
Пусть описан тип 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 и 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?
Рассмотрим два способа представления матрицы размера4×4. В первом случае используется массив из четырехэлементов типа «указатель на double»:
    double *a[4];
при этом элемент a[i] содержит адресначала i-й строки матрицы.Во втором случае используется линейный массив из шестнадцатиэлементов:
    double a[16];
В первом случае обращение к элементу матрицы с индексамиi, j осуществляется с помощью выражения
    a[i][j],
во втором — с помощью выражения
    a[4*i + j].
Есть ли существенная разница в эффективности программыв первом и втором случаях при использовании оптимизирующегокомпилятора?
Пусть описан тип 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 извлекает квадратный корень из вещественногочисла).
Пусть x и y — вещественныепеременные типа double.Может ли произойти прерывание из-за деления на нольпри вычислении логического выражения
y > 0.1  и  x / y >= 1.0?
Рассмотрим два способа представления матрицы размера4×4. В первом случае используется массив из четырехэлементов типа «массив из четырех элементов»:
    double a[4][4];
Во втором случае используется массив из четырехэлементов типа «указатель на double»:
    double *a[4];
при этом элемент a[i] содержит адресначала i-й строки матрицы.В обоих случаях обращение к элементу матрицы с индексамиi, j осуществляется с помощью выражения
    a[i][j].
Есть ли существенная разница в эффективности программыв первом и втором случаях при использовании оптимизирующегокомпилятора?
Пусть значения целочисленных переменных x и yравны 20 и 10 соответственно.Указать значение логического выражения
    y != 0 и x/y <= 1
Пусть значения целочисленных переменных x и yравны 1 и 2 соответственно.Указать значение логического выражения
    (x >= 1 и y < 0) или (x <= 1 и y > 0)