Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Koenumero - matemaattinen pulma

Petja [08.03.2012 15:27:37]

#

Laitoin viestin tänne. En tiedä olisiko pitänyt laittaa nettiohjelmointi-kategoriaan, mutta kuitenkin...

Olen laskemassa JavaScriptissä koenumeroa

prosentti = 100 / $('#maximum').val() * $('#points').val(); //Lasketaan, kuinka hyvin oppilaan koe on mennyt prosentuaalisesti
laskin = 23 / 100 * (prosentti - $('#percent').val()); //Palauteaan prosentuaalista osaamista vastaava luku väliltä 0-23.
switch (Math.round(laskin)){
case 1:
...}

Kerkisin jo kehuskelemaan skriptin toimintaa, mutta sitten pääsikin käymään pikku feilaus. Nimittäin muuttuja laskin laskee luvun aivan väärin. Huomasin tämän, kun yritin laskea skriptillä numeroa esimerkkioppilaalle. Oppilaalla oli 45 pistettä, eli maksimipistemäärä ja arvostelutiukkuus oli 30%. Numeroksi tuli 8½. Eihän se näin voi mennä: 45/45 = 10. Tämän jälkeen aloin tutkimaan koodia ja huomasinkin mistä kiikastaa.

En nyt vaan keksi mitään ratkaisua, miten koenumero lasketaan. Auttaisiko joku?

Lebe80 [08.03.2012 15:33:37]

#

Mitäs tuossa prosentissa oikein laskeskelet, itsellä tulisi ensimmäisenä mieleen kyllä jaella pisteet maksimilla eikä sataa maksimia kertaa pisteillä.

Metabolix [08.03.2012 15:39:11]

#

Haitko jotain tällaista?

// rajasuhde = rajaprosentti * 0.01;
raja = maksimi * rajasuhde;
arvosana = 4.5 + (10 - 4.5) * (pisteet - raja) / (maksimi - raja);

Prosentit ovat äärimmäisen epäkäytännöllinen pseudoyksikkö, joten käytännössä koskaan ei kannata "laskea prosenteilla", vaan käyttäjän syöttämät prosentit kannattaa muuttaa tavallisiksi luvuiksi (prosentti = per centum = 1/100 = 0,01).

Petja [08.03.2012 16:21:15]

#

@Lebe80 On huomattavasti selkeämpi jakaa sata maksimilla ja kertoa pisteillä, kuin ehdottamallasi tavalla, joka taas on vuorostaan helpompi.

@Metabolix Kyllä. Tuota hain. Miksi kommentoit rajasuhde-muuttujan?

Metabolix [08.03.2012 16:32:54]

#

En kommentoinut mitään muuttujaa, vaan kommentoin laskun ja sijoituksen. Muuttujat määritellään var-lauseilla.

Kommentoin kyseisen rivin, koska jos itse tekisin tuollaista järjestelmää, siinä ei olisi lainkaan prosentteja JS-koodin puolella, ellei tilaaja aivan erikseen vaatisi systeemiin tekstikenttää, johon saa käsin näppäillä arvon juuri prosentteina. Kuten jo äsken sanoin, prosenteista on laskuissa vain vaivaa.

Lebe80 [08.03.2012 16:36:09]

#

Petja kirjoitti:

@Lebe80 On huomattavasti selkeämpi jakaa sata maksimilla ja kertoa pisteillä, kuin ehdottamallasi tavalla, joka taas on vuorostaan helpompi.

Itse ainakin tykkään saada luvut 0-1 välille, jolloin se nimenomaan on selkeämpi (luku 1 on yläraja, 0 on alaraja) kertoa sitten luvulla.

Petja [08.03.2012 16:49:03]

#

Metabolix kirjoitti:

Muuttujat määritellään var-lauseilla.

Niin noh, olenhan toki alustanut nämä muuttujat varilla, mutta ne eivät näy tuossa pastaamassani koodiclipissä. Mutta oli miten oli..

Lebe80 kirjoitti:

Itse ainakin tykkään saada luvut 0-1 välille, jolloin se nimenomaan on selkeämpi (luku 1 on yläraja, 0 on alaraja) kertoa sitten luvulla.

Kullakin mielipiteensä. Minusta 100:n kuuluisi on yläraja, ja 0:n sitten alaraja. Toki kummallekin on omanlaisensa sovellutuksensa. Joskus on tarvetta prosentille, joskus desimaalille.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta