Hi
ich bin gerade dabei einen Taschenrechner für unendlich große Zahlen zu programmieren.
Realisiert habe ich das ganze mit einer doppelt verketteten Liste, es wird in jeden Knoten also immer nur eine Ziffer reingeschrieben.
Jetzt wollte ich halt eine Prozedur zum Runden einbauen, funktioniert auch soweit, außer wenn er aufrunden soll, denn dann durchläuft er einmal zu wenig die Wiederholung, um den Übertrag zu addieren, habt ihr ne Idee ?
Hier der Code
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure Runden(zSchluss:tZeiger); var zHilf:tZeiger; uebertrag:0..1; begin uebertrag:=0; zHilf:=zSchluss; Repeat zHilf^.inh:=zHilf^.inh+uebertrag; if(zHilf^.inh>4) then begin zHilf^.inh:=0; uebertrag:=1; end else zHilf^.inh:=0; zHilf:=zHilf^.zVor; until (zHilf^.zVor=nil) end; |
kann man hier nicht editieren oder bin ich blind ?
also im moment rundet er halt z.B. 123 auf 100, 53 auf 50, aber 55 auch auf 50, da er den übertrag dann ja noch nich dazu addiert hat, denke ich mal
Moderiert von
jasocul: Beiträge zusammengefasst