нт цикла в программе, чтобы ег

Автор admin Среда, 6 мая 2009 11:32

нт цикла в программе, чтобы его нарушения обнаруживались во время ее выполнения. Компилятор не знает загаданное число, поэтому прямая проверка невозможна, но для начала можно вставить обычный комментарий: while(!guessed) { // ИНВАРИАНТ: число находится в интервале [low. high] } ” Что произойдет, если ответ пользователя «больше» или «меньше» не соответствует действительности? Загаданное число будет исключено из нового интервала. Поскольку одна ложь всегда влечет за собой другую, со временем мы придем к пустому интервалу (интервал каждый раз уменьшается вдвое, а загаданное число в нем отсутствует). Это условие выражается в следующей программе: //: C02:HiLo.cpp {RunByHand} // Демонстрация инварианта цикла на примере игры “угадай число” #include #include #incl ude using namespace std; int mainO { cout « “Think of a number between 1 and 100\n”; cout « “I will make a guess; “; cout « “tell me if I’m (H)igh or (L)ow\n”; int low = 1. high = 100; bool guessed = false: while (Iguessed) { // Инвариант: число находится в интервале [low. high] if (low > high) { // Нарушение инварианта


Комментарии закрыты.