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

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

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

Функция F последовательности цифр в десятичной записи числаn ставит в соответствие единицу, если n делится на 7,и ноль в противном случае. Какая из приведенныхниже функций на последовательности десятичных цифр числа nявляется индуктивным расширением функции F?

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

Варианты ответа
Пара (последняя цифра числа n, сумма цифр числа n).
Остаток от деления числа n на 231. (Верный ответ)
Пара (остаток от деления числа n на 100, остаток от деления числа n на 11).
Похожие вопросы
Функция F последовательности цифр в десятичной записи числаn ставит в соответствие единицу, если n делится на 14,и ноль в противном случае. Какая из приведенныхниже функций на последовательности десятичных цифр числа nявляется индуктивным расширением функции F?
Функция F последовательности цифр в десятичной записи числаn ставит в соответствие единицу, если n делится на 15,и ноль в противном случае. Какая из приведенныхниже функций на последовательности десятичных цифр числа nявляется индуктивным расширением функции F?
На вход следующей программе передаетсяпоследовательность целых чисел в диапазоне от 0 до 9,представляющая цифры десятичной записи целого числа n.Программа определяет, делится ли число n на 75(символом процента '%' обозначается операциянахождения остатка от деления первого числа на второе):
    цел последовательность p; // Цифры числа n    цел s, r, d;    . . .    s := 0; r := 0;    встать в начало последовательности p;    цикл пока есть непрочитанные элементы в посл-ти p    | прочесть очередной элемент посл-ти p в (вых: d);    | s := s + d;             // s -- сумма цифр    | r := (r % 10) * 10 + d; // r -- число из 2-х    конец цикла               //      последних цифр    ответ := (          // n делится на 75, когда        s % 3 == 0  и   //     s делится на 3  и        r % 25 == 0     //     r делится на 25    );
В ней используются три вспомогательные переменныеs, r, d. Можно ли упроститьпрограмму, использовав меньшее количество вспомогательныхпеременных? (Последовательность разрешается читать только один раз.)
Следующий фрагмент программы вычисляет сумму четырехпоследних элементов последовательности p:
    вещ последовательность p;    вещ x, y, z, t;    . . .    x := 0.0; y := 0.0; z := 0.0; t := 0.0;    встать в начало последовательности p;    цикл пока есть непрочитанные элементы в посл-ти p    | x := y; y := z; z := t;    | прочесть очередной элемент посл-ти p в (вых: t);    конец цикла    ответ := x + y + z + t;
В нем используются четыре вспомогательные переменныеx, y, z, t. Можно ли упроститьпрограмму, использовав меньшее количество вспомогательныхпеременных? (Последовательность разрешается читать только один раз.)
Рассмотрим следующий фрагмент программы, вычисляющейчастное 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
Какое условие является инвариантом цикла?
Прототип функции, которая ищет вхождение строкиs2 в строку s1,выглядит следующим образом:
    int find(char *s1, char *s2);
функция возвращает смещение подстрокиs2 относительно начала строки s1в случае успеха или (-1) в случае неудачи.Можно ли воспользоваться функцией find в приведенном нижефрагменте программы(будут ли выданы сообщения об ошибках или предупрежденияпри компиляции этого фрагмента)?
    void f(char s[1024], const char p[64]) {        int pos = find(s, p);        . . .    }
Следующая программа вычисляет количествовхождений фрагмента "xyz" в последовательностьсимволов:
    последовательность символов p;    цел n;    символ c1, c2, c3;    . . .    n := 0;    // Инициализируем переменные c1, c2, c3 пробелами    c1 = ' '; c2 = ' '; c3 = ' ';    встать в начало последовательности p;    цикл пока есть непрочитанные элементы в посл-ти p    | c1 := c2; c2 := c3;    | прочесть очередной элемент посл-ти p в (вых: c3);    | если c1 == 'x' и c2 == 'y' и c3 == 'z'    | | то n := n + 1;    | конец если    конец цикла    ответ := n;
В ней используются четыре вспомогательные переменныеn, c1, c2, c3. Можно ли упроститьпрограмму, использовав меньшее количество вспомогательныхпеременных? (Последовательность разрешается читать только один раз.)
Пусть регистры R1 и R2 содержат два целых числа xи y. Указать, что будет содержать регистр R0 после выполненияследующего фрагмента кода на RTL (знаком конъюнкции & обозначенаоперация побитового логического умножения):
    R0 := 1;L1:    CC0 := R2 - 0;    // сравнить R2 с нулем    if (eq) goto L2;  // переход, если равно    CC0 := R2 & 1;    // проверить младший бит R2    if (eq) goto L3;  // переход, если ноль    R2 := R2 - 1;    R0 := R0 * R1;    goto L4;L3:    R2 := R2 / 2;    R1 := R1 * R1;L4:    goto L1;L2:
Пусть регистры R1 и R2 содержат два целых числа xи y. Указать, что будет содержать регистр R0 после выполненияследующего фрагмента кода на RTL (знаком конъюнкции & обозначенаоперация побитового логического умножения):
    R0 := 0;L1:    CC0 := R2 - 0;    // сравнить R2 с нулем    if (eq) goto L2;  // переход, если равно    CC0 := R2 & 1;    // проверить младший бит R2    if (eq) goto L3;  // переход, если ноль    R2 := R2 - 1;    R0 := R0 + R1;    goto L4;L3:    R2 := R2 / 2;    R1 := R1 * 2;L4:    goto L1;L2:
Пусть описан тип 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;