Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Quersumme und Zahlendreher
Zuckerrübe - Do 07.05.09 21:10
Titel: Quersumme und Zahlendreher
hallo zusammen,
ich hab ne funktion erstellt die normal die quersumme einer zahl ( egal wie lange ) ausrechnet. nur das problem ist das er das i-wie nicht machen will. hier ist der quellcode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| function Dreher(aa:integer):integer; var b, c: integer; begin b:= 0; c:= 0; while a < 0 do begin b:= a mod 10; c:= c + b; a:= a div 10; result:= c; end; end; |
ich hoffe mal das einer das versteht
danke schonma
Moderiert von
Narses: 2. Frage entfernt
jaenicke - Do 07.05.09 21:27
Der Parameter ist aa, du benutzt aber a? Und warum < 0?
Zuckerrübe - Do 07.05.09 21:34
ah okay es lag an dem größer kleiner zeichen ^^
jaenicke - Do 07.05.09 21:37
Ich würde die übergebene Zahl aber nicht verändern, mach es besser so, das ist übersichtlicher:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function CalcChecksum(const AValue: Integer): Integer; var PendingDigits: Integer; begin Result := 0; PendingDigits := AValue; while PendingDigits <> 0 do begin Inc(Result, PendingDigits mod 10); PendingDigits := PendingDigits div 10; end; end; |
Und wenn du die verändern willst, gehts auch so kurz:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| function CalcChecksum(AValue: Integer): Integer; begin Result := 0; while AValue <> 0 do begin Inc(Result, AValue mod 10); AValue:= AValue div 10; end; end; |
Zuckerrübe - Do 07.05.09 21:43
sorry aber wir ham inc und so noch nich durchgenommen ^^
weiß jemand was zu nem zahlendreher?
jaenicke - Do 07.05.09 21:46
Narses hat deine zweite Frage nicht ohne Grund entfernt :!:
Eine Frage pro Topic, das steht in den Regeln, damit es nicht drunter und drüber geht. Dort werde ich dann gerne auch etwas dazu schreiben, das ist auch sehr kurz der Quelltext.
// EDIT:
Ohne inc ist es genauso kurz:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| function CalcChecksum(AValue: Integer): Integer; begin Result := 0; while AValue <> 0 do begin Result := Result + (AValue mod 10); AValue:= AValue div 10; end; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!