GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — PythonCertSpring/assertions.py at master · PythonCHB/PythonCertSpring Expand file tree/ Copy pathassertions.pyMore file actions 38 lines (33 loc) · 1023 Bytes / Copy pathassertions.pyFile metadata and controls38 lines (33 loc) · 1023 Bytes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 """ Precondition, postcondition, invariant A while-loop can be derived by filling in this template with blocks S and T and condition P that establish invariant I and postcondition I and not P S # pre: I while (P): # I T # post: I and not P """ def quotient(n, d): """ Divide n by d, integer division by repeated subtraction n: dividend, d: divisor, q: quotient, r: remainder The definition of integer division is: n == q*d + r and r < d """ assert n >= 0 and d > 0 # function precondition r = n q = 0 # assert n == q*d + r # loop precondition while (r >= d): # assert n == q*d + r # loop invariant r = r - d q = q + 1 # assert n == q*d + r and r < d # postcondition return q print '9/3 %s' % quotient(9,3) print '8/3 %s' % quotient(8,3) print '3/3 %s' % quotient(3,3) print '2/3 %s' % quotient(2,3) # what happens if preconditions are violated? |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |