шно. Используйте утверждения т
Автор admin
Пятница, 8 мая 2009 11:32
шно. Используйте утверждения только для инвариантов. 5. Приведенный ниже файл BuggedSearch.cpp содержит функцию бинарного поиска what в интервале [beg,end). Алгоритм содержит ряд ошибок. Отладьте функцию поиска при помощи средств трассировки, описанных в этой главе. // С02:BuggedSearch.cpp {-хо} //{L} ../TestSuite/Test #include "../TestSuite/Test.h" #include #include #include #include using namespace std: // Функция содержит ошибки int* binarySearch(int* beg. int* end. int what) { while(end - beg != 1) { if(*beg == what) return beg; int mid = (end - beg) / 2: if(what <= beg[mid]) end = beg + mid: else beg = beg + mid: 90 Глава 2 • Защитное программирование return 0; } class BinarySearchTest : public TestSuite::Test { enum { sz = 10 }: int* data: int max; // Наибольшее число int current; // Текущее число, не содержащееся в массиве. // Используется в notContainedO // Поиск следующего числа, не содержащегося в массиве int notContainedO { while(data[current] + 1 == data[current + 1]) current++; if(current >= sz) return max + 1; int retValue = data[current++] + 1; retur
Комментарии закрыты.
Последние комментарии