
,=c       sO      d  f  d     YZ  A d e  f d     YZ  d e f d     YZ d S(   s   Bruchc      sM     d   Z   d   Z  d   Z % d   Z + d   Z 1 d   Z RS(   Nc    s.      d |  _  d |  _  d |  _ d S(   s   
        /* Attribute: Zhler und Nenner: jeweils ganze Zahlen
        /*            Dezimalwert muss durch entspr. Methode gesetzt werden
        i   i    f0.0N(   s   selbsts   nenners   zaehlers   dezimalwert(   s   selbsts   bruch_fach6.pys   __init__ s   c    s      | |  _ d S(   s\   
        /* wir setzen den Nenner des Bruchs
        /* Parameter: wert, ganze Zahl
        N(   s   werts   selbsts   nenner(   s   selbsts   werts   bruch_fach6.pys   setze_nenner s   c    s    " # | |  _ d S(   s\   
        /* wir setzen den Zhler des Bruchs
        /* Parameter: wert, ganze Zahl
        N(   s   werts   selbsts   zaehler(   s   selbsts   werts   bruch_fach6.pys   setze_zaehler s   c    s   % ( ) |  i Sd S(   s7   
        /* gibt den Wert des Zaehlers zurueck
        N(   s   selbsts   zaehler(   s   selbsts   bruch_fach6.pys   gib_zaehler% s   c    s   + . / |  i Sd S(   s6   
        /* gibt den Wert des Nenners zurueck
        N(   s   selbsts   nenner(   s   selbsts   bruch_fach6.pys
   gib_nenner+ s   c    sc   1 5 6 |  i d j o 7 d } n3 9 t |  i  t |  i  |  _ : d |  i } ; | Sd S(   s}   
        /* stellt den Bruch als Dezimalzahl dar und
        /* gibt diesen Wert als formatierte Zeichenkette zurck
        i    s   Undefinierts   %6.3fN(   s   selbsts   nenners
   dezistrings   floats   zaehlers   dezimalwert(   s   selbsts
   dezistrings   bruch_fach6.pys   gib_dezimalwert1 s   "(   s   __init__s   setze_nenners   setze_zaehlers   gib_zaehlers
   gib_nenners   gib_dezimalwert(    s   bruch_fach6.pys   Bruch s   	s
   Mona_Bruchc      sA   A B d   Z  I d   Z R d   Z _ d   Z t d   Z RS(   Nc    s   B F G d S(   sT   
	/* Eigenschaften von Bruch werden bernommen
	/* Attribute: Zaehler, Nenner auch
	N(    (   s   selfs   bruch_fach6.pys   __init__B s   c    s?   I L N |  i   } O |  i |  i    P |  i |  d S(   sB   
	/* Resultat: Zaehler und Nenner werden vertauscht --> Kehrwert
	N(   s   selfs   gib_zaehlers	   nennerneus   setze_zaehlers
   gib_nenners   setze_nenner(   s   selfs	   nennerneus   bruch_fach6.pys   bilde_kehrwertI s   c    sb   R V W |  i   } X |  i   } Y | | } Z | | } \ |  i |  ] |  i	 |  d S(   sc   
	/* Parameter: Erweiterer (Ganze Zahl)
	/* Resultat: Bruch wird um eine bestimmte Zahl erweitert
	N(
   s   selfs   gib_zaehlers   zaehlers
   gib_nenners   nenners   zahls   zaehlererweiterts   nennererweiterts   setze_zaehlers   setze_nenner(   s   selfs   zahls   zaehlers   nenners   zaehlererweiterts   nennererweiterts   bruch_fach6.pys   erweitern_mitR s   c    s   _ d e |  i   } f |  i   } h | | } i | | } j | d j o
 | d j oE k | | } l | | } n |  i
 |  o |  i |  p d Sn r d Sd S(   s   
        /* Parameter: Kuerzer (Ganze Zahl)
        /* Resultat: Bruch wird durch bestimmte Zahl gekuerzt
        /*           liefert 1, wenn gekrzt wurde, sonst 0
        i    i   N(   s   selfs   gib_zaehlers   zaehlers
   gib_nenners   nenners   kuerzers   rests   rest2s   neuernenners   neuerzaehlers   setze_zaehlers   setze_nenner(   s   selfs   kuerzers   zaehlers   nenners   rests   rest2s   neuernenners   neuerzaehlers   bruch_fach6.pys   kuerzen_durch_ s   c    s   t x y |  i   } { d } | xe | | d j oT } |  i |  d j o ~ d } n  | d }  | d j o  d } n q$ W | Sd S(   so   
	/* Resultat: Die Zahl ist so weit gekuerzt wie mglich
	/*           liefert 1, wenn gekrzt wurde, sonst 0
	i   i   i    N(   s   selfs
   gib_nenners   counters   geklappts   kuerzen_durch(   s   selfs   counters   geklappts   bruch_fach6.pys   kuerzen_ultimativt s   	 (   s   __init__s   bilde_kehrwerts   erweitern_mits   kuerzen_durchs   kuerzen_ultimativ(    s   bruch_fach6.pys
   Mona_BruchA s
   	s	   Dia_Bruchc      sV    d  Z    d   Z  d   Z  d   Z  d   Z  d   Z  d   Z RS(   s   
   /* Klasse Dia-Bruch	erbt alles von 'Mona-Bruch'(Bruch)
   /* Klasse Dia-Bruch	benutzt die Methoden setze_/gib_Zaehler/Nenner
   c    s      d S(   so   
	/* Uebernimmt die Attribute von 'Mona-Bruch'(Bruch)
	/* und die Methoden von der Klasse 'Mona-Bruch'(Bruch)
	N(    (   s   selfs   bruch_fach6.pys   __init__ s   c    s^      |  i |  i   | i   | i   |  i     |  i |  i   | i    d S(   s   
	/* Methode zum Addieren von Bruechen
	/* Parameter: Bruch2 vom Typ Bruch (oder Typ Mona_Bruch)
	/* Ergebnis: Neuer Nenner/Zhler  :
	/* Addiert zum bisherigen Bruch den als Parameter bergebenen Bruch2
	N(   s   selfs   setze_zaehlers   gib_zaehlers   bruch2s
   gib_nenners   setze_nenner(   s   selfs   bruch2s   bruch_fach6.pys   addieren s   4c    s^      |  i |  i   | i   | i   |  i     |  i |  i   | i    d S(   s   
	/* Methode zum Subtrahieren von Bruechen
	/* Parameter: Bruch2 vom Typ Bruch  (oder Typ Mona_Bruch)
	/* Ergebnis: Neuer Nenner/Zhler  :
	/* Subtrahiert vom bisherigen Bruch den als Parameter bergebenen Bruch2
	N(   s   selfs   setze_zaehlers   gib_zaehlers   bruch2s
   gib_nenners   setze_nenner(   s   selfs   bruch2s   bruch_fach6.pys   subtrahieren s   4c    sJ      |  i |  i   | i     |  i |  i   | i    d S(   s   
	/* Methode zum Multipliezieren von Bruechen
	/* Parameter: Bruch2 vom Typ Bruch   (oder Typ Mona_Bruch)
	/* Ergebnis: Neuer Nenner/Zhler  :
	/* Multipliziert den bisherigen Bruch mit dem als Parameter bergebenen Bruch2
	N(   s   selfs   setze_zaehlers   gib_zaehlers   bruch2s   setze_nenners
   gib_nenner(   s   selfs   bruch2s   bruch_fach6.pys   multiplizieren s    c    sJ      |  i |  i   | i     |  i |  i   | i    d S(   s   
	/* Methode zum Dividieren von Bruechen
	/* Parameter: Bruch2 vom Typ Bruch  (oder Typ Mona_Bruch)
	/* Ergebnis: Neuer Nenner/Zhler  :
	/* Dividiert den bisherigen Bruch durch den als Parameter bergebenen Bruch2
	N(   s   selfs   setze_zaehlers   gib_zaehlers   bruch2s
   gib_nenners   setze_nenner(   s   selfs   bruch2s   bruch_fach6.pys
   dividieren s    c    s1     |  i   }  | d j o  d } n  d }  t   }  | i |  i   |   | i |   | i	    |  i   | }  | d j o  | d | } n  | i   d j o | i   d j o'  | d | i   | i   f } n  | d j o  d } n  | Sd S(	   s   
        /* stellt den Bruch als gemischten Bruch dar und
        /* gibt diesen Wert als formatierte Zeichenkette zurck
        /* Benutzt: Mona_Bruch.kuerzen_ultimativ()
        i    s   Undefinierts    s   %d i   s   %d/%ds   0N(   s   selfs
   gib_nenners
   restnenners   mistrings
   Mona_Bruchs	   restbruchs   setze_zaehlers   gib_zaehlers   setze_nenners   kuerzen_ultimativs   ganz(   s   selfs
   restnenners   mistrings	   restbruchs   ganzs   bruch_fach6.pys   gib_mischbruch s"   	+'(   s   __doc__s   __init__s   addierens   subtrahierens   multiplizierens
   dividierens   gib_mischbruch(    s   bruch_fach6.pys	   Dia_Bruch s   	

N(   s   Bruchs
   Mona_Bruchs	   Dia_Bruch(    s   bruch_fach6.pys   ? s   5F