Dahl Skrevet 20. juni 2003 Del Skrevet 20. juni 2003 Hei! Jeg holder på å lage ett relativt avansert script. Jeg har en drøss med variabler med tallverdier, og vil at disse skal skrives ut på skjermen i rekkefølge, med det laveste tallet først. Jeg vil også finne gjennomsnittet. Noen som skjønner hva jeg mener, og vet om en måte å gjøre det på? Takker MASSE for svar! Lenke til kommentar
b-urn Skrevet 20. juni 2003 Del Skrevet 20. juni 2003 More Input.. need more input! Litt utydelig.. har du noe kode du har skrevet allerede som vi kan ta en titt på? Lenke til kommentar
Dahl Skrevet 21. juni 2003 Forfatter Del Skrevet 21. juni 2003 More Input.. need more input!Litt utydelig.. har du noe kode du har skrevet allerede som vi kan ta en titt på? Koden er altfor stor for at jeg kan poste den her, over 500 linjer... Skal prøve å forklare det litt bedre: Jeg har en masse variabler med forskjellige tallverdier. Alle disse variablene skal skrives ut på skjermen, med en variabelen som har lavest verdi først. Så skal den som har nest størst verdi skrives ut, så den med 3. størst verdi, osv.... I tillegg vil jeg gjerne vite hvordan jeg kan finne gjennomsnittet til alle variablene. Håper at det ble litt lettere å forstå nå! :smile: Lenke til kommentar
abcd423417984 Skrevet 21. juni 2003 Del Skrevet 21. juni 2003 hvordan er variablene lagret? i en array? Lenke til kommentar
Dahl Skrevet 21. juni 2003 Forfatter Del Skrevet 21. juni 2003 hvordan er variablene lagret? i en array? Nei. De er lagret slik som dette: testvariabel1="10" testvariabel2="20" Ok? Lenke til kommentar
b-urn Skrevet 21. juni 2003 Del Skrevet 21. juni 2003 Hvis du har navnsatt all variablene dine slik du har indikert kan du gjøre noe slikt: <SCRIPT LANGUAGE='javascript'> var testVariabel1 = "13"; var testVariabel2 = "11"; var testVariabel3 = "23"; //Funksjon som kopierer variabelverdier inn i array function fncConvert(strVarNameBase, intCount) { var int_Array = new Array(); for(var i=0; i<intCount;i++) { var strVarName = strVarNameBase + (i+1); int_Array[i] = eval(strVarName); } int_Array.sort(); return int_Array; } //Bruk var data = fncConvert("testVariabel",3); var sum = 0; var intCount = data.length; for(var i=intCount-1;i>=0;i--) { document.write ('Verdi av testVariabel' + (i+1) + ':' + data[i] + '<br>'); sum += 1.0*data[i]; } document.write('Gjennomsnitt:' + sum/intCount ); </SCRIPT> Edit: glemte sorteringen BIW Lenke til kommentar
Dahl Skrevet 22. juni 2003 Forfatter Del Skrevet 22. juni 2003 Takk. Får ikke testa den akkurat nå, men den funker sikkert. Viser denne koden bare gjennomsnittet, eller skriver den også variablene ut i rekkefølge? Lenke til kommentar
b-urn Skrevet 22. juni 2003 Del Skrevet 22. juni 2003 Takk.Får ikke testa den akkurat nå, men den funker sikkert. Viser denne koden bare gjennomsnittet, eller skriver den også variablene ut i rekkefølge? Skriver ut variablene i rekkefølge og gjennomsnitt. Jeg ser jeg leste litt feil og har skrevet ut verdiene i synkende rekkefølge (største verdi først). Hvis du må ha minste verdi først, bytter du bare for-løkken til: for(var i=0;i<lngCount;i++) { ... } BIW Lenke til kommentar
Dahl Skrevet 23. juni 2003 Forfatter Del Skrevet 23. juni 2003 Takk takk. Testet scriptet, og gjennomsnittgreia funket. Men det gjorde ikke den biten som skulle skrive ut variablene i rekkefølge. Med noen tall så funket den, men andre ganger så funket den ikke. Og variablene heter heller ikke Testvariabel1, testvariabel2 osv, det var bare for å vise hvordan jeg har lagret de. Vet du (eller andre) om noen andre måter å gjøre det på? Lenke til kommentar
b-urn Skrevet 23. juni 2003 Del Skrevet 23. juni 2003 Veldig vanskelig å svare deg på generell basis... Det hadde vært en fordel om du kunne vist til ihvertfall deler av koden din. Relle eksempler på navnsetting for eksempel? Inneholder noen av variablene dine strenger? Arrays? Testet scriptet, og gjennomsnittgreia funket. Men det gjorde ikke den biten som skulle skrive ut variablene i rekkefølge Det her gir ikke mening. Hvordan kan gjennomsnittet regnes ut riktig, hvis delsummene er feilaktige? Da må det i tilfelle være utskriving til skjerm som feiler. Hvis variablene dine ikke er navnsatt i rekkefølge kan du opprette en array med alle navnene og hente dem derfra istedet for å generere navn dynamisk. Jeg vil gjerne vite litt mer om problemstillingen, før jeg evt skriver om koden til å fungere slik. BIW Lenke til kommentar
Dahl Skrevet 24. juni 2003 Forfatter Del Skrevet 24. juni 2003 Hvorfor må jeg egentlig lagre variablene som en array? Navnene på variablene er helt forskjellig, de innholder kun engelske tegn, og _. Foreksempel Test_variabel. Det eneste jeg trenger er en funksjon som viser den variabelen med høyest tallverdi først, så den med nest størst osv. Det burde jo egentlig ikke være så sabla vanskelig! Lenke til kommentar
b-urn Skrevet 24. juni 2003 Del Skrevet 24. juni 2003 Hvorfor må jeg egentlig lagre variablene som en array? Navnene på variablene er helt forskjellig, de innholder kun engelske tegn, og _. Foreksempel Test_variabel. Det eneste jeg trenger er en funksjon som viser den variabelen med høyest tallverdi først, så den med nest størst osv. Det burde jo egentlig ikke være så sabla vanskelig! *sukk* Array'en må du ha for å kunne skrive ut verdier gjentatte ganger i en for-løkke. Alternativet blir å skrive ut variablene én for én. Alternativt må en liste over deklarerte variable i dokumentet hentes via scriptmotoren eller noe. Tror ikke det er mulig i javascript. Lenke til kommentar
Dahl Skrevet 27. juni 2003 Forfatter Del Skrevet 27. juni 2003 Nå funker det første scriptet du ga meg! Jeg var nok bare litt trøtt når jeg testet det (selv om klokka var ti på halv 4 ). for(var i=0;i<lngCount;i++) { ... } Dette fikk jeg ikke til å funke. Gidder du å poste hele koden på nytt, med den kodesnutten inne i? Lenke til kommentar
b-urn Skrevet 27. juni 2003 Del Skrevet 27. juni 2003 Her er koden med utskrift for både stigende og avtagende rekkefølge. <SCRIPT LANGUAGE='javascript'> var testVariabel1 = "13"; var testVariabel2 = "11"; var testVariabel3 = "23"; //Funksjon som kopierer variabelverdier inn i array function fncConvert(strVarNameBase, intCount) { var int_Array = new Array(); for(var i=0; i<intCount;i++) { var strVarName = strVarNameBase + (i+1); int_Array[i] = eval(strVarName); } int_Array.sort(); return int_Array; } //Bruk var data = fncConvert("testVariabel",3); var sum = 0; var intCount = data.length; //Data i avtagende rekkefølge document.write('Avtagende:<BR>'); for(var i=intCount-1;i>=0;i--) { document.write ('Verdi av testVariabel' + (i+1) + ':' + data[i] + '<br>'); sum += 1.0*data[i]; } //Data i Stigende rekkefølge document.write('<BR>'); document.write('Stigende:<BR>'); for(var i=0;i<intCount;i++) { document.write ('Verdi av testVariabel' + (i+1) + ':' + data[i] + '<br>'); sum += 1.0*data[i]; } document.write('<BR>'); document.write('Gjennomsnitt:' + sum/intCount ); </SCRIPT> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå