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å.