1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134:
| unit uBruchrechnen;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TfrmBruchrechnen = class(TForm) lblZ1: TLabel; lblN1: TLabel; lblN2: TLabel; lblZ2: TLabel; Label5: TLabel; Label6: TLabel; edtZ: TEdit; edtN: TEdit; btnAufgabe: TButton; btnPruefen: TButton; btnAnzeige: TButton; Label1: TLabel; Button1: TButton; procedure FormCreate(Sender: TObject); procedure btnAufgabeClick(Sender: TObject); procedure btnPruefenClick(Sender: TObject); procedure btnAnzeigeClick(Sender: TObject); procedure Button1Click(Sender: TObject); private procedure SummeBerechnen(z1,n1,z2,n2: Integer; var zerg,nerg,q: integer); function ggT(a,b: integer):integer; function Maximum(z1,z2: integer):integer; function Minimum(z1,z2: integer):integer; public
end;
var frmBruchrechnen: TfrmBruchrechnen; z1,z2,zerg,n1,n2,nerg,q,gg: integer; implementation
{$R *.DFM}
procedure TfrmBruchrechnen.FormCreate(Sender: TObject); begin randomize; end;
procedure TfrmBruchrechnen.btnAufgabeClick(Sender: TObject); begin z1:=random(10)+1; z2:=random(10)+1; n1:=random(10)+1; n2:=random(10)+1;
lblZ1.caption:=IntToStr(z1); lblZ2.caption:=IntToStr(z2); lblN1.caption:=IntToStr(n1); lblN2.caption:=IntToStr(n2); end;
procedure TfrmBruchrechnen.SummeBerechnen(z1,n1,z2,n2: Integer; var zerg,nerg,q: integer); begin If NOT (edtN.Text = '')and (edtz.Text = '') then zerg:=z1*n2+z2*n1; nerg:=n1*n2; q:=ggT(zerg,nerg); zerg:=zerg div q; nerg:=nerg div q; end;
function TfrmBruchrechnen.Maximum(z1,z2: integer):integer; begin if z1>z2 then result:=z1 else result:=z2; end;
function TfrmBruchrechnen.Minimum(z1,z2: integer):integer; begin if z1<z2 then result:=z1 else result:=z2; end;
function TfrmBruchrechnen.ggT(a,b: integer):integer; var c,max,min: integer; begin if a<=b then begin c:=a; a:=b; b:=c; end; while b<>0 do begin max:=Maximum(a,b); min:=Minimum(a,b); a:=max - min; b:=min; end; result:=a; end;
procedure TfrmBruchrechnen.btnPruefenClick(Sender: TObject); var zu, nu: integer; begin zerg:=0; nerg:=0; q:=0; SummeBerechnen(z1,n1,z2,n2,zerg,nerg,q); zu:=StrtoInt(edtZ.text); nu:=StrtoInt(edtN.text); if (zerg=zu) and (nerg=nu) then Showmessage('Ergebnis richtig!') else if (zerg <> zu) and (nerg <> nu) then Showmessage ('Leider falsch') ; end;
procedure TfrmBruchrechnen.btnAnzeigeClick(Sender: TObject); begin zerg:=0; nerg:=0; q:=0; SummeBerechnen(z1,n1,z2,n2,zerg,nerg,q); edtZ.text:=IntToStr(zerg); edtN.text:=IntToStr(nerg); end;
procedure TfrmBruchrechnen.Button1Click(Sender: TObject); begin label1.Caption := InttOSTR(ggT(zerg,nerg));end;
end. |