![]() |
Zahlen teilen
Kurz und knackig:
Wie teile ich eine Zahl in die Zahlen aus der sie besteht? (z.B. 12 in die Variablen a(=1) und b(=2) verteilen) Danke! |
Re: Zahlen teilen
|
Re: Zahlen teilen
Hi Luzifer,
ich würde es über einen String machen:
Delphi-Quellcode:
Im Ziffern-Array sind dann die einzelnen Ziffern drin.
procedure TeileZahl(Zahl: Integer; var Ziffern: array of Integer);
var sTemp: String; i: Integer; begin sTemp := IntTOStr(Zahl); for i := 1 to Length(Zahl) do Ziffern[i] := StrToInt(Zahl[i]); end; |
Re: Zahlen teilen
Hoi
Machs doch grad richtig mathematisch :wink:
Delphi-Quellcode:
Edit: Man könnte auch noch DivMod nehmen, dann gehts noch mehr ab :zwinker:
type
TDigit = 0..9; TDigits = array of TDigit; procedure NumToDigits(Number: Integer; var Digits: TDigits); var I: Integer; begin if Number = 0 then begin SetLength(Digits, 1); Digits[0]:= 0; end else begin Number:= Abs(Number); SetLength(Digits, Trunc(Ln(Number) / Ln(10)) + 1); I:= 0; repeat Digits[I]:= Number mod 10; Number:= Number div 10; Inc(I); until Number = 0; end; end; Gruss Shaman |
Re: Zahlen teilen
Zitat:
Delphi-Quellcode:
procedure NumToDigits(Number: Integer; var Digits: TDigits);
var i: integer; begin setLength(Digits, length(IntToStr(Number))); for i := 0 to high(Digits) do begin Digits[high(Digits) - i] := Number mod 10; Number := Number div 10; end; end; |
Re: Zahlen teilen
Ist doch ein schönes Beispiel, wo man den Logarithmus brauchen kann :)
Wieso umgekehrte Reihenfolge? Stimmt doch: Number = Digits[0] + Digits[1]*10 + Digits[2]*10^2 + ... |
Re: Zahlen teilen
Zitat:
das array bei der zahl 12345 schaut bei dir jedenfalls so aus: 5, 4, 3, 2, 1... *noch nie logarithmus leiden konnt* :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 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