Главная /
Основы программирования - обучения основам /
Пусть f(x) — целочисленная функция от целочисленного аргумента. Определить, содержит ли следующий фрагмент программы ошибку (т.е. действительно ли тело цикла сохраняет инвариант): // Программа корень функции цел a, b, c; . . . утверждение: a < b и f(a)
Пусть f(x)
— целочисленная функция от целочисленного
аргумента. Определить,
содержит ли следующий фрагмент программы ошибку
(т.е. действительно ли тело цикла сохраняет инвариант):
// Программа корень функции
цел a, b, c;
. . .
утверждение: a < b и f(a) * f(b) <= 0;
// Значения функции на концах отрезка [a,b] разных знаков
цикл пока b - a > 1
| инвариант: f(a) * f(b) <= 0
| // Делим отрезок [a, b] пополам
| c := (a + b) / 2; // c -- целая часть (a+b)/2
| если f(a) * f(c) < 0
| | то b := c; // выбираем левую половину отрезка
| | иначе a := c; // выбираем правую половину отрезка
| конец если
конец цикла
утверждение: a == b - 1 и f(a) * f(b) <= 0;
вопрос
Правильный ответ:
Ошибки нет, фрагмент программы корректный.
Фрагмент программы содержит ошибку.
Сложность вопроса
51
Сложность курса: Основы программирования - обучения основам
50
Оценить вопрос
Комментарии:
Аноним
Зачёт всё. Иду кутить отмечать победу над тестом интут
11 мар 2018
Аноним
Если бы не опубликованные подсказки - я бы не осилил c этими тестами intuit.
21 апр 2017
Аноним
Я завалил зачёт, почему я не нашёл данный сайт с ответами по тестам интуит до этого
11 янв 2017
Другие ответы на вопросы из темы программирование интуит.
- # Можно ли сохранить произвольное целое число длиной в четыре байта в вещественных переменных типа float и типа double без потери точности?
- # Есть ли ограничение на длину текстовой строки в языке Си?
- # Чему равно произведение пустой последовательности вещественных чисел?
- # Какие объекты операционной системы обычно используются для исключения одновременного доступа к критическим данным из разных нитей или процессов?
- # Прототип функции, которая вычисляет сумму элементов массива a длины n, выглядит следующим образом: double sum(const double *a, int n); Можно ли в описании этой функции и ее прототипа опустить слово const? (Могут ли при этом в корректной программе возникнуть ошибки или предупреждения на стадии компиляции?)