Forum | | | | - page 1 - |
|  Julian Schmidt | Salut, je versuche justement payons dans un Buchstabenreihe trop konvertieren. cet devoir un ähnliches Format avons comment dans Excel.
A,B,C,D,E... AA,AB,AC,AD,AE... BA,BB,BC,BE... ZA,ZB,ZC... AAA,AAB... ABA,ABB... ZZY, ZZZ... AAAA, AAAB... cela es jusqu'à sur deux Buchstabenreihen funktioniert habe je bereits hingekommen. Mir fehlt mais irgendwie un Ansatz comment on cela plus hoch le calcul peux. je bräuchte aussi une vers-Funktion.
cls
var lbox&=Créer(ListBox, %hwnd, 0, 0, 0, width(%hwnd), height(%hwnd))
whileloop 26*30
AddStrings(lbox&,LetterOfNumber(&loop,1))
Endwhile
tandis que 1
waitinput
cas iskey(27) : end
Settext %hwnd,Str$(GetCurSel(lbox&))+" - "+GetString$(lbox&,GetCurSel(lbox&))
Endwhile
Proc LetterOfNumber
Paramètres number%,grossschreibung%
cas grossschreibung%=1 : var alphabet$="A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
cas grossschreibung%<>1 : var alphabet$="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
declare text$,ausnahme%
tandis que number%<>0
si number%<27
text$=text$+$ Substr(alphabet$,number%,»)
number%=0
d'autre
whileloop Round(number%/26,0)
si number%=(26*&loop)
text$=$ Substr(alphabet$,IF(Val($ Substr(Str$(number%/26),1,"."))-1>0,Val($ Substr(Str$(number%/26),1,"."))-1,1),»)+$ Substr(alphabet$,26,»)
ausnahme%=1
Endif
Endwhile
cas ausnahme%<>1 : text$=$ Substr(alphabet$,Val($ Substr(Str$(number%/26),1,".")),»)+text$
number%=number%-(26*Val($ Substr(Str$(number%/26),1,".")))
Endif
Endwhile
Retour text$
ENDPROC
LG
Julian57 |
| | | ˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗ Webseite [...]  | 08.10.2011 ▲ |
| |
| | | | - page 2 - |
|  | « cette Beitrag wurde comme Solution gekennzeichnet. » | | - page 4 - |
|  Jörg Sellmeyer | 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.
'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:
$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:
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
|
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 23.10.2011 ▲ |
| |  |
| |  Julian Schmidt | je steh justement mächtig sur den Schlauch! Mir fehlt wahrscheinlich pour cet devoir très viel (Grund-)savons trop Zahlensystemen? Ist la base 10 qui normale la base eines Dezimalsystems? quoi ist la base 26 pour un Zahlensystem? quoi pour Rechenschritte avoir lieu oui c'est ca beim umrechnen de Dezimal trop la base 26? Hat qui la base quoi avec (Zehner-)Potenzen trop 1faire? |
| | | | |
| |  | si quelque chose bereits sur page 1 einer Google-Suchergebnisliste steht ensuite ist cela informer inwiefern ne...aucune reiner amusement? 
Bau uns doch la fois un paire XProfanfunktionen qui cela 1faire quoi z.B. ici bebeispielt ist: [...]  |
| | | | |
| |  Julian Schmidt | Na joli, ici Schonmal une Funktion.... KompilierenMarqueSéparation comment on zur umkehrten Funktion venez habe je pas so entier verstanden. ici qui Wikipedia-Artikel hierzu...[...]  comment venez on ensuite zur entsprechenden Potenz? |
| | | | |
| |  Nico Madysa | j'ai bereits überlegt, si es pas simple un Umrechnen dans un autre Zahlenbasis ist. Habe ensuite mais aufgehört, weil cela manquer einer zéro mir trop viele Probleme bereitet hat. Beispiel: prenons à, A=1. ensuite folgt, dass Z=26 ist. alors ist AA=27. la première zweistellige numéro dans einem gewöhnlichen Zahlensystem, hat mais nie deux gleiche Les chiffres, siehe: 10. une et zéro. qui Logik ist dans etwa qui, comme serait on pour qui 9 avec qui 11 weitermachen. prenons à, A=0. ensuite folgt, dass Z=25 ist. alors ist 26=AA. mais A=0, alors ist AA=A=AAAAAAAA=0. il peut cet alphabetische Nummerierung folglich pas simple avec einem Zahlensystem gleichsetzen.
qui Solution mag viel einfacher son, mais, comment cela chez mir so ist, je viens pas sur elle. 
je melde mich wieder, si je une Solution habe ou bien encore une dummen Kommentar ablassen muss. |
| | | | |
| |  Jörg Sellmeyer | So devrait qui Zahlenreihe air: KompilierenMarqueSéparation qui zweie Reihe commence tout de suite avec BA à. AA entspricht 00 et AB, AC ist ensuite 01, 02... |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 13.10.2011 ▲ |
| |
| |  Jörg Sellmeyer | So - cela hat mir doch aucun Ruhe gelassen: ici ist mon Ergebnis: KompilierenMarqueSéparationDef $Werte "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Def $Alphabet "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Proc Umwandeln
Parameters Zahl&,Basis%
Declare Ergebnis&,Rest&,Wert$
Repeat
Ergebnis& = Zahl& \ Basis%
Rest& = Zahl& Mod Basis%
If Basis% = 26
Wert$ = SubStr$($Alphabet,Rest&+1) + Wert$
Else
Wert$ = SubStr$($Werte,Rest&+1) + Wert$
EndIf
Zahl& = Ergebnis&
Case Rest& = 0:Rest& = Ergebnis&
Until Rest& = 0
'hier sind noch zuviele Bedingungen, die man besser oben mathematisch abfangen könnte
Case Left$(Wert$,1)="0":Wert$=Del$(Wert$,1,1)
Case Wert$ = "":Wert$ = "0"
Case Left$(Wert$,1)="A":Wert$=Del$(Wert$,1,1)
Case Wert$ = "":Wert$ = "A"
Return Wert$
EndProc
Set("NumWidth",5)
'WhileLoop 0,500
'AddString Str$(&Loop) + " = " + Umwandeln(&Loop,26)
'Wend
Randomize
Declare Input&
WhileLoop 0,500
Input& = Rnd(100000)
AddString Str$(Input&) + " = " + Umwandeln(Input&,26)
Wend
ListBox$("Ergebnis"span class=s2>2)
peux nebenbei aussi encore comme Konverter pour beliebige numéro/la base-Konstellationen jusqu'à 36 verwendet volonté. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 16.10.2011 ▲ |
| |
| |  Julian Schmidt | très joli, seulement malheureusement überspringt il qui jeweiligen "A-Werte" Z.B. venez pour "Z", "BA". "AA" wäre qui de mir gewünschte Wert. |
| | | | |
| |  Jörg Sellmeyer | Hab je oui plus si déjà geschrieben: AA = 00 AB = 01 AC = 02 Im Dezimalsystem écris Du aussi pas 00,01,02,03... et ensuite 10,11,12... tu peux den Code anpassen, si bien que chez "einstelligen" Werten cela A vorangestellt wird. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 16.10.2011 ▲ |
| |
| |  Julian Schmidt | quoi mon du avec einstelligen Werten? Etwa si qui Rückgabe-Wert entre A-Z, 0-25 liegt? ensuite wäre entre ZZ et BA wieder cela Problem cela AA fehlt. Aussi serait la première Reihe A-Z manquer. |
| | | | |
| |  Nico Madysa | @Jörg: Habe mir deinen Code pas oui c'est ca angesehen (devrait eigentlich déjà depuis deux Stunden im Bett son ), mais quoi ist avec AAA? c'est oui cela Buchstabenäquivalent trop "000", handelst du cela aussi ab?
je fürchte presque, dass es ici keinen Trick gibt, mais qui offensichtliche Methode qui beste ist. |
| | | | |
| |  Jörg Sellmeyer | ça dépend, quoi on veut. si on payons dans Buchstaben transformer veux et un Äquivalent zum hexadezimalen ou bien octalen Zahlensystem avons veux, ergibt qui Kombination AA, AAA, AAAA, ... keinen Sinn. Zumindest pas, si cela A comme zéro herhalten soll. si on A (ou bien Z - je pour zéro) comme Mehrfachkombination avons veux, ist es pas plus: "Zahlen dans Buchstaben konvertieren", mais: "Buchstabenkombinationen machen".
et zum 3. la fois: AA fehlt pas, mais wird pas dargestellt, là qui Kombination "00" im Dezimalsystem schlicht pas vorkommt. |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 17.10.2011 ▲ |
| |
| |  Julian Schmidt | Jörg Sellmeyer (17.10.11)
si on A (ou bien Z - je pour zéro) comme Mehrfachkombination avons veux, ist es pas plus: "Zahlen dans Buchstaben konvertieren", mais: "Buchstabenkombinationen machen".
ensuite est es plan "Zahlen trop Buchstabenkombinationen konvertieren" mais j'ai déjà depuis Themenbeginn vorgegeben, comment qui Buchstabe folge son soll et cela "AA" définitif enthalten son sollte:
Julian57 (08.10.11)
A,B,C,D,E... AA,AB,AC,AD,AE... BA,BB,BC,BE... ZA,ZB,ZC... AAA,AAB... ABA,ABB... ZZY, ZZZ... AAAA, AAAB...
Jörg Sellmeyer (17.10.11)
et zum 3. la fois: AA fehlt pas, mais wird pas dargestellt, là qui Kombination "00" im Dezimalsystem schlicht pas vorkommt.
quoi peux on faire cela AA toutefois vorkommt? |
| | | | |
|
répondreOptions du sujet | 29.989 Views |
Themeninformationencet Thema hat 4 participant: |