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

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

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

Укажите, в какие моменты работы программы выполняетсяинвариант цикла.

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

Варианты ответа
Перед каждым выполнением тела цикла.
Перед первым выполнением тела цикла и после последнего выполнения тела цикла.
Перед каждым выполнением тела цикла и после каждого выполнения тела цикла. (Верный ответ)
Похожие вопросы
Рассмотрим следующий фрагмент программы:
    цел m, n;    цел a, b, p;    . . .    a := m; b := n;    p := 0;    цикл пока b != 0    | если b четное    | | то    | |     b := b / 2;    | |     a := a * 2;    | | иначе    | |     b := b - 1;    | |     p := p + a;    | конец если    конец цикла    ответ := p;
Какое условие является инвариантом цикла?
Завершится ли когда-нибудь выполнение цикла в приведенном ниже фрагменте программы (!= - означает "не равно")?
x := 1;цикл пока x != 56| x := x * 11;| если x <= 253| | то x := x - 253;| конец есликонец цикла
Рассмотрим следующий фрагмент программы:
утверждение: A(x)цикл пока B(x)| инвариант: A(x)| x := T(x)конец цикла
Здесь через A(x) и B(x)обозначены условия, зависящие от переменной x.Какое условие выполняется по окончании цикла?
Рассмотрим следующий фрагмент программы:
    цел m, n;    . . .    дано: m >= 0 и n >= 0    цел a, b, c;    a := m; b := n;    c := 1;    цикл пока a != 0 и b != 0    | если a четное и b четное    | | то  a := a / 2;    | |     b := b / 2;    | |     c := c * 2;    | иначе если a четное    | | то  a := a / 2;    | иначе если b четное    | | то  b := b / 2;    | иначе    | | если a > b    | | | то    a := a - b;    | | | иначе b := b - a;    | | конец если    | конец если    конец цикла    ответ := c * (a + b);
Какое условие является инвариантом цикла?(Через НОД и НОК обозначены наибольший общий делитель инаименьшее общее кратное.)
Пусть даны очередь и стек.Рассмотрим фрагмент программы на псевдокоде:
    сделать стек пустым;    цикл пока очередь непуста    | x := взять элемент из начала очереди;    | добавить (вход: x) в стек;    конец цикла    цикл пока стек непуст    | x := взять элемент из стека;    | добавить (вход: x) в конец очереди;    конец цикла
Что произойдет с очередью в результатеего выполнения?
Что можно сказать об условии, указанном в заголовке цикла "пока",после полного завершения цикла?
Рассмотрим следующий фрагмент программы, вычисляющейчастное 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[100]; вещ t; цел i;. . .i := 0;цикл пока i < 50| t := a[i];| a[i] := a[99 - i]; a[99 - i] := t;| i := i+1;конец цикла
Чему равно значение целочисленной переменной xв результате выполнения приведенного ниже фрагмента программы?
x := 1;цикл пока x < 11| x := -2*x + 11;конец цикла