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

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

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

Выполняется ли инвариант цикла в процессе выполнениятела цикла?

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

Варианты ответа
Не обязательно. (Верный ответ)
Да, выполняется.
Похожие вопросы
Какую из конструкций цикла в языке C удобнее всего использоватьдля реализации арифметического цикла, в котором тело циклапоследовательно выполняется для всех значений переменной цикла,представляющих арифметическую прогрессию?
Рассмотрим следующий фрагмент программы:
утверждение: A(x)цикл пока B(x)| инвариант: A(x)| x := T(x)конец цикла
Здесь через A(x) и B(x)обозначены условия, зависящие от переменной x.Какое условие выполняется по окончании цикла?
Что можно сказать об условии, указанном в заголовке цикла "while",в процессе выполнения тела цикла?
Пусть элементы массива aнестрого возрастают (соседние элементы могут быть равными).Дано произвольное значение x, требуетсянайти минимальный индекс i такой, чтоa[i] >= x. Используется идея алгоритмабинарного поиска. Каким должен быть инвариант цикла,в котором рассматривается основной случай после отбрасыванияисключительных ситуаций?(Условие завершения циклаend == beg+1.)
Пусть элементы массива aнестрого возрастают (соседние элементы могут быть равными).Дано произвольное значение x, требуетсянайти максимальный индекс i такой, чтоa[i] <= x. Используется идея алгоритмабинарного поиска. Каким должен быть инвариант цикла,в котором рассматривается основной случай после отбрасыванияисключительных ситуаций?(Условие завершения циклаend == beg+1.)
Что можно сказать об условии, указанном в заголовке цикла "while",после завершения цикла?
В каком случае выполняется тело цикла "while"?
Отметьте, в каких из трех конструкций цикла языка Cтело цикла может ни разу не выполняться.
Пусть f(x) - целочисленная функция от целочисленногоаргумента. Определить,содержит ли следующий фрагмент программы ошибку(т.е. действительно ли тело цикла сохраняет инвариант):
// Программа корень функции    int a, b, c;    . . .    // утверждение: a < b  && f(a)*f(b) <= 0    // Значения функции на концах отрезка [a,b] разных знаков    while (b - a > 1) {        // Invariant: f(a)*f(b) <= 0        // Делим отрезок [a, b] пополам        c = (a + b)/2; // c - целая часть (a+b)/2        if (f(a) * f(c) < 0) {            b = c;     // выбираем левую половину отрезка        } else {            a = c;     // выбираем правую половину        }    }    // утверждение: a == b-1  &&    //              f(a)*f(b) <= 0
Пусть f(x) - вещественная функция функцияот вещественногоаргумента. Определить,содержит ли следующий фрагмент программы ошибку(т.е. действительно ли тело цикла сохраняет инвариант):
// Программа корень функции    double a, b, c;    double eps = 0.000001;    . . .    // утверждение: a < b  && f(a)*f(b) <= 0.0    // Значения функции на концах отрезка [a, b] разных знаков    while (b - a > eps) {        // Invariant: f(a)*f(b) <= 0.0        // Делим отрезок [a, b] пополам        c = (a + b)/2.0; // c - середина отрезка [a, b]        if (f(a) * f(c) < 0.0) {            b = c;     // выбираем левую половину отрезка        } else {            a = c;     // выбираем правую половину        }    }    // утверждение: b - a <= eps  &&    //              f(a)*f(b) <= 0.0