04. maj 2003 - 16:34
Der er
19 kommentarer og 1 løsning
Mest for Harry Potter Fans: Lommeregner
Jeg er lige kørt fast i at lave en lommeregner, der regner med talsystemet i Harry Potters valuta (Der går 29 Knut på et SølvSejl (Sol), og der går 17 Sølvsejl (Sol) på en Galleon (Gal). Men den virker ikke. Hjælp, be'om...
Annonceindlæg fra Barco
Vise, hvad du har lavet, jeg kan ikke gætte hvad dit problem er ...
Undskyld, glemte jeg lige. Her: <!-- Minus AutoDato --> <FORM NAME="Formen"> <INPUT TYPE="button" VALUE="Regn det ud" NAME="RegnUd" onclick="Calculate();"> <br> <INPUT TYPE="text" NAME="L1"> <INPUT TYPE="text" NAME="L2"> </FORM> <SCRIPT TYPE="text/javascript"> /* R = Resultat A = Antal på den valuta over P = Plus L = Liste over */ function Calculate(){ var Gal, Gal2, Sol, Sol2, Knut, Knut2; var RGal, RSol, RKnut; var ASol = 17, AKnut = 29; var PSol = 0, PGal = 0; var LR; DefineVars(); Debugger("DefineVars();"); Corrigate1(); Debugger("Corrigate1();"); Calc(); Debugger("Calc();"); // Corrigate2(); Debugger("Corrigate2();"); SetVar(); Debugger("SetVar();"); function Corrigate1(){ if (RKnut >= AKnut){ RKnut = RKnut%AKnut; } if (RSol >= ASol){ RSol = RSol%ASol; } } function Corrigate2(){ if (RKnut >= AKnut){ RKnut = RKnut%AKnut; PSol = Math.ceil(RKnut/AKnut); } if (RSol >= ASol){ RSol = (RSol%ASol)+PSol; PGal = Math.ceil(RSol/ASol)+PSol; } } function DefineVars(){ L1 = document.Formen.L1.value; L2 = document.Formen.L2.value; L1 = L1.split(","); L2 = L2.split(","); Gal = Number(L1[0], 10); Gal2 = Number(L2[0], 10); Sol = Number(L1[1], 10); Sol2 = Number(L2[1], 10); Knut = Number(L1[2], 10); Knut2 = Number(L2[2], 10); } function SetVar(){ LR = RGal + ", " + RSol + ", " + RKnut; } function Calc(){ RKnut = Knut + Knut2; Corrigate2(); Debugger("Corrigate2();"); RSol = Sol + Sol2 + PSol; Corrigate2(); Debugger("Corrigate2();"); RGal = Gal + Gal2 + PGal; Corrigate2(); Debugger("Corrigate2();"); } function Debugger(Func){ document.write("<B>" + Func + "</B><BR>L1 = " + L1 + "<BR>L2 = " + L2 + "<BR>PGal = " + PGal + "<BR>PSol = " + PSol + "<BR>RKnut%AKnut = " + RKnut%AKnut + "<BR>(RSol%ASol)+PSol = " + ((RSol%ASol)+PSol) + "<BR>RGal = " + RGal + "<BR>RSol = " + RSol + "<BR>RKnut = " + RKnut + "<BR>LR = " + LR + "<BR>Gal = " + Gal + "<BR>Gal2 = " + Gal2 + "<BR>Sol = " + Sol + "<BR>Sol2 = " + Sol2 + "<BR>Knut = " + Knut + "<BR>Knut2 = " + Knut2 + "<P>--<P>"); } document.write(LR); } </SCRIPT> Grund til, at der er så meget er, at jeg har gjort den så overskuelig som muligt... (Forhåbenligt...)
Jeg ville beregne det hele i Knut'er, og så vise resultatet ved heltalsdivision med hhv. 493 og 29. På den måde kan du lave nogle helt generelle procedurer, på den måde du har lavet det skal du bruge mange kræfter på at holde hovedet lige. hth jes
function DefineVars(){ L1 = document.Formen.L1.value; L2 = document.Formen.L2.value; L1 = L1.split(","); L2 = L2.split(","); Gal = Number(L1[0], 10); Gal2 = Number(L2[0], 10); Sol = Number(L1[1], 10); Sol2 = Number(L2[1], 10); Knut = Number(L1[2], 10) + (29 * Sol) + (493 * Gal); Knut2 = Number(L2[2], 10) + (29 * Sol2) + (493 * Gal2); } Og så kun een Corrigate: function Corrigate(){ RGal = RKnut%493; RSol = (RKnut - (RGal*493))%17; RKnut = RKnut - (RGal*493) - (RSol*17); } mvh jes
Undskyld, selvfølgelig: function Corrigate(){ RGal = Math.floor(RKnut/493); RSol = Math.floor((RKnut - (RGal*493))/17); RKnut = RKnut - (RGal*493) - (RSol*17); }
Jeg accepterer hvis du lige vil være så venlig at skrive hele scriptet, for jeg kan ikke rigtigt få det flettet ind...
<FORM NAME="Formen"> <INPUT TYPE="button" VALUE="Regn det ud" NAME="RegnUd" onclick="Calculate();"> <br> <INPUT TYPE="text" NAME="L1"> <INPUT TYPE="text" NAME="L2"> </FORM> <SCRIPT TYPE="text/javascript"> /* R = Resultat A = Antal på den valuta over P = Plus L = Liste over */ function Calculate(){ var Gal, Gal2, Sol, Sol2, Knut, Knut2; var RGal, RSol, RKnut; var ASol = 17, AKnut = 29; var PSol = 0, PGal = 0; var LR; DefineVars(); Debugger("DefineVars();"); Calc(); Debugger("Calc();"); SetVar(); Debugger("SetVar();"); function Corrigate(){ RGal = Math.floor(RKnut/493); RSol = Math.floor((RKnut - (RGal*493))/17); RKnut = RKnut - (RGal*493) - (RSol*17); } function DefineVars(){ L1 = document.Formen.L1.value; L2 = document.Formen.L2.value; L1 = L1.split(","); L2 = L2.split(","); Gal = Number(L1[0], 10); Gal2 = Number(L2[0], 10); Sol = Number(L1[1], 10); Sol2 = Number(L2[1], 10); Knut = Number(L1[2], 10) + (29 * Sol) + (493 * Gal); Knut2 = Number(L2[2], 10) + (29 * Sol2) + (493 * Gal2); } function SetVar(){ LR = RGal + ", " + RSol + ", " + RKnut; } function Calc(){ RKnut = Knut + Knut2; Corrigate(); Debugger("Corrigate();"); } function Debugger(Func){ document.write("<B>" + Func + "</B><BR>L1 = " + L1 + "<BR>L2 = " + L2 + "<BR>PGal = " + PGal + "<BR>PSol = " + PSol + "<BR>RKnut%AKnut = " + RKnut%AKnut + "<BR>(RSol%ASol)+PSol = " + ((RSol%ASol)+PSol) + "<BR>RGal = " + RGal + "<BR>RSol = " + RSol + "<BR>RKnut = " + RKnut + "<BR>LR = " + LR + "<BR>Gal = " + Gal + "<BR>Gal2 = " + Gal2 + "<BR>Sol = " + Sol + "<BR>Sol2 = " + Sol2 + "<BR>Knut = " + Knut + "<BR>Knut2 = " + Knut2 + "<P>--<P>"); } document.write(LR); } </SCRIPT> Kiggede på det gennem svar-ruden, så ...
Overskueligheden steg også en anelse, hva' Kan ikke lige se fejl ved langsom debugging ...
Du skal vist lave noget mere Onscreen-scripting, for det virker ikke (Prøv at skrive "1,1,1" og "1,1,1". Jeg afviser indtil videre, men bare bliv ved...
function Corrigate(){ RGal = Math.floor(RKnut/493); RSol = Math.floor((RKnut - (RGal*493))/29); RKnut = RKnut - (RGal*493) - (RSol*29); } Det var jo Knut'er på Sol'er, så en bedre ville være <SCRIPT TYPE="text/javascript"> /* R = Resultat A = Antal på den valuta over P = Plus L = Liste over */ function Calculate(){ var Gal, Gal2, Sol, Sol2, Knut, Knut2; var RGal, RSol, RKnut; var ASol = 17, AKnut = 29; var PSol = 0, PGal = 0; var LR; DefineVars(); Debugger("DefineVars();"); Calc(); Debugger("Calc();"); SetVar(); Debugger("SetVar();"); function Corrigate(){ RGal = Math.floor(RKnut/(ASol*AKnut)); RSol = Math.floor((RKnut - (RGal*ASol*AKnut))/AKnut); RKnut = RKnut - (RGal*ASol*AKnut) - (RSol*AKnut); } function DefineVars(){ L1 = document.Formen.L1.value; L2 = document.Formen.L2.value; L1 = L1.split(","); L2 = L2.split(","); Gal = Number(L1[0], 10); Gal2 = Number(L2[0], 10); Sol = Number(L1[1], 10); Sol2 = Number(L2[1], 10); Knut = Number(L1[2], 10) + (AKnut * Sol) + (ASOL * AKnut * Gal); Knut2 = Number(L2[2], 10) + (AKnut * Sol2) + (ASOL * AKnut * Gal2); } function SetVar(){ LR = RGal + ", " + RSol + ", " + RKnut; } function Calc(){ RKnut = Knut + Knut2; Corrigate(); Debugger("Corrigate();"); } function Debugger(Func){ document.write("<B>" + Func + "</B><BR>L1 = " + L1 + "<BR>L2 = " + L2 + "<BR>PGal = " + PGal + "<BR>PSol = " + PSol + "<BR>RKnut%AKnut = " + RKnut%AKnut + "<BR>(RSol%ASol)+PSol = " + ((RSol%ASol)+PSol) + "<BR>RGal = " + RGal + "<BR>RSol = " + RSol + "<BR>RKnut = " + RKnut + "<BR>LR = " + LR + "<BR>Gal = " + Gal + "<BR>Gal2 = " + Gal2 + "<BR>Sol = " + Sol + "<BR>Sol2 = " + Sol2 + "<BR>Knut = " + Knut + "<BR>Knut2 = " + Knut2 + "<P>--<P>"); } document.write(LR); } </SCRIPT>
Smukt mand. Never has on man done so much for another man.
25. juni 2003 - 15:47
#14
Kom den til at virke eller hva?
25. juni 2003 - 15:50
#15
-- selve scriptet fungerede ihvertfald upåklageligt *-)
25. juni 2003 - 15:52
#16
Hvem har rettighederne til denne lommeregner? Jeg er ved at starte en potter fanside og er der muglig hed for at ligge den ud på dette site?
25. juni 2003 - 15:55
#17
Rettigheden til scriptet har Ekspertens brugere, så du er ganske velkommen til at bruge det ...
25. juni 2003 - 15:57
#18
Nogen der kan forklare hvordan jeg kan indsætter sådan en?
25. juni 2003 - 15:59
#19
Jeg testede med to tekst-boxe, men ville nok vælge noget med nogle knapper, som kunne både lægge til, trække fra og sådan noget ...
25. juni 2003 - 16:00
#20
:S.... okay jeg må hellere droppe iden... Jeg fatter det ik:)
Vi tilbyder markedets bedste kurser inden for webudvikling