FUNCTION POWER(X: REAL; Y: INTEGER): REAL ; (*Y >= 0*) VAR W,Z: REAL; I: INTEGER; BEGIN W := X; Z := 1; I := Y; WHILE I > 0 DO BEGIN (*Z*(W**I) = X ** Y*) IF ODD(I) THEN Z := Z*W; I := I DIV 2; W := SQR(W) END; (*Z = X**Y*) POWER := Z END;