Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi bruch rechnen (https://www.delphipraxis.net/12485-bruch-rechnen.html)

cosa 28. Nov 2003 13:10


bruch rechnen
 
hat jemand zufällig ein programm mit dem man bruch rechnen kann, oder könnte es "schnell" machen ;)

also 2 brüche addiern, subtrahiern, multipliziern und dividiern

wäre für eure hilfe sehr dankbar..

so long -> kay

sakura 28. Nov 2003 13:11

Re: bruch rechnen
 
Nutze doch mal die Suche [dp]Bruch or Brüche[/dp] Die Frage kommt mir bekannt vor...

...:cat:...

himitsu 28. Nov 2003 13:21

Re: bruch rechnen
 
Hi Sakura, diese Suchanfrage findet aber nichts. :zwinker:

[dp]BRUCH* or BRÜCHE*[/dp]

Hier ist die letzte Version: Bruchrechnerproblem!

http://www.delphipraxis.net/images/common/divider.jpg
http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif

PS

Mirilin 29. Nov 2003 14:23

Re: bruch rechnen
 
:hi:


Schematisch :

Addition :
a/b + c/d = (a*d + b*c) / (b*d)

Subtraktion :
a/b - c/d = (a*d - b*c) / (b*d)

Multiplikation :
a/b * c/d = (a*c) / (b*d)

Division :
(a/b) / (c/d) = (a*d) / (b*c)


mfg Tobias

Frank Bicking 29. Nov 2003 14:27

Re: bruch rechnen
 
Wird das hier jetzt zum Hausaufgaben-Forum?

MCeddy 29. Nov 2003 15:00

Re: bruch rechnen
 
Hallo Cosa. Wir haben das erst neulich in der Schule gehabt. Hier ein paar Codeschnipsel! Hoffe, das sie dir weiterhelfen :wink:

Delphi-Quellcode:
type
  tbruch = record
    zaehler, nenner : integer;
  end;

procedure bruch_addieren(bruch1, bruch2 : tbruch; var bruch3 : tbruch);
begin
  bruch3.nenner := bruch1.nenner * bruch2.nenner;
  bruch3.zaehler := bruch1.zaehler * bruch2.nenner + bruch2.zaehler * bruch1.nenner;
end;

procedure bruch_multiplizieren(bruch1, bruch2 : tbruch; var bruch3 : tbruch);
begin
  bruch3.nenner := bruch1.nenner * bruch2.nenner;
  bruch3.zaehler := bruch1.zaehler * bruch2.zaehler;
end;

procedure bruch_erweitern(var bruch6 : tbruch; erweiterungszahl : integer);
begin
  bruch6.nenner := bruch6.nenner * erweiterungszahl;
  bruch6.zaehler := bruch6.zaehler * erweiterungszahl;
end;

function ggT (a, b: integer): integer; // ggt = Größte Gemeinsamme Teiler
VAR
  h, rest : integer;
BEGIN
  IF a < b THEN BEGIN
    h := a; a := b; b := h
  END; {of then}
  WHILE b > 0 DO BEGIN
    rest := a MOD b;
    a := b; b := rest
  END; {of while}
  ggT := a
END; {of ggT}

procedure bruch_kuerzen(var bruch7 : tbruch);
var
  kzahl : integer;
begin
  kzahl := ggt(bruch7.nenner, bruch7.zaehler)
  bruch7.nenner := bruch7.nenner div kzahl;
  bruch7.zaehler := bruch7.zaehler div kzahl;
end;
mfg

MCeddy2002
:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.

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