Systemnahe Programmierung in C: Zusicherungen |
1#include <assert.h>
2
3/* Division mit Rest
4 Rest als Referenzparameter
5*/
6
7int
8divide (int x, int y, int *rest)
9{
10 assert (0 <= x); /* die Vorbedingungen */
11 assert (0 < y);
12 {
13 int q = 0;
14 int r = x;
15
16 while (!(r < y))
17 {
18 q = q + 1;
19 r = r - y;
20 }
21
22 assert (x == q * y + r); /* die Nachbedingungen */
23 assert (0 <= r);
24 assert (r < y);
25
26 *rest = r;
27 return q;
28 }
29}
30
31int
32main (void)
33{
34 int q, r;
35
36 q = divide (5, 3, &r);
37 q = divide (5, 0, &r);
38
39 return 0;
40}
|
Letzte Änderung: 11.01.2007 | © Prof. Dr. Uwe Schmidt |