// Z1 ist der 1. Zähler
// Z2 der 2. Zähler
// n1 der erste nenner
// n2 der zweite nenner
// zerg Zählerergebnis
//nenner Nennerergebnis
//ganerg Ganzzahlenergebnis
unit mBruchrechnen;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Zaehler1Edit: TEdit;
Nenner1Edit: TEdit;
OperatorEdit: TEdit;
Zaehler2Edit: TEdit;
Nenner2Edit: TEdit;
RechnenButton: TButton;
ErgebnisZaehlerEdit: TEdit;
ErgebnisNennerEdit: TEdit;
GanzzahlEdit: TEdit;
EndeButton: TButton;
procedure EndeButtonClick(Sender: TObject);
procedure RechnenButtonClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// GGT Bestimmung
function ggT(a, b:integer):integer;
begin
repeat
result:= a
mod b;
a:=b;
b:=result;
until b <> 0;
end;
//Kürzen
procedure B_kuerzen(
var z1,z2,n1,n2,zerg,nennerg,ganerg:integer);
begin
zerg:=zerg
div(ggt(zerg,nennerg));
nennerg:=nennerg
div (ggt(zerg,nennerg));
end;
// Brüche Multiplizieren
procedure B_multiplizieren(
var z1,z2,n1,n2,zerg,nennerg:integer);
begin
zerg:= z1*z2;
nennerg:=n1*n2;
end;
// Brüche Dividieren
procedure B_dividieren(
var z1,z2,n1,n2,zerg,nennerg:integer);
begin
zerg:= z1*n2;
nennerg:=n1*z2;
end;
// Brüche addieren
procedure b_addieren(
var z1,z2,n1,n2,zerg,nennerg:integer);
begin
zerg:=(z1*n1)+(z2*n1);
nennerg:=n1*n2
end;
// Brüche subtrahieren
procedure B_subtrahieren(
var z1,z2,n1,n2,zerg,nennerg:integer);
begin
zerg:=(z1*n1)-(z2*n1);
nennerg:=n1*n2
end;
procedure TForm1.EndeButtonClick(Sender: TObject);
begin
close
end;
procedure TForm1.RechnenButtonClick(Sender: TObject);
var z1,z2,n1,n2,zerg,nennerg,ganerg:integer;
begin
//eingabe
z1:=strtoint(Zaehler1Edit.text);
z2:=strtoint(Zaehler2Edit.text);
n1:=strtoint(nenner1edit.text);
n2:=strtoint(nenner2edit.text);
// Abfrage des Operators und ausführen der jeweiligen Funktion
if operatoredit.text = '
*'
then B_multiplizieren(z1,z2,n1,n2,zerg,nennerg);
if operatoredit.text = '
/'
then B_dividieren(z1,z2,n1,n2,zerg,nennerg);
if operatoredit.text = '
+'
then B_addieren(z1,z2,n1,n2,zerg,nennerg);
if operatoredit.text = '
-'
then B_subtrahieren(z1,z2,n1,n2,zerg,nennerg);
// Kürzen
B_kuerzen(z1,z2,n1,n2,zerg,nennerg,ganerg);
// Ausgabe
GanzzahlEdit.text:=inttostr(ganerg);
ErgebnisZaehlerEdit.text:=inttostr(zerg);
ErgebnisNennerEdit.text:=inttostr(nennerg);
end;
end.