Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

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 17:14


Probleme beim Bruchrechner mit dem Kürzen!
 
Hi Leute,


muss morgen einen Bruchrechner in Informatik abgeben, soweit ist auch alles fertig bis auf das Kürzen, da weiß ich einfach nicht was falsch ist und da bräuchte ich mal eure Hilfe, dafür wäre ich euch sehr dankbar!
Also das Programm haben wir in 3 Units aufgeteilt, auf der 1. Unit kann man entscheiden, ob man die gemischte Schreibform (Unit 3) haben will, also z.B. 1 1/2 oder die andere Schreibform(Unit 2) wie in dem Beispiel 3/2!
Falls ich das grade genau falsch geschrieben habe, tuts mir Leid, aber ihr wisst, was ich meine!
Da kann man das dann halt auswählen...sonst würde ich euch auch noch bitten, zu sagen, was ihr noch als Verbesserungsvorschläge hättet!


Delphi-Quellcode:
Unit Unit2;

interface

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

type
  TForm2 = class(TForm)u
    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}

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;

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


end;

procedure TForm2.Button2Click(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;

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

end;

procedure TForm2.Button3Click(Sender: TObject);
var
a,b,a1,b1,a2,b2:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);

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


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

edit9.Text:=inttostr(a2);
edit10.Text:=inttostr(b2);

end;

procedure TForm2.Button4Click(Sender: TObject);
var
a,b,c,d,a1,b1,c1,d1,a2,b2:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);

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


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

edit9.Text:=inttostr(a2);
edit10.Text:=inttostr(b2);

end;



end.

DeddyH 28. Mai 2008 17:20

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Hallo und Willkommen in der DP :dp: ,
wenn ich das Problem richtig verstanden habe, sollten div und mod Deine Freunde sein.

shmia 28. Mai 2008 17:22

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Schau dir mal den euklidischen Algorithmus an.
Damit findet man den grössten gemeinsamen Teiler (GGT) zweier Zahlen.
Und den GGT braucht man tzum Kürzen.

davidgimbel 28. Mai 2008 17:22

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Hi zurück,



vielleicht werdet ihr mich auslachen, aber ich habe echt null Ahnung von Delphi...
Also das haben ein Freund und ich zusammengemacht und geben es morgen zusammen ab, aber er hat mehr Ahnung davon als ich, aber jetzt kommt er auch nicht mehr weiter, habe auch schon gegoogelt, aber kapier trotzdem kein Wort!

davidgimbel 28. Mai 2008 17:25

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Außerdem kommt jetzt noch ein weiteres Problem hinzu!
Wir wissen nicht, wie wir das in die Schreibweise mit ganzen Zahlen z.B. 1 1/2 zurückführen sollen, d.h. wir wissen schon wie es "hingeht", da ist das ja einfach, einfach die Zahl vor dem Bruch mit dem Nenner multiplizieren und zum Zähler addieren, aber zurück!?

DeddyH 28. Mai 2008 17:28

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Also, es geht darum, aus z.B. "7/4" "1 3/4" zumachen, oder?

davidgimbel 28. Mai 2008 17:30

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

Zitat von DeddyH
Also, es geht darum, aus z.B. "7/4" "1 3/4" zumachen, oder?


Jap, genau das meine ich, das ist ja acuh zum Kürzen ein bisschen ähnlich, weil man ja auch Teilen muss und sowas, davon haben wir halt net wirklich so viel Ahnung...
Den euklidschen Logarithmus hatte ich mir schon angeguckt, aber wie bitte soll ich das denn auf Delphi umschreiben?
Also ich habe echt so gut wie null Ahnung von Delphi!

DeddyH 28. Mai 2008 17:43

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Mal von der Darstellung abgesehen: div liefert Dir das Ergebnis einer ganzzahligen Division, mod liefert den entsprechenden Rest. Also ergibt 3 div 2 dann 1, 3 mod 2 ergibt auch 1. Also hast Du die ganze Zahl 1 als Ergebnis der Division, als Rest bleibt 1 (das ist der Zähler von 1/2).

davidgimbel 28. Mai 2008 17:48

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Danke schonmal, das habe ich schonmal verstanden?
Aber wie schreibe ich das jetzt in Delphi?

RWarnecke 28. Mai 2008 17:54

Re: Probleme beim Bruchrechner mit dem Kürzen!
 
Delphi-Quellcode:
a := StrToInt(Edit1.Text) div StrToInt(Edit2.text);
b := StrToInt(Edit1.Text) mod StrToInt(Edit2.Text);
Label1.Caption := IntToStr(a) + ' ' + IntToStr(b) + '/2';
So ungefähr könnte es aussehen. Ist lediglich nur ein Beispiel, welches Du auf Dein Programm anpassen musst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.
Seite 1 von 4  1 23     Letzte »    

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