Lecture overview -- Keyboard shortcut: 'u'  Previous page: Kontrakter: ydelse og nydelse -- Keyboard shortcut: 'p'  Next page: Generelle kontraktaspekter: klasseinvarianter [Section] -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 16 : 31
Forelæsningsnoter i Objekt-orienteret Programmering
Designkontrakter og ansvarsfordeling
Ydelse og nydelse i kvadratrods funktionen

For at konsolidere forståelseen af idéen om ydelse og nydelse i forbindelse med kontrakter viser vi her i specifikationen af kvadratrodsfunktionen hvad der ydelse og hvad der er nydelse

Kvadratrod(x: Real) ->  Real
    require x >= 0;
    ensure result * result = x;

-YdelseNydelse
KlientSkal overføre et ikke negativt tal xFår returneret kvadratroden af input'et
ForsynerReturnerer y, hvorom der gælder at y * y = xSkal ikke bekymre sig om negative input

Ydelse og nydelse i kvadratrodsfunktionen. Klienten er kalderen af funktionen. Forsyneren er selve funktionen.