Noen poenger:
- Bruk lag med navn slik at sensor ser at du er ryddig og strukturert.
- Bilen i denne oppgaven kan godt ha roterende hjul, så får du vist kompetanse på å sammensatte objekter hvor delene animeres hver for seg. (Hvert movieclip har egen tidslinje!)
- Bør bruke såpass mange rammer på animasjonen at den blir jevn og pen.
- Bør se tydelig forskjell på farten før fotgjenger oppdages og bremsingen etterpå.
Noen poenger:
- Fint om man har litt kontroll av brukerinput og feilmeldinger hvis bruker skriver noe galt.
Bruk:
- Egenskapen restrict i TextField. (Eksempel: txtInn.restrict = "0-9,."; )
- Metoden replace() i String. (Eksempel: txtInn.replace(",","."); )
- Test med funksjonen isNaN(). (Eksempel: if( isNaN(tall) ) { ... } )
- Bør ha kommentarer i koden, sensorveiledning og sensorer legger vekt på dette.
- Bruk navn på variabler, ikke bare kall variablene a, b, c osv. (i og j på tellevariabler i for-løkker er derimot vanlig og helt greit.)
(Har tatt med visning av reaksjons- og bremselengde, selvom oppgaven egentlig bare ber om stopplengde.)
Variabler deklarert inne i funksjoner er bare tilgjengelig inne i funksjonene! Vi må derfor ha felles variabler utenfor funksjonene (Globale variabler).
Start enkelt og rydd opp i feilmeldinger etterhvert, slik at dere vet når og hvorfor de dukker opp!
Det er også lettere å lokalisere feil hvis programmet er delt opp i flere funksjoner. I dette eksempelt kunne beregn-funksjonen vært
delt opp ytterligere, i for eksempel: hentBrukerInput(), utforBeregninger() og presenterResultater().
/************************************* Heldagsprøve IT 2 Bremselengdeoppgave. *************************************/import flash.events.MouseEvent; import fl.controls.ComboBox;/// --- Data --- ///var friksjonskoeffisient: Number = 0.0; var hastighet: Number = 0.0; var reaksjonslengde: Number = 0.0; var bremselengde: Number = 0.0; var stopplengde: Number = 0.0;/// --- Brukergrensesnitt --- ///cb_friksjonskoeffisient.selectedIndex = 0; // Default: Tørr asfalt, første valg/// --- Lytterfunksjon/Hovedprogram --- ///btn_beregn.addEventListener(MouseEvent.CLICK, beregn);/* Lytterfunksjon som foretar beregninger og presenterer resultatet. */ function beregn(evt: MouseEvent): void {// Henter brukerinput: hastighet = Number(ns_hastighet.value); friksjonskoeffisient = Number(cb_friksjonskoeffisient.selectedItem.data);// Utfører beregninger: reaksjonslengde = beregnReaksjonslengde(hastighet); bremselengde = beregnBremselengde(hastighet,friksjonskoeffisient); stopplengde = reaksjonslengde + bremselengde;// Presenterer resultat: var rapport: String = "Reaksjonslengde: " + reaksjonslengde.toFixed(0) + "\n" + "Bremselengde: " + bremselengde.toFixed(0) + "\n" + "Stopplengde: " + stopplengde.toFixed(0) + "\n"; ta_utregning.text = rapport; }//beregn()/// --- Funksjoner --- ///function beregnBremselengde(h:Number, f: Number): Number{ return h*h/(250*f); }//beregnBremselengde()function beregnReaksjonslengde(h: Number): Number { return h/3.6; }//beregnReaksjonslengde()
Oppgave 3 taes det ofte lett på, men dette er ikke lurt, da sensorene ofte vekter dokumentasjonsoppgaver til 25-30% av hele oppgavesettet!
Se også side 193-195 i PiAS!
Det som ikke skal stå i
test-dokumentasjonen er resultater av testing du selv har gjort.
Test-dokumentasjonen skal beskrive hvordan testing skal foregå.
(De som eventuelt gjennomfører denne testen vil selvfølgelig
skrive en rapport, men det blir et helt annet dokument som ikke
hører med i selve test-dokumentasjonen.)