Autor Beitrag
Zuckerrübe
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 07.05.09 21:10 
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:
ausblenden 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 user profile iconNarses: 2. Frage entfernt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 07.05.09 21:27 
Der Parameter ist aa, du benutzt aber a? Und warum < 0?
Zuckerrübe Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 07.05.09 21:34 
ah okay es lag an dem größer kleiner zeichen ^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 07.05.09 21:37 
Ich würde die übergebene Zahl aber nicht verändern, mach es besser so, das ist übersichtlicher:
ausblenden 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:
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 07.05.09 21:43 
sorry aber wir ham inc und so noch nich durchgenommen ^^
weiß jemand was zu nem zahlendreher?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 07.05.09 21:46 
user profile iconNarses 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:
ausblenden 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;