type tbruch=object private z, n: integer; public constructor erzeuge(z0, n0: integer); function zaehler: integer; function nenner: integer; procedure addition(summand: tbruch); procedure subtraktion(subtrahend: tbruch); procedure multiplikation(faktor: tbruch); procedure reziprok; procedure division(dividend: tbruch); function dezimal: real; function sign: char; procedure ausgabe; virtual; end; constructor tbruch.erzeuge(z0, n0: integer); begin z:=z0; n:=n0; end; function tbruch.zaehler: integer; begin zaehler:=z; end; function tbruch.nenner: integer; begin nenner:=n; end; procedure tbruch.addition(summand: tbruch); begin z:=z*summand.n+n*summand.z; n:=n*summand.n; end; procedure tbruch.subtraktion(subtrahend: tbruch); begin z:=z*subtrahend.n-n*subtrahend.z; n:=n*subtrahend.n; end; procedure tbruch.multiplikation(faktor: tbruch); begin z:=z*faktor.z; n:=n*faktor.n; end; procedure tbruch.division(dividend: tbruch); begin z:=z*dividend.n; n:=n*dividend.z; end; procedure tbruch.reziprok; var z0: integer; begin z0:=z; z:=n; n:=z0; end; function tbruch.dezimal: real; begin dezimal:=z/n; end; function tbruch.sign: char; begin if z*n<0 then sign:='-' else sign:=' '; end; procedure tbruch.ausgabe; var zs, ns : string; x, y : integer; laenge, i: integer; begin x:=wherex; y:=wherey; str(abs(z),zs); str(abs(n),ns); laenge:=length(zs); if laenge
var bruch1: tbruch;
bruch1.erzeuge(2, 3); bruch1.ausgabe;
ausführen