Kommentarer til eksamen V 2009 (04.06.2009)

Stortingsvalg

H-P Ulven 24.04.13

Oppgave 1

Bilde-redigering med Photoshop eller Paint: Størrelse, kompresjon, oppløsning.

Konverter video til .flv (Flash Video) eller .fl4 (Flash Video nytt format) med Adobe Media Encoder CS 5. For å unngå versjonsproblematikk antagelig lurt å velge .flv.

Oppgave 2

Omtrent som tidligere quiz vi har laget (se /H2008)

Datastruktur, kan bruke forskjellige tabeller for spørsmål, alternativ en, to og tre, fasit og svar, men naturlig å legge alt i en tabell ved å kombinere Array og assosiative tabeller:

const ANTALL_SPORSMAL: int = 3;
var quiz: Array = 
[
   {  sporsmal:   "Hvilket parti osv...",
      media:      "solberg.jpg",
      alternativ: ["H", "Frp", "SV" ],
      fasit:      0
   },
   {  sporsmal:   "Spill av lydkuttet. Hvem hører du?",
      media:      "hoybraten.mp3",
      alternativ: ["KM Bondevik","D Høybråten","L Sponheim" ],
      fasit:      1
   },
   {  sporsmal:   "Spill av intervjuet du ... osv ",
      media:      "stoltenberg.flv",
      alternativ: ["H og Frp", "H, Krf og V", "H, Krf, V og S"],
      fasit:      1
   }
];
var brukersvar: Array = new Array(ANTALL_SPORSMAL];

(Kan også legge datastrukturen i en XML-variabel eller i en XML-fil.)

Lurt å lage noen funksjoner som gjør de viktigste operasjonene:

(Forutsetter at blåfarvede komponenter er lagt inn i Flash.)

(Veksler mellom lyd, bilde og video, ved å skifte mellom å skjule og vise bilde- og video-komponent,
som begge har egenskapen visible, som alt på skjermen arver fra den overordnede klassen DisplayObject.)

/**************************************
   Funksjon som kalles hver gang vi 
   skifter skjermbilde.
**************************************/
function settOppGui(index: int): void {
   // Setter opp tekstene i skjermbildet:
   txtSporsmal.text = quiz[index].sporsmal;
   txtAlt1.text = quiz[index].alternativ[0];
   txtAlt2.text = quiz[index].alternativ[1];
   txtAlt3.text = quiz[index].alternativ[2];
   // Finner ut endelsen på filnavn (jpg, mp3, flv )
   var medianavn: String = quiz[index].media;
   var lengde: int = medianavn.length;
   var endelse: String = medianavn.substr(lengde-3,3);
   // Bruker riktig media komponent: 
   if( endelse == "jpg" ) {
      bildeloader.source = medianavn;                  // UILoader komponent
      bildeloader.visible = true;
      videospiller.visible = false;
   } else if( endelse == "mp3" ) {
      videospiller.visible = false;
      bildeviser.visible = false;
      lyd.load(new URLRequest(medianavn));            // lyd: Sound
   } else if( endelse == "flv" ) {
      videospiller.source = medianavn;
      videospiller.visible = true;
      bildeviser.visible = false;
   }//if
}//settOppGui()
/**************************************
   Funksjon som kalles hver gang vi 
   skifter skjermbilde. 
**************************************/
function lagreSvar(index:int,): void {
   brukersvar[index] = int(rbAlt1.group.selectedData);
}//lagreSvar()

Lytterfunksjoner som teller opp spørsmålsnummer, bruker funksjonene over og går til neste skjermbilde klarer dere selv.

 

I resultatskjermbildet må vi telle opp og lage en rapport til brukeren, omtrent noe slikt:

var antallriktige: int = 0;
var rapport:String = "";                // rapport streng bygges opp etter hvert

    for(var i:int = 0;i < quiz.length;i++) {
         if( brukersvar[i] == quiz[i].fasit ){
             antallriktige++;
	   rapport += quiz[i].sporsmal + " RIKTIG\n";
         } else  {
            var rettSvar:String="";
            if(quiz[i].fasit == 0) {
               rettSvar=quiz[i].alternativ[0];
            } else if(quiz[i].fasit == 1) {
               rettSvar=quiz[i].alternativ[1];
            } else if(quiz[i].fasit == 2 ) {
               rettSvar=quiz[i].alternativ[2];
            }//if
            respons += quiz[i].sporsmal + " GALT(Rett svar: "+rettSvar+")\n";
         }if
    }//for
    var prosent:Number = (antallriktige/quiz.length) * 100;
    txtOppsummering.appendText("Du fikk " + antallriktige + " rette av " + sporsmaal.length + " mulige\n");
    if( antallriktige == quiz.length) {
       txtOppsummering.appendText("Gratulerer  med alt riktig! (Vi regner med at du har jukset?) \n");
    }//if
    txtOppsummering.appendText("Dette tilsvarer en prosentandel på "+prosent.toFixed(1)+" %\n");
    txtOppsummering.appendText("Du svarte riktig/feil på følgende spørsmål:\n\n");
    txtOppsummering.appendText(respons); 

Oppgave 3

Dokumentasjon som er relevant:

Jeg synes det er mest naturlig å tolke dokumentasjon som dokumentasjon for applikasjonen, ikke dokumentasjon for hele prosjektet:

Ordet "dokumentasjon" kan også oppfattes som "Prosjektdokumentasjon", men å lage dokumentasjon i samtlige faser i et prosjekt blir for mye på en eksamen.

Løsningsforslag jeg har sett på konferanser og på nettet, tolker "dokumentasjon" som dokumentasjon av hele prosjektet.
IT-prosjekter har mange faser og det er derfor umulig å dokumentere alle. Løsningsforslag jeg har sett omtaler derfor de
fire viktigste fasene:

Viktig å lese slike oppgaver og vurdere hva man skal bruke tid på. Skriv i besvarelsen hvilke forutsetninger og tolkninger du har lagt deg på.