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

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

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

Какое утверждение является инвариантом для следующегофрагмента программы (т.е. из справедливости утверждениядо выполнения фрагмента программы вытекает справедливость утвержденияпосле выполнения)? Предполагается, что n не меньше k.Восклицательным знаком обозначается операция вычисления факториала.
цел n, k, c;. . .c := c * (n + 1);c := c/(n + 1 - k);n := n + 1;

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

Варианты ответа
Утверждение c = (k)! / (n! (n-k)!).
Утверждение c = (n+k)! / (n! (n-k)!).
Утверждение c = n! / (k! (n-k)!). (Верный ответ)
Похожие вопросы
Какое утверждение является инвариантом для следующегофрагмента программы (т.е. из справедливости утверждениядо выполнения фрагмента программы вытекает справедливость утвержденияпосле выполнения)? Предполагается, что n > 0.
вещ r, x; цел n;. . .r := -r * x;r := r * n / (n + 1);n := n + 1;
Какое утверждение является инвариантом для следующегофрагмента программы (т.е. из справедливости утверждениядо выполнения фрагмента программы вытекает справедливость утвержденияпосле выполнения)? Предполагается, что n неотрицательно.
вещ r, x; цел n;. . .r := r * x * x;r := r / ((n + 1) * (n + 2));n := n + 2;
Рассмотрим следующий фрагмент программы, вычисляющейчастное q и остаток r от деленияцелых чисел a, b:
  дано: целые числа a >= 0, b > 0  цел q, r, e, m;  q := 0; r := a; e := 1; m := b  цикл пока r >= b  | если 2*m <= r  | | то e := e*2; m := m*2;  | иначе если m > r  | | то e := e/2; m := m/2;  | иначе  | | утверждение: m <= r  и  r < 2*m  | | q := q + e; r := r - m;  | конец если  конец цикла  // q и r -- частное и остаток от деления a на b
Какое условие является инвариантом цикла?
Пусть A = A(x) —некоторое условие, зависящее только отзначения переменной x.Указать, чему может быть равно значение переменной yв результате выполнения следующего фрагмента программы:
x := 1;y := 1;цикл пока A(x)| . . .| если y < 0| | то| |   x := 2;| |   y := 10;| | иначе| |   x := 1;| |   y := 20;| конец есликонец цикла
Пусть описан тип 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представляет короткое целое число со знакомв диапазоне -128...127 и занимает 1 байт.Чему равно значение x после выполнения приведенногониже фрагмента программы?
x := 30;x := x * 5;
Целочисленная переменная xпредставляет короткое целое число со знакомв диапазоне -128...127 и занимает 1 байт.Чему равно значение x после выполнения приведенногониже фрагмента программы?
x := 120;x := x + 40;
Целочисленная переменная xпредставляет короткое целое число со знакомв диапазоне -32768...32767 и занимает 2 байта.Чему равно значение x после выполнения приведенногониже фрагмента программы?
x := 32760;x := x + 10;
Обозначим через push и pop команды добавленияэлемента в стек и извлечения элемента из стека.Рассмотрим фрагмент программы на псевдокоде:
    push x;    push y;    pop x;    pop y;
Что происходит с переменными x и y в результатеего выполнения?
Пусть описан тип 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;