Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme beim Bruchrechner mit dem Kürzen! (https://www.delphipraxis.net/114640-probleme-beim-bruchrechner-mit-dem-kuerzen.html)

davidgimbel 28. Mai 2008 19:41

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Button1: TButton;
    Edit9: TEdit;
    Edit10: TEdit;
    Button4: TButton;
    Button3: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

function ggT(x,y:Integer):Integer;
Begin
   While x<>y do
      Begin
         If x>y then x:=x-y else y:=y-x;
      End;
   result:=x;
End;

//------------------------------------------------

function kgV(x,y:Integer):Integer;
Begin
   result:=x*y div ggT(x,y);
End;

//------------------------------------------------

procedure kuerzen(VAR a,b : Integer);
Var Teiler:Integer;
Begin
   If (a<>0) and (b<>0) // ansonsten Sonderfälle !!!
      then begin
         Teiler:=ggT(a,b);
         a:=a div Teiler;
         b:=b div Teiler;
      end;
End;



procedure TForm2.Button1Click(Sender: TObject);
var
a,b,a1,b1,a2,b2,c2,d2,a3,b3:integer;

begin

a:=strtoint(edit1.text);
b:=strtoint(edit2.text);

a1:=strtoint(edit6.text);
b1:=strtoint(edit7.text);

a2:=a*b1;
b2:=b*b1;
c2:=a1*b;
d2:=b1*b;

a3:=a2+c2;
b3:=d2;

kuerzen(a3,b3)

edit9.Text:=inttostr(a3);
edit10.Text:=inttostr(b3);



So habe ichs jetzt gemacht, aber er kürzt trotzdem nicht, wodran liegt es, ich weiß nicht mehr weiter!

DeddyH 28. Mai 2008 19:46

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Könntest Du bitte mal Delphi-Tags setzen?

davidgimbel 28. Mai 2008 19:55

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Ich bin total am verzweifeln, ich weiß nicht, was ich noch machen soll, danke für eure Hilfe mit den Texten, aber wo und wie soll ich die denn einbauen, ich habe echt keine Ahnung, tut mir Leid...!

DeddyH 28. Mai 2008 19:57

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Ich frage nochmal zur Sicherheit: was meinst Du mit Kürzen? 7/4 -> 1 3/4?

davidgimbel 28. Mai 2008 19:59

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Ne, ich habe 2 Probleme:

Einmal muss die Zahl noch gekürzt werden, so dass z.B. aus 4/8 1/2 wird und das 2. Problem ist, dass z.B. aus 9/8 1 1/8 werden muss!

grenzgaenger 28. Mai 2008 20:01

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Zitat:

Zitat von davidgimbel
Ne, ich habe 2 Probleme:

Einmal muss die Zahl noch gekürzt werden, so dass z.B. aus 4/8 1/2 wird und das 2. Problem ist, dass z.B. aus 9/8 1 1/8 werden muss!

und wie würdest du das problem per hand lösen?

davidgimbel 28. Mai 2008 20:06

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm3 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Button1: TButton;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Button4: TButton;
    Button3: TButton;
    Button2: TButton;
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form3: TForm3;

implementation

{$R *.dfm}

//------------------------------------------------


procedure TForm3.Button1Click(Sender: TObject);
var
a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2,a3,b3:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
d:=c*b;

a1:=strtoint(edit6.text);
b1:=strtoint(edit7.text);
c1:=strtoint(edit5.text);
d1:=c1*b1;

a2:=d*b1;
b2:=b*b1;
c2:=d1*b;
d2:=b1*b;

a3:=a2+c2;
b3:=d2;

edit9.Text:=inttostr(a3);
edit10.Text:=inttostr(b3);
end;

procedure TForm3.Button2Click(Sender: TObject);
var
a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2,a3,b3:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
d:=c*b;

a1:=strtoint(edit6.text);
b1:=strtoint(edit7.text);
c1:=strtoint(edit5.text);
d1:=c1*b1;

a2:=d*b1;
b2:=b*b1;
c2:=d1*b;
d2:=b1*b;

a3:=a2-c2;
b3:=d2;


edit9.Text:=inttostr(a3);
edit10.Text:=inttostr(b3);

end;


procedure TForm3.Button3Click(Sender: TObject);
var
a,b,c,d,a1,b1,c1,d1,a3,b3:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
d:=c*b;

a1:=strtoint(edit6.text);
b1:=strtoint(edit7.text);
c1:=strtoint(edit5.text);
d1:=c1*b1;

a3:=d*d1;
b3:=b*b1;

edit9.Text:=inttostr(a3);
edit10.Text:=inttostr(b3);
end;



procedure TForm3.Button4Click(Sender: TObject);
var
a,b,c,d,a1,b1,c1,d1,a3,b3:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
d:=c*b;

a1:=strtoint(edit6.text);
b1:=strtoint(edit7.text);
c1:=strtoint(edit5.text);
d1:=c1*b1;

a3:=d*b1;
b3:=b*d1;

edit9.Text:=inttostr(a3);
edit10.Text:=inttostr(b3);
end;




end.
Hier ist Unit3 mit der gemischten Schreibweise, aber da funktioniert leider gar nichts...!

davidgimbel 28. Mai 2008 20:07

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Zitat:

Zitat von grenzgaenger
Zitat:

Zitat von davidgimbel
Ne, ich habe 2 Probleme:

Einmal muss die Zahl noch gekürzt werden, so dass z.B. aus 4/8 1/2 wird und das 2. Problem ist, dass z.B. aus 9/8 1 1/8 werden muss!

und wie würdest du das problem per hand lösen?


Also wenn du meinst, wie ich das mathematisch lösen würde, dann würde ich einfach beim Kürzen den ggT suchen und dann durch den ggT teilen, jo und beim umschreiben, da weiß ich nicht so ganz!

Elko 28. Mai 2008 20:33

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Ich weiß nicht, ob es gerade ausversehen war, aber irgendwie hab ich das Gefühl, dass mein Beitrag ein paar posts zuvor noch nicht einmal gelesen wurde :?
Im Prinzip hab ich da nämlich genau das Problem, dass aus 9/8 1 1/8 wird behandelt :wink:
Gruß, Elko

davidgimbel 28. Mai 2008 20:40

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Doch schon, aber ich kriege es einfach nicht hin, das bei mir einzubauen...
habe es so probiert:

Delphi-Quellcode:
implementation

{$R *.dfm}

var ganzzahlig, rest : integer;

function KlGemTeiler(a3,b3 : integer) : integer;
begin
ganzzahlig := a3 div b3;
rest := a3-ganzzahlig*b3;
end;



procedure TForm3.Button1Click(Sender: TObject);
var
a,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2,a3,b3:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
d:=c*b;

a1:=strtoint(edit6.text);
b1:=strtoint(edit7.text);
c1:=strtoint(edit5.text);
d1:=c1*b1;

a2:=d*b1;
b2:=b*b1;
c2:=d1*b;
d2:=b1*b;

a3:=a2+c2;
b3:=d2;

KlGemTeiler(a3,b3);
edit8.Text:= IntToStr(ganzzahlig);
edit9.Text:= IntToStr(rest);
edit10.Text:= IntToStr(b3);

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz