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

Программирование

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

Что можно сказать об условии, указанном в заголовке цикла "while",в процессе выполнения тела цикла?

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

Варианты ответа
Условие ложно.
Условие может быть как истинным, так и ложным. (Верный ответ)
Условие истинно.
Похожие вопросы
Что можно сказать об условии, указанном в заголовке цикла "while",после завершения цикла?
Выполняется ли инвариант цикла в процессе выполнениятела цикла?
Какую из конструкций цикла в языке C удобнее всего использоватьдля реализации арифметического цикла, в котором тело циклапоследовательно выполняется для всех значений переменной цикла,представляющих арифметическую прогрессию?
Отметьте, в каких из трех конструкций цикла языка Cтело цикла может ни разу не выполняться.
Оценить сверху время работы (т.е. количествовыполнений тела цикла) алгоритмаприблизительного вычисления логарифма:
double myLog(double x, double a, double eps) {    // дано: x > 0, a > 1, eps > 0    // надо: вычислить log_a x с точностью eps    double y = 0.0, z = x, t = 1.0;    while (        fabs(t) > eps ||        x <= 1.0/a ||        z >= a    ) {        // Invariant: a^y * z^t == x        if (z >= a) {            z /= a; y += t;        } else if (z <= 1.0/a) {            z *= a; y -= t;        } else {            z *= z; t /= 2.0;        }    }    return y;}
Оценить сверху время работы (т.е. количествовыполнений тела цикла) алгоритма быстрого возведения в степень:
int fastPow(double a, int n) {    // дано: основание a и показатель степени n >= 0    // надо: вычислить a в степени n    double b = a, p = 1.0; int k = n;    while (k > 0) {        // Invariant: b^k * p == a^n        if (k%2 == 0) {            // k четное            k /= 2;            b *= b;        } else {            // k нечетное            --k;            p *= b;        }    }    return p;}
Оценить сверху время работы (т.е. количествовыполнений тела цикла) алгоритма Евклидавычисления наибольшего общего делителя двух целых чисел:
int gcd(int m, int n) {    // дано: целые числа m, n, хотя бы одно отлично от нуля    // надо: вычислить НОД пары (m, n)    int a = m, b = n;    while (b != 0) {        // Invariant: НОД(a, b) == НОД(m, n)        int r := a % b; // находим остаток от деления a на b        a = b; b = r;   // заменяем пару (a, b) на (b, r)    }    return a;           // ответ = a}
Рассмотрим следующий фрагмент программы:
утверждение: A(x)цикл пока B(x)| инвариант: A(x)| x := T(x)конец цикла
Здесь через A(x) и B(x)обозначены условия, зависящие от переменной x.Какое условие выполняется по окончании цикла?
Пусть элементы массива aнестрого возрастают (соседние элементы могут быть равными).Дано произвольное значение x, требуетсянайти максимальный индекс i такой, чтоa[i] <= x. Используется идея алгоритмабинарного поиска. Каким должен быть инвариант цикла,в котором рассматривается основной случай после отбрасыванияисключительных ситуаций?(Условие завершения циклаend == beg+1.)
Пусть элементы массива aнестрого возрастают (соседние элементы могут быть равными).Дано произвольное значение x, требуетсянайти минимальный индекс i такой, чтоa[i] >= x. Используется идея алгоритмабинарного поиска. Каким должен быть инвариант цикла,в котором рассматривается основной случай после отбрасыванияисключительных ситуаций?(Условие завершения циклаend == beg+1.)