| |
|
|
Jörg Sellmeyer | Ich wollte mal mathematisch die einzelnen Zahlenstellen einer gegebenen Zahl herausbekommen. Das [...] war mein erster Ansatz.
Der Zweite war dann schon erfolgreicher:
SubProc Get.1
Parameters Zahl&
Return (Zahl& Mod 10)
EndProc
SubProc Get.10
Parameters Zahl&
Return ((Zahl& Mod 100) - (Zahl& Mod 10)) \ 10
EndProc
SubProc Get.100
Parameters Zahl&
Return ((Zahl& Mod 1000) - (Zahl& Mod 100)) \ 100
EndProc
SubProc Get.1000
Parameters Zahl&
Return ((Zahl& Mod 10000) - (Zahl& Mod 1000)) \ 1000
EndProc
Print "34567 viele Einzelfunktionen"
Print Get("1",34567)
Print Get("10",34567)
Print Get("100",34567)
Print Get("1000",34567)
Print
WaitInput
SubProc Get.Zahl
' Index angeben als 1 oder 2, 3 usw.
Parameters Ind%,Zahl&
Declare tmp1&,tmp2&,tmp3&
tmp1& = 10^Ind%
tmp2& = 10 ^(Ind%-1)
Return ((Zahl& Mod tmp1&) - (Zahl& Mod tmp2&)) \ tmp2&
EndProc
'Das kann man ad infinitum weiteführen oder eine felexible Prozedur daraus machen
'Die Zahl hinten, damit man in einer Headerdatei z. B Zehner( = Get("Zahl",2,; definieren kann
Print "34567 Flexible Funktion"
WhileLoop 4
Print Get("Zahl",&Loop,34567),
Wend
Print
WaitInput
'oder ganz brachial als Stringauswertung
'hat den Vorteil, dass man beliebig große Zahlen übergeben kann
Proc ZahlenStelle
Parameters Zahl$,Index%
Return Mid$(Zahl$,-Index%,1)
EndProc
Print
Print "144545678844356 Auswertung als String"
WhileLoop 13
Print ZahlenStelle(144545678844356,&Loop),
Wend
Print
Print "Auch andersherum"
WhileLoop 13
Print ZahlenStelle(144545678844356,-&Loop),
Wend
WaitInput
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.05.2018 ▲ |
|
|
|
|
jacdelad | tmp1& kann man sich sogar sparen und tmp3& wird eh nicht benutzt:
|
|
|
| |
|
|