Announcement

Collapse
No announcement yet.

Bruchrechen Programm

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bruchrechen Programm

    Hi,

    Ich muss für die Schule ein Programm schreiben das mit Brüchen rechnet.
    Mein Problem ist nun wie ich das mit dem "Kleinsten-Gemeinsamen-Vielfachen" und dem "Größten-Gemeinsamen-Teiler" hinbekomme.
    Ich hab eigentlich keine Ahnung von Delphi, kann lediglich kleine Sachen wie Multiplizieren, dividieren, usw., also "kleine" Rechner.

    Kann mir jemand ein Tutorial empfehlen, wo die einzelnen Schritte genau beschrieben werden?
    Oder kann mir das einer von euch erklären?

    Vielen Dank im voraus

    mfg
    reaver1808

  • #2
    So, hab mich mal umgeschaut und hab folgendes für den GGT geschrieben:

    procedure TForm1.Button1Click(Sender: TObject);
    var a, b, r, g, e1, e2 : Integer;
    begin

    a:=StrToInt(labelZaehler.caption);
    b:=StrToInt(labelNenner.caption);

    If a < b then begin
    r := a;
    a := b;
    b := r;
    end;
    While b > 0 do begin
    r := a MOD b;
    a := b;
    b := r;
    end;
    g := a;
    labelGGT.Caption:=IntToStr(g) ;

    Nun hab ich folgendes Problem, wenn der Zähler negativ ist funktioniert es nicht mehr -.-
    kann mir einer sagen warum?

    Comment


    • #3
      Hallo!

      "umgeschaut und hab folgendes für den GGT geschrieben:"
      umgeschaut und abgeschrieben oder tatsächlich geschrieben?!?

      Aber zum Problem:
      Wenn der Zähler z.B. -1 ist beginnt das Ganze mit a= -1
      durch das erste if werden a und b getauscht also ist jetzt b = -1

      Nun mit Höchstgeschwindigkeit in die While Schleife Ooops oder doch nicht b ist ja jetzt nicht mehr > 0 also KEINE Whileschleife....

      Die Funktion "Abs" ermittelt den absoluten Wert einer Zahl. Sieh mal in die Hilfe ...

      Noch eine Kleinigkeit zum Programmierstil. So wie du es angegangen bist kannst Du Deine GGT Funktion nur in diesem Zusammenhang verwenden. Raus mit der Fnuktion aus dem Button und in eine eigene Funktion GGT ausgelagert
      Code:
      procedure TForm1.btnClick(Sender: TObject);
      var g : Integer;
      begin
      	g := GGT ( StrToInt(labelZaehler.caption), StrToInt(labelnenner.caption) );
      	showmessage ( IntToStr(g)  );
      end;
      
      function TForm1.GGT(a, b : integer): integer;
      var
      	r : integer;
      begin
      	If a < b then begin
      		r := a;
      		a := b;
      		b := r;
      	end;
      	While b > 0 do begin
      		r := a MOD b;
      		a := b;
      		b := r;
      	end;
      	result := a;
      end;
      Die nächste Steigerung ist dann das auslagern dieser netten kleinen funktionen in eine eigene Unit. Dann braucht man in neuen Projekten nur noch die Unit einbinden und schon kann man GGT verwenden.

      BYE BERND

      Comment

      Working...
      X