Я изучаю С++, читая Stroustrup "Принципы и практика с использованием С++".
В разделе о пред- и пост-условиях есть следующий пример функции:
int area(int length, int width)
// calculate area of a rectangle;
// pre-conditions: length and width are positive
// post-condition: returns a positive value that is the area
{
if (length<=0 || width <=0)
error("area() pre-condition");
int a = length*width;
if (a<=0)
error("area() post-condition");
return a;
}
Что меня смутило, так это задача об этом коде:
Найдите пару значений, чтобы предварительное условие этой версии область имеет место, но пост-условие не делает.
Существуют ли такие возможные значения для целого, что предварительные условия в порядке, но пост-условие не?