Prøve IT2 - 17/12-2015

Kapittel 1..4, med fokus på kapittel 3 og 4.

Tid: 08:15 - 11:30


Del 1 - Teori - Uten hjelpemidler

Leveres på papir - Ingen hjelpemidler - Leveres før man starter med del 2.
(Bruk så lang tid du vil, men pass på at du får nok tid til å fullføre del 2 før 11:30 !)

1.

Skriv instruksjoner som deklarerer følgende størrelser som variabler med passende navn og datatype:

var tall1:         Number  =   7.125;
var tall2:         Number  =   2.13E5;   // eller 2.13e5, som på lommeregnere! 
var tekst:         String  =   "Julenissen kommer snart"; 
var julepresanger_kjopt: Boolean = true;
var heltall: int           =   2137;

2.

Skriv en instruksjon som regner ut kvadratet av et tall som ligger i variabelen tall og legger resultatet i tall-variabelen kvadrat.

var kvadrat: Number = tall*tall;   // eventuelt: kvadrat = Math.pow(tall,2)

3.

I et program har brukeren oppgitt verdier for dimensjonene til et rektangel. Verdiene er lagt i variablene bredde og lengde.
Skriv en instruksjon som regner ut arealet av rektanglet og leggerr resultatet i variabelen rektangel.

var rektangel: Number = bredde * lengde;

4.

Hvordan skriver vi relasjonsoperatorene "større enn", "større enn eller lik", "lik" og "forskjellig fra" ?

Større enn: >
Større enn eller lik: >=
Lik: ==
Forskjellig fra: !=

5.

I et program har brukeren oppgitt et årstall som svar på et spørsmål i en quiz-oppgave.
Årstallet har blitt lagt i heltallsvariabelen svar.

Skriv instruksjoner som sjekker om svaret som er avgitt er lik svaret i variabelen fasit,
og øker en heltallsvariabel poengteller med 5 hvis så er tilfelle.

if( svar == fasit ) {  
	poengteller += 5;
}

6.

I et program har brukeren oppgitt et årstall som svar på et spørsmål i en Quizoppgave.
Årstallet er blitt lagt i heltallsvariabelen svar.

Skriv instruksjoner som sjekker om svaret ligger mellom 1640 og 1650 og i så fall øker en
heltallsvariabel poeng med verdien 1.

if( (svar>1640) && (svar<1650) ) {  
	poeng++;
}

7.

I et program har brukeren lagt inn et beløp i et tekstfelt med navnet pris.

Skriv kode som henter det brukeren har skrevet fra tesktfeltet, konverterer til Number,
skriver resultatet til Ouput-dialogen i Flash med to desimaler.

var svar: Number = Number(pris.text);
trace( svar.toFixed(2) );

8.

I et program ligger det en tekst i variabelen tekst.
Beskriv med ord hva koden her egentlig gjør:

var i: int    =   -1;
var o: String =   "";
var n: int    =   0;
while(tekst.length > 0) {
	i = tekst.indexOf(" ");
	if(i >= 0) {
		o = tekst.substring(0,i);
   		tekst = tekst.substring(i+1,tekst.length);	//Var en trykkfeil her!
	}else{
		tekst="";
	}//if
	n++;
}//while
Gjenta sålenge det finnes tekst igjen
	Finn indeks til første mellomrom i teksten
	Hvis indeks funnet
		ord = tekst frem til første mellomrom
		tekst = tekst etter første mellomrom
	ellers
		sett tekst blank, da dette er siste ordet  
		Tell opp antall ord

Koden teller opp en tellevariabel n hver gang et ord fjernes  
fra starten av teksten inntil det ikke er flere ord igjen.
Koden teller altså antall ord i en tekst.

9.

Skriv en for-løkke som summerer sammen alle brøkene vi kan lage av to på hverandre
følgende tall fra 1 til 100: 2/1 + 3/2 + 4/3 + ... + 100/99 + 101/100

var sum: Number = 0.0;
for(var i: int = 1; i<=100; i++) {
	sum = sum + (i+1)/i;
}//for
trace("Summen av brøkene ble: " + sum);  

10.

Lag kode med for-løkke som skriver ut dette mønsteret i Output-dialogen i Flash:

*
 **
  ***
   ****
    *****
     ******
      *******
       ********
        *********
         **********
var blanke: String = "";
var linje:  String = "";
for(var i: int = 0; i < 10; i++) {  
	linje = linje + "*";  
	trace(blanke + linje);
	blanke = blanke + " ";
}//for

Del 2 - Praktisk - Med alle hjelpemidler

Leveres i It's Learning-mappen "17.12.15 - Levering av praktisk oppgave på del 2 av prøven" !

Hvis det er oppgitt to tall, for eksempel 3 og 10, så finnes det en matematisk formel for å finne summen
av alle tallene fra og med 3 til og med 10, altså 3+4+5+6+7+8+9+10 = 52. (Burde stått: ...av alle heltallene fra...)

Formelen er:

sum = (s+f) (s-f+1)/2

der f er det første tallet, altså 3, s er det siste, altså 10.

Lag en kalkulator, der brukeren oppgir det første og siste tallet, og hvor kalkulatoren regner ut
summen og viser resultatet i et tekstfelt på skjermen.

Bruk egenskapen .restrict og metoden replace() til å kontrollere brukerens inntastinger og tillate både punktum
og komma som desimalpunktum.
(Egentlig burde det stått: ...tillate bare heltall.)
Bruk dessuten systemfunksjonen isNaN() til sjekke om et utregnet areal er et tall, hvis ikke gi
en passende feilmelding.

Test om kalkulatoren gir svaret 49505500 for summen av alle tall fra og med 1000 til og med 10000.

/* 
   Input-komponenter i GUI:
      f og s hentes fra tekstfeltene tf_F og tf_S 
      I alle disse har vi satt egenskapen:
            restrict = "0-9"    (bare heltall)
   Knapp: btn_Beregn
   Output-komponenter i GUI:
   Summen legges ut i tekstfeltet tf_Sum
   Feilmelding ligger i tekstarealet ta_Fm 
*/
btn_Beregn.addEventListener(MouseEvent.CLICK, beregnKlikket);   
function beregnKlikket(evt: Event):void {
   // 1. Hent input fra bruker:
   var f: Number = Number(tf_F.text.replace(",","."));   // restrict egentlig unødvendig hvis bare heltall
   var s: Number = Number(tf_S.text.replace(",","."));   
   // 2. Utfør beregeninger:
   var sum: Number = (s+f)*(s-f+1)/2;
   // 3. Presenter resultat:
   if(isNaN(sum) ) {
      ta_Fm.visible = true;
      tf_Sum.text = " - ";
   }else{
      ta_Fm.visible = false;
      tf_Sum.text = String(sum);
   }//if 
}//beregnKlikket()