AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Brüche kürzen- wieder einmal

Ein Thema von Spynx · begonnen am 18. Dez 2006 · letzter Beitrag vom 19. Dez 2006
Antwort Antwort
Seite 2 von 2     12   
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#11

Re: Brüche kürzen- wieder einmal

  Alt 19. Dez 2006, 18:20
Also unter formatiert verstehe ich zwar etwas anderes, habe es mir aber tortzdem mal angeschaut. Du hattest einen Fehler in der Procedure Kuerze, so müsste sie richtig aussehen:
Delphi-Quellcode:
Procedure TForm1.kuerze(a,b:real;var c,d:real);
var teiler:real;
begin
     teiler:=a;
     while (frac(a/teiler) <> 0) or (frac(b/teiler) <>0) do // mod mit frac ersetzt
           teiler:=teiler-1;
     c:=a/teiler;
     d:=b/teiler;
end;
Du kannst den Befehl mod nicht auf den Typ real anwenden, sondern nur auf Ganzzahlen wie Integer, Byte und Word.
Ob dein Programm durch meine Veränderung richtige Werte liefert habe ich aber nicht überprüft.


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Brüche kürzen- wieder einmal

  Alt 19. Dez 2006, 18:22
Hallo,

das ist wie Augenpulver: Edit1 und Edit2 sind nunmal keine leicht zu lesenden Komponentennamen. Außerdem musst du nicht alle möglichen Teiler probieren, wenn du zuerst den größten gemeinsamen Teiler bestimmtst:

Delphi-Quellcode:
function GCD(n1, n2: Integer): Integer;
begin
  if n2 = 0
    then Result := n1
    else Result := GCD(n2, n1 mod n2);
end;

procedure Normalize(var Numerator, Denominator: Integer);
var
  n: Integer;
begin
  if Numerator <> 0 then
  begin
    n := GCD(Numerator, Denominator);
    Numerator := Numerator div n;
    Denominator := Denominator div n;
    if Denominator < 0 then
    begin
      Numerator := - Numerator;
      Denominator := - Denominator;
    end;
  end else
  begin
    Numerator := 0;
    Denominator := 1;
  end;
end;
Du musst dir aber zuerst mal ein Konzept ausdenken, exakt wann du von Integer- auf Float-Arithmetik wechselst.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Spynx

Registriert seit: 23. Okt 2006
15 Beiträge
 
#13

Re: Brüche kürzen- wieder einmal

  Alt 19. Dez 2006, 18:30
JAAA FLARE DANKE DANKE DANKE!!! DAS WARS WAS ICH BRACUHTE!!!!



edit: wie kann ich die Markierung dieses threads als "Offene Frage" ausschalten!?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz