Brüche Rechnen in BB?
Übersicht

bruce85Betreff: Brüche Rechnen in BB? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo,
ich wollte ein Matheprogramm in BB schreiben, und wollte euch mal fragen ob man in BB Brüche berechnen kann? wenn ja, wie macht man das? Danke euch schonmal ![]() Gruss Andreas |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
das ist doch ganz einfach oder? 2/4 bedeutet doch einfach nur 2:4! |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke dir, ich hab des aber anders gemeint, z.B. 8/4 + 4/2 = das ich das ergebnis dann da schreibe, das wäre dann die lösung: 4 Ganze
nur wie berechnet man das wenn man z.B. noch kürzen kann u.s.w.? Gruss Andreas |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, ein bisschen aufwendig wird's schon^^
z.B. der Wert 0,80.... Dann würde ich erstmal eine Variable=80 und eine Variable=100 machen, dann alle gemeinsamen Teiler ermitteln und nachrechnen^^ Ist der GGT gefunden, kann man dann ja ganz einfach Code: [AUSKLAPPEN] Variable1=Variable1/ggt Variable2=Variable2/ggt rechnen das ergibt im Falle von ggt=20 4/5[/code] |
||
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Bruce85: Vielleicht hilft dir das hier weiter:
Code: [AUSKLAPPEN] ; Bruch A
zahler_a = 5 nenner_a = 2 ; Bruch B zahler_b = 3 nenner_b = 4 ; Rechnung anzeigen Print zahler_a+"/"+nenner_a+" + "+zahler_b+"/"+nenner_b ; Brüche gleichnamig machen und addieren zahler_c = zahler_a*nenner_b + zahler_b*nenner_a nenner_c = nenner_a*nenner_b ; Ungekürztes Ergebnis anzeigen Print zahler_c+"/"+nenner_c ; Kürzen (kann man bestimmt noch optimieren) If zahler_c > nenner_c Then n = zahler_c Else n = nenner_c EndIf While n > 1 If (zahler_c Mod n) = 0 And (nenner_c Mod n) = 0 Then zahler_c = zahler_c / n nenner_c = nenner_c / n EndIf n = n - 1 Wend ; Ergebnis anzeigen Print zahler_c+"/"+nenner_c mfg Cardonic ~Edit~ Habe dem Code noch ein paar Kommentare hinzugefügt |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke dir,
aber was mache ich wenn der Zähler grösser ist als der Nenner? z.B. 23/5 dann wäre 4 3/5 das ergebnis. Danke dir schonmal ![]() Gruss Andreas |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ich hab es folgendermaßen gelößt:
Code: [AUSKLAPPEN] If zahler_c > nenner_c Then
;um die Ganzen anzuzeigen, muss man den Zähler durch den nenner teilen Ganze = zahler_c / nenner_c ;zähler_c den zähler_d zuweisen nenner_d = nenner_c ;jetzt wird die ganzen * den nenner_c berechnen ;und dann die Variable temp zuweisen temp = Ganze * nenner_c ;und jetzt den zähler minus temp rechnen und zähler_d zuweisen ;und jetzt hat man den rest der brüche zahler_d = zahler_c - temp If Not zahler_d = 0 Then Text 190,60,"=" Text 206,60,Ganze Text 224,50,zahler_d Rect 224,69,18,2 Text 224,70,nenner_d Else Text 190,60,"=" Text 206,60,Ganze EndIf EndIf und danke dir ![]() edit: ich stells mal hier rein, habs ein bissel überarbeitet: Code: [AUSKLAPPEN] Graphics 640,480,16,2
SetBuffer BackBuffer() Global schrift1 = LoadFont("Comic Sans MS",20,1,0,0) SetFont schrift1 SeedRnd MilliSecs() ; Bruch A Global zahler_a = Rnd(1,10) Global nenner_a = Rnd(1,10) ; Bruch B Global zahler_b = Rnd(1,10) Global nenner_b = Rnd(1,10) Global Ganze Repeat ClsColor 127,127,127 Cls Color 0,0,128 ; Rechnung anzeigen Text 50,50,zahler_a Rect 50,69,10,2 Text 50,70,nenner_a Text 72,60,"+" Text 92,50,zahler_b Rect 91,69,10,2 Text 92,70,nenner_b Text 110,60,"=" ; Brüche gleichnamig machen und addieren zahler_c = zahler_a*nenner_b + zahler_b*nenner_a nenner_c = nenner_a*nenner_b ; Ungekürztes Ergebnis anzeigen Text 126,50,zahler_c Rect 126,69,18,2 Text 126,70,nenner_c Text 152,60,"=" ; Kürzen (kann man bestimmt noch optimieren) If zahler_c > nenner_c Then n = zahler_c Else n = nenner_c EndIf While n > 1 If (zahler_c Mod n) = 0 And (nenner_c Mod n) = 0 Then zahler_c = zahler_c / n nenner_c = nenner_c / n EndIf n = n - 1 Wend ; Ergebnis anzeigen Text 164,50,zahler_c Rect 164,69,18,2 Text 165,70,nenner_c If zahler_c > nenner_c Then ;um die Ganzen anzuzeigen, muss man den Zähler durch den nenner teilen Ganze = zahler_c / nenner_c ;zähler_c den zähler_d zuweisen nenner_d = nenner_c ;jetzt wird die ganzen * den nenner_c berechnen ;und dann die Variable temp zuweisen temp = Ganze * nenner_c ;und jetzt den zähler minus temp rechnen und zähler_d zuweisen ;und jetzt hat man den rest der brüche zahler_d = zahler_c - temp If Not zahler_d = 0 Then Text 190,60,"=" Text 206,60,Ganze Text 224,50,zahler_d Rect 224,69,18,2 Text 224,70,nenner_d Else Text 190,60,"=" Text 206,60,Ganze EndIf EndIf Flip Until KeyHit(1) End Gruss Andreas |
||
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das sieht ja schon mal ganz gut aus.
Für die Subtraktion musst du eigentlich nur das plus (+) durch ein minus (-) ersetzen. Multiplikationen und Divisionen sollten eigentlich keine Probleme darstellen, da hier die Brüche nicht gleichnamig gemacht werden müssen. Ich würde für jede der Operationen eine eigene Funktion schreiben. Das kürzen der Brüche würde ich in eine eigene Funktion schreiben und diese dann am ende jeder "Operation-Funktion" aufrufen. Ich hoffe, du kannst verstehen, was ich versucht habe zu erklären. mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich danke dir ![]() ich weiss das man bei Multiplikation und Division den Nenner nicht Gleichnamig machen soll, ich weiss ja wie man das dann berechnen muss ![]() Ich werde das dann alles in Funktionen Packen, weil es ja dann übersichtlicher wird. Gruss Andreas |
||
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/viewtopic.php?t=12531 - Bruchrechnen I - Artemis
https://www.blitzforum.de/viewtopic.php?t=14337 - Bruchrechnen II - Triton |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group