Rechnen mit Delphi 7

Hallo,
ich versuche mich an Delphi 7 trial. Z.B.: Eine mehrstelligen Zahl möchte ich von links nach rechts in einzelne Ziffern zerlegen und diese verarbeiten. Es gibt soetwas wie Int, Frac, etc.
Wo kann ich nachschauen, welche Operatione, Befehle etc. Delphi unterstützt ?

mfg
Kps

Hallo Kps,

ich versuche mich an Delphi 7 trial. Z.B.: Eine mehrstelligen
Zahl möchte ich von links nach rechts in einzelne Ziffern
zerlegen und diese verarbeiten. Es gibt soetwas wie Int, Frac,
etc.

eine naheliegende Möglichkeit wäre, die Zahl mit „Str“ in den entsprechenden String umzuwandeln. Dann hast Du über die Characters des Strings einfachsten Zugriff auf die Ziffern der Zahl.

Wo kann ich nachschauen, welche Operatione, Befehle etc.
Delphi unterstützt ?

Dafür gibt es die Online-Hilfe von Delphi. Tipp mal irgendwo „Frac“ in den Quelltexteditor der IDE, setz den Cursor darauf und drücke die „F1“-Taste. Das funktioniert bei jedem Befehl und sogar mit den Einträgen im Objektinspektor.

Mit freundlichem Gruß
Martin

Hallo Martin,

Das mit „Str“ (s. Posting unten) ist eine gute Idee.

Unabhängig davonkönnte es dich aber reizen, das Problem nicht über den „Umweg“ von Zeichenketten zu lösen, sondern rein auf Zahlenebene. Das vergleichsweise kompliziert, aber interessant.

(Schritt 1)

Mit dem dekadischen Logarithmus (Log zur Basis 10) erhälst du Informationen, wie viele Stellen deine Zahl hat. Den dekatischen Logarithmus von X erhälst du aus der Delphi-Funktion „Ln“ (=logarithmus naturalis, Log zur Basis e) mit Ln(x)/ln(10).

Davon interessierten die Stellen vor dem Komma. Die Nachkommastellen kannst du mit „Int“ abschneiden. Nehmen wir an, deine Zahl sei X = 4235. Der L = Log(X) = 3.6268…, die Vorkommastelle ist L’ = 3. Mit Q = 10 hoch L’ {in Delphi: exp(L’*ln(10)), siehe Potenzgesetze} bekommst du den Quotient, durch den du X teilen kannst, um eine Zahl zu erhalten, deren Vorkommastelle die erste Ziffer von X ist: Im Beispiel ist Q = 10^3 = 1000.

Nun die Berechnung der ersten Ziffer:

(Schritt 2a)

Z = X/Q = 4235/1000 = 4.235. So, von Z nimmst du mit der Funktion „Int“ wieder die Vorkommastelle, das ist 4, also Z’ = 4. Das ist die erste Ziffer.

(Schritt 2b)

Die nächste Ziffer bekommst du, indem du von X einfach Z’*Q abziehst: X = X-Z’*Q. Im Beispiel erhälst du also X = 4235 - 4*1000 = 4235-4000 = 235. Für die nächste Stelle mußt du Q durch 10 teilen. Jetzt ist Q also 100.

Jetzt geht’s weiter wie bei Schritt 2a:

Und wieder Z = X/Q = 235/100 = 2.35, Z’=Int(2.35)=2. Die nächste Ziffer ist also 2.

und Schritt 2b:

Wieder X=X-Z’*Q=235-2*100=35. Q=Q/10=10.

Mit diesem X beginnst du von vorne. Also L=Log(253)=2.

Und wioeder Schritt 2a usw usw, bis dein Q=0 ist. Dann bist du fertig (für die Vorkommastellen).

Gruß
Jochen