Kommentarer til eksamensoppgaven V2010 (01.06.2010)

Flystevne

H-P Ulven, 12.04.13

Oppgave 1

Her må dere sjekke ut at dere klarer:

Oppgave 2

I oppgave 2 og 3 brukes ordet "rutine". Uklart om de mener vi bare skal lage funksjoner eller om vi skal lage fullverdige applikasjoner med brukergrensesnitt.
Jeg har her valgt å lage applikasjoner.

Bildene av instrumentene er på no.wikipedia.org/wiki/Flyinstrumenter.
Lagres og importeres i Flash. I Flash konverter vi bildene til symboler og passer på å angi at de skal være Button og ikke MovieClip!

Lytterfunksjonene kan da gå videre til de forskjellige applikasjonene som vi kan legge i forskjellige nøkkelrammer med gotoAndPlay()-funksjonen.

De to applikasjonene i a) og b) er enkle å lage.

Selve beregningene kan gjøres omtrent slik:

// 2a)
/*******************************

Omtrent slik, hvis komponentene

    Input:  txtFart, txtAvstand, btnBeregn

    Output: txtTid	

er laget i Flash.

*********************************/



// Sett her eller i Flash:

txtFart.restrict = "0123456789.";



const KNOP: Number = 1.852;  //km/h
btnBeregn.addEventListener(MouseEvent.CLICK, beregnTid);

/*

	Henter brukerinput fra txtFart og txtAvstand,

	beregner tid og skriver ut i txtTid

*/

function beregnTid(evt: MouseEvent):void {

	var fart: Number = Number(txtFart.text);

	var avstand: Number = Number(txtAvstand.text);

	var tid: Number = 0.0;

	var timer: int = 0;

	var minutter: int = 0;

	

	if (isNaN(fart) || isNaN(avstand)) {

		txtTid.text = "NaN";

		trace("Feilmelding: Fart eller avstand ikke forstått!");

	} else {

		//t = s/v:

		tid = avstand/(fart*KNOP);	// I timer

		timer = Math.floor(tid);        // Stryker desimaler

		minutter = Math.floor((tid - timer)*60);

		txtTid.text = String(timer) + " h "+minutter + " min";

	}//if

}//beregnTid()

// 2b)

/*******************************

Tilsvarende 2a):

    const FOT2METER: Number = 0.3048;

	

    var hoydeIFot: Number = Number(txtHoyde.text);

	...

	var hoyde: Number = hoydeIFot*FOT2METER;

	...

	txtResultat.text = String(hoyde);

Oppgave 3

Oppslaget av avstandene gjøres som side 110-111 i læreboken.

Dette kan gjøres som i oppgave 6 på prøven 04.04.13, men koden der kan forenkles noe, ved å legge indeksene til byene direkte i komboboksene i data-delen,
eksempelvis vil den første komboboksen (fra-by) ha label: Gardermoen og data: 0 .

Da slipper vi å slå opp indeksene i en egen tabell med indexOf, slik det er vist i eksemplet i boken og på prøven 04.04.13, indeksene ligger ferdig i komboboksene
vi lager for fra-byer og til-byer.

Da kan koden bli seende omtrent slik ut:

// 3)

/*****************************************

Forutsetter komboboks cbFraBy og cbTilBy,

der label er satt til bynavn og data til

riktig indeks for tabelloppslag.

*****************************************/
var avstander: Array = [

                           [ 0,40,60,100,150,200],

                           [40, 0,50, 80,130,180]

                       ];
...
var indeksfraby: int = cbFraBy.selectedItem.data;

var indekstilby: int = cbTilBy.selectedItem.data;
var avstand: int = avstander[indeksfraby][indekstilby];
var tid: Number = avstand/(fart*KNOP);
...

Oppgave 4 - Planlegging


Vår mal, for applikasjoner, har vært:

Men, her foreslår oppgaven hovedpunkter, for nettsider, så vi følger den:
(Dette er bare i overskrifts- og stikkordsform, må skrive litt mer enn det som står her, men det er en grei disposisjon
for det planleggingsdokumentet som må skrives.)