| Siehe aussi: zaehlen beliebig buchstaben zaehler [...]
Jörg Sellmeyer (23.10.11)
Es hat mir aucun Ruhe gelassen et je hab encore weitergetüftelt. maintenant hab ich's raus et c'est letztlich unkomplizierter comme anfangs erwartet. KompilierenMarqueSéparation'et renversé
'Jörg Selllmeyer 2011
'zur freien Verwendung
'ici bekommt on très bien erklärt, comment cela Umrechnen de payons dans un autre la base funktioniert:
'https://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm
'qui difficulté hierbei, ist qui fehlende zéro. Alle Nullstellen doit abgefangen volonté, qui
'aktuelle Stelle um une verringert et qui folgende Stelle également um une verringert volonté.
'qui Wert A000 wird ensuite alors sans Nullen trop YYZ. C000 wird trop BYYZ
Proc Nr2ABC
Paramètres numéro!
Déclarer Wert$,reste%
Tandis que numéro! > 0
reste% = numéro! Mod 26
numéro! = numéro! \ 26
Si reste% = 0
'ici volonté qui Nullstellen abgefangen et umgewandelt
numéro! = numéro! -1
reste% = 26
EndIf
Cas reste% > 0:Wert$ = Chr$(reste% + 64) + Wert$
Wend
Retour Wert$
ENDPROC
Proc ABC2Nr
Paramètres Text$
Déclarer numéro!,somme!,B$
Text$ = Upper$(Text$)
WhileLoop Len(Text$),1,-1
B$ = $ Substr(Text$,-&Boucle)
numéro! = (Ord(B$)-64) * 26^(&Boucle-1)
somme! = somme! + numéro!
Wend
Retour Int(somme!)
ENDPROC
Cls
Titre de la fenêtre "Zahlen dans Buchstaben transformer et umgekehrt"
Imprimer "LQSVOFKGQM =", ABC2Nr("LQSVOFKGQM")
Imprimer "AAAAAA =", ABC2Nr("AAAAAA")
Imprimer "ABCDEFGH =", ABC2Nr("ABCDEFGH")
Imprimer
Imprimer "XPROFAN pouvoir Spass =", ABC2Nr("XPROFAN"),ABC2Nr("macht"),ABC2Nr("Spass")
Imprimer
Déclarer s$
Randomiser
WhileLoop 10
s$ = Chr$(Tour(26) + 65) + s$
Wend
Imprimer s$ + " =",ABC2Nr($ S)
WaitInput
Cls
Randomiser
WhileLoop 0,780,1
Imprimer Nr2ABC(&Boucle),
Wend
WaitInput
Cls
WhileLoop 00,480,1
Imprimer Nr2ABC(&Boucle + Tour(345676)),
Wend
WaitInput
ici ist encore un kleines Programme, chez dem on un un peu herumexperimentieren peux: KompilierenMarqueSéparation $H windows.ph
Def DelLast(2) Mid $(@$(1),1,(Len(@$(1)) - @&(2)))
'ici peux on joli nachlesen, comment so une change funktioniert:
'https://www.arndt-bruenner.de/mathe/scripts/Zahlensysteme.htm
Proc Nr2ABC
Paramètres numéro!
Déclarer Wert$,reste%
Tandis que numéro! > 0
reste% = numéro! Mod 26
numéro! = numéro! \ 26
Si reste% = 0
numéro! = numéro! -1
reste% = 26
EndIf
Cas reste% > 0:Wert$ = Chr$(reste% + 64) + Wert$
Wend
Retour Wert$
ENDPROC
Proc ABC2Nr
Paramètres Text$
Déclarer numéro!,somme!,B$
WhileLoop Len(Text$),1,-1
B$ = $ Substr(Text$,&Boucle)
numéro! = Chr$(B$) * 26^(&Boucle-1)
somme! = somme! + numéro!
Wend
Retour somme!
ENDPROC
SubProc Créer.TextR
Retour @Contrôle("STATIC",@$(2),$50000002,@%(3),@%(4), \
@%(5),@%(6),@%(1),101, %hInstance)
ENDPROC
Proc Text_setzen
Paramètres cb&,txt&,txt1&
Déclarer Text$,Ergebnis!
Text$ = GetText $(txt&)
SetText txt1&,Str$((GetCurSel(cb&)) * Val(Text$))
Claire Text$
WhileLoop 0,se mettre%-1
Ergebnis! = Val(GetText $(txt1&[&Boucle])) + Ergebnis!
Text$ = Text$ + GetText $(cb&[&Boucle])
Wend
SetText txt_Ergebnis&,Str$(Ergebnis!)
SetText txt_Alphabet&,Text$
SetText txt_Nr2ABC&,Nr2ABC(Ergebnis!)
ENDPROC
Proc Button_Aktion
Paramètres btn&
Si GetText $(btn&) = "Null setzen"
SendMessage(cb&[focus%],$014E,0,0)
Text_setzen(cb&[focus%],txt&[focus%],txt1&[focus%])
SetText btn&,"Zufall"
D'autre
SendMessage(cb&[focus%],$014E,Tour(26),0)
Text_setzen(cb&[focus%],txt&[focus%],txt1&[focus%])
SetText btn&,"Null setzen"
EndIf
ENDPROC
Proc Alle_Null
Paramètres btn&
Si GetText $(btn&) = "alle zéro setzen"
WhileLoop 0,se mettre%-1
SendMessage(cb&[&Boucle],$014E,0,0)
Text_setzen(cb&[&Boucle],txt&[&Boucle],txt1&[&Boucle])
SetText btn&[&Boucle],"Zufall"
Wend
SetText btn&,"alle Zufall"
D'autre
WhileLoop 0,se mettre%-1
SendMessage(cb&[&Boucle],$014E,Tour(26),0)
Text_setzen(cb&[&Boucle],txt&[&Boucle],txt1&[&Boucle])
SetText btn&[&Boucle],"Null setzen"
Wend
SetText btn&,"alle zéro setzen"
EndIf
ENDPROC
Déclarer se mettre%
Stellen% = 10
Déclarer cb&[se mettre%],txt&[se mettre%],txt1&[se mettre%],A$,x%,b%,focushdl&,focus%,Ergebnis&
Déclarer btn&[se mettre% + 1]
b% = 118
x% = 120
Fenêtre Style 8 | 24 | 512
Fenêtre se mettre% * (b% + 24),300
SetDialogFont ~GetStockObject($11)
WhileLoop 26
a$ = a$ + Chr$(64 + &loop) + "|"
Wend
a$ = " |" + DelLast(a$,1)
MoveStrToList(a$,"|")
WhileLoop 0,se mettre%-1
cb&[&Boucle] = Créer("ChoiceBox",%hwnd,0,5 + &Boucle * x%,40,b%,160)
Créer("Tooltip",%hwnd,cb&[&Boucle],"26^" + Str$(se mettre%-1 - &Boucle))
MoveListToHandle(cb&[&Boucle])
SendMessage(cb&[&Boucle],$014E,0,0)
txt&[&Boucle] = Créer("TextR",%hwnd,»,5 + &Boucle * x%,10,b%,20)
txt1&[&Boucle] = Créer("TextR",%hwnd,»,5 + &Boucle * x%,80,b%,20)
btn&[&Boucle] = Créer("Button",%hwnd,"Zufall",5 + &Boucle * x%,110,b%,20)
Cas &Boucle = se mettre% - 1:btn&[&Boucle + 1] = Créer("Button",%hwnd,"Zufall",5 + (&Boucle + 1) * x%,110,b%,20)
Wend
Var txt_Alphabet& = Créer("TextR",%hwnd,»,5 + se mettre% * x%,40,b% + se mettre%,20)
Var txt_Ergebnis& = Créer("TextR",%hwnd,»,5 + se mettre% * x%,80,b%,20)
Var txt_Nr2ABC& = Créer("TextR",%hwnd,»,5 + se mettre% * x%,140,b%,20)
Set("Décimal",0)
WhileLoop 0,se mettre%-1
SetText txt&[se mettre%-1 - &Boucle],Str$(26^&Boucle)
Wend
Randomiser
Tandis que 1
WaitInput
focushdl& = %getfocus
WhileLoop 0,se mettre%-1
Cas focushdl& = cb&[&Boucle]:focus% = &Boucle
Si focushdl& = btn&[&Boucle]
focus% = &Boucle
EndIf
Wend
Si %clé = 2
Pause
ElseIf GetFocus(cb&[focus%])
Cas GetCurSel(cb&[focus%]) > -1:Text_setzen(cb&[focus%],txt&[focus%],txt1&[focus%])
ElseIf Clicked(btn&[focus%])
Button_Aktion(btn&[focus%])
ElseIf Clicked(btn&[se mettre%])
Alle_Null(btn&[se mettre%])
ElseIf %mousepressed = 2
CreateMenu
AppendMenu 100,"Summe kopieren"
AppendMenu 101,"Buchstaben kopieren"
TrackMenu %mousex,%mousey
Si MenuItem(100)
ClearClip
PutClip GetText $(txt_Ergebnis&)
ElseIf MenuItem(101)
ClearClip
PutClip GetText $(txt_Alphabet&)
EndIf
EndIf
Wend
ici ist encore une Auflistung: KompilierenMarqueSéparation
Proc Nr2ABC
Paramètres numéro!
Déclarer Wert$,reste%
Tandis que numéro! > 0
reste% = numéro! Mod 26
numéro! = numéro! \ 26
Si reste% = 0
numéro! = numéro! -1
reste% = 26
EndIf
Cas reste% > 0:Wert$ = Chr$(reste% + 64) + Wert$
Wend
Retour Wert$
ENDPROC
Cls
ShowMax
Déclarer se mettre%[6],Wert$[6],n%,a$,b$,OrdNr&,En-tête$,s$
Claire se mettre%[]
OrdNr& = 1
Var b% = %maxx \ 27 -1
WhileLoop 26
s$ = s$ + Chr$(64 + &loop) + ";1;" + Str$(b%) + ";"
Wend
s$ = ";0;" + Str$(b%) + ";" + s$
Var l& = Créer("GridBox",%hwnd,s$,0,2,2,Width(%hwnd)-4,Height(%hwnd)-4)
WhileLoop 26^2
WhileLoop 26
B$ = B$ + Nr2ABC(OrdNr&) + "|"
Inc OrdNr&
Wend
AddStrings(l&,Str$(OrdNr&-26) + "|" + b$)
Claire b$
Titre de la fenêtre Str$(OrdNr&) + " patience - und dir jusqu'à 26^3 (" + Str$(Int(26^3)) + ")"
Wend
Titre de la fenêtre Str$(OrdNr&) + " patience - und dir jusqu'à 26^3 (" + Str$(Int(26^3)) + ") fertig!"
Tandis que 1
WaitInput
Wend
|
|