Jeg forutsetter at poeng i skihopp fremdeles regnes ut på denne måten:
poeng = (lengde - kritisk_punkt)*meterverdi + summen av stilkarakterer - laveste stilkarakter - høyeste stilkarakter
Jeg tar her bare for meg funksjoner og tabeller, ikke brukergrensesnitt.
Forutsetter at man gjennom et brukergrensesnitt har lagt inn
stilkarakterer, lengder osv. i en tabell med objekter (assosiativ
tabell) som etter at alle deltagere har hoppet ser slik ut:
(Forenkler til bare å ha en omgang.)
/// --- Konstanter --- /// const meterverdi: int = 1.4; const kritisk_punkt: int = 70; /// --- Tabell etter innlegging fra brukergrensesnitt --- /// /// Startnummer er indeksen i tabellen pluss 1 /// feltet poeng er ennu ikke regnet ut var resultater: Array = // Indeks er startnummer - 1 [ {navn: "Ferkenberg", lengde: 99, stilkarakterer: [15,16,14,15,17], poeng: 0 }, {navn: "Woxholdt", lengde: 91, stilkarakterer: [14,15,14,15,15], poeng: 0 }, {navn: "Snytenstrup", lengde: 101, stilkarakterer: [17,19,18,16,18], poeng: 0 } ]; /// --- Funksjon som summerer stilpoeng --- /// function stilpoeng(tabell:Array):int { tabell.sort(Array.NUMERIC); var sum:int = 0; for(var i:int = 1;i<tabell.length-1;i++) { sum += tabell[i]; }// for return sum; }//stilpoeng() /// --- Funksjon som regner ut poeng og legger i feltet poeng --- /// function regnUtPoeng(tabell: Array): void { var sk: Array; for(var i:int = 0; i< tabell.length;i++) { tabell[i].stilkarakterer.sort(Array.DESCENDING); tabell[i].poeng = (tabell[i].lengde-kritisk_punkt)*meterverdi+ stilpoeng(tabell[i].stilkarakterer); }// for }// regnUtPoeng() /// --- Tester funksjonene --- /// regnUtPoeng(resultater); resultater.sortOn("poeng",Array.DESCENDING); /// --- Skriver ut resultat-tabellen ---/// for(var i:int=0;i<resultater.length;i++) { trace("Deltager nr: " + (i+1)); trace(" Navn: " + resultater[i].navn); trace(" Poeng: " + resultater[i].poeng); }//for |