Prøve IT2 - 18.12.2104

Løsningsskisser


Del 1 - Teori - Uten hjelpemidler

1.

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

var tall:    Number  = 5.32;

var tekst:   String  = "Informasjonsteknologi er et interessant og nyttig fag"; 

var ikkeLikeGamle: Boolean = true;

var heltall: int     = 7;

2.

Skriv en instruksjon som regner ut tredje potens av et tall som ligger i variabelen "tall" og legger resultatet i tall-variabelen "potens".

// Bør kjenne til  vanlige regneoperasjoner  

// og funksjoner som  ligger i Math-klassen!
var potens: Number = Math.pow(tall,3);

Bør kjenne til en del vanlige regneoperasjoner i Math-klassen:

Math.pow(grunntall, eksponent), Math.sqrt(tall), osv. Se Math.

3.

I et program har brukeren oppgitt verdiene til a, b og c i abc-formelen for løsning av andregradsligninger.
Skriv de to instruksjonene som regner ut de to løsningene og legger dem i variablene x1 og x2.

var d: Number = Math.sqrt(b*b-4*a*c);

var x1: Number = (-b+d)/(2*a);

var x2: Number = (-b-d)/(2*a);

4.

Hvordan skriver vi de logiske operasjonene OG, ELLER og IKKE i ActionScript?

Og:         &&  
Eller:      ||
Ikke:        !

5.

Hvordan skriver vi relasjonsoperatoren "Forskjellig fra" i ActionScript?

  !=   

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.

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: 1/2+2/3+3/4+...+99/100+100/101

var sum: Number = 0.0;

for(var i: int = 1; i<=100; i++) {

	sum = sum + i/(i+1);

}//for

trace("Summen av brøkene ble: " + sum);  

8.

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 j: int = 0; j < 10; j++) {

	linje = "*" + blanke + "*";  

	trace(linje);

	blanke = blanke + " ";

}//for

trace("************");
Alternativ for siste linje:   

   Løkke til og med j=10

   if(j==10){

      trace(linje.replace(" ","*"));

   }

9.

I et program har brukeren skrevet inn et tall i tekstfeltet som har variabelnavnet "hoyde".

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

 

var tall: Number = Number(hoyde.text);

trace( tall.toPrecision(3) );

10.

I et program ligger det en tekst i variabelen "t". (Sto feil i oppgave; "tekst" )
Beskriv med ord hva koden her egentlig gjør:

while(t.length > 0) {

	i = t.indexOf(" ");

	if(i >= 0) {

		o = t.substring(0,i);

   		t = t.substring(i+1,t.length);

	}else{

		t="";

	}//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.
( For å gjøre det klarere burde jeg ha tatt med deklarasjonen av n: 

    var n: int = 0; )

Del 2 - Praktisk - Med alle hjelpemidler

Leveres i It's Learning-mappen "18.12.14 Prøve, praktisk del"

En trekants form og areal er entydig bestemt hvis vi får oppgitt lengdene på alle sidene, la oss kalle dem a, b og c.
I skolematematikken lærer vi ingen formel som kan regne ut arealet direkte ut fra de tre sidene, men en slik formel finnes og heter Herons formel:

der s = (a+b+c)/2. (Halvparten av summen av sidelengdene.)

Lag en kalkulator som regner ut arealet av en trekant, når brukeren oppgir lengdene på sidene a, b og c.

Bruk egenskapen .restrict og metoden replace() til å kontrollere brukerens inntastinger og tillate både punktum og komma som desimalpunktum.
Bruk dessuten systemfunksjonen isNaN() til sjekke om et utregnet areal er et tall, hvis ikke gi en passende feilmelding.
Svaret skal rundes av til 3 gjeldende siffer.

/*

	Herons arealformel
	Input-komponenter i GUI:

	   a,b og c hentes fra tekstfeltene tf_A, tf_B, tf_C

	   I alle disse har vi satt egenskapen:

	      restrict = "0-9.,"

	   Knapp:   btn_Beregn
	Output-komponenter i GUI:

	   Areal legges ut i tekstfeltet tf_Areal

	   Feilmelding ligger i tekstarealet ta_Feilmelding    

*/
btn_Beregn.addEventListener(MouseEvent.CLICK, beregnKlikket);
function beregnKlikket(evt: Event):void {
          // 1. Hent input fra bruker:

	var a: Number = Number(tf_A.text.replace(",","."));

	var b: Number = Number(tf_B.text.replace(",","."));

	var c: Number = Number(tf_C.text.replace(",","."));
	// 2. Utfør beregeninger:

	var s: Number = (a+b+c)/2;

	var areal: Number = Math.sqrt(s*(s-a)*(s-b)*(s-c));
	// 3. Presenter resultat:

	if(isNaN(areal) ) {

		tf_Feilmelding.visible = true;

		tf_Areal.text = " - ";

	}else{

		tf_Feilmelding.visible = false;

		tf_Areal.text = areal.toPrecision(3);

	}//if 
}//beregnKlikket()