Главная / Программирование / Пусть a - целочисленный массив размера n (индекс элементов меняется от 0 до n-1), элементы которого строго возрастают: a[0] < a[1] <... < a[n-1]. Определить, содержит ли следующий фрагмент программы ошибку (т.е. действительно ли тело цикла сохран

Пусть a - целочисленный массив размера n (индекс элементов меняется от 0 до n-1), элементы которого строго возрастают: a[0] < a[1] <... < a[n-1]. Определить, содержит ли следующий фрагмент программы ошибку (т.е. действительно ли тело цикла сохраняет инвариант): // Программа Поиск int n; int *a; . . . // дано: целое n; // целочисленный массив a[n], // элементы которого строго возрастают // a[0] < a[1] < ... < a[n-1] // надо: найти элемент x в массиве int x; // искомый элемент . . . // рассматриваются исключительные случаи // общий случай // утверждение: a[0] < x && x <= a[n-1]; int b = 0; int e = n - 1; while (e - b > 1) { Invariant: a[b] < x && x <= a[e] int c := (a + b)/2; // c - целая часть (a+b)/2 if (x < a[c]) { e = c; // выбираем левую половину отрезка } else { b = c; // выбираем правую половину } } // утверждение: b == e - 1 && // a[b] < x && x <= a[e]

вопрос

Правильный ответ:

Ошибки нет, фрагмент программы корректный.
Фрагмент программы содержит ошибку.
Сложность вопроса
60
Сложность курса: Программирование
84
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Если бы не данные ответы - я бы не смог решить c этими тестами интуит.
13 июн 2018
Аноним
Я провалил зачёт, почему я не увидел этот сайт с всеми ответами интуит до того как забрали в армию
17 янв 2016
Оставить комментарий
Другие ответы на вопросы из темы программирование интуит.