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

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

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

Пусть описан тип 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;

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

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