Oppgaver i kapittel 3

Løsningsskisser


Oppgave 1

/// ---  ActionScript --- ///

/*
    Oppgaver i variabler, tilordninger og datatyper.
    
    Oppgave 1
*/

var setning1: String = "Dette er setning 1";
var setning2: String = "Dette er setning 2";
var setning3: String = "Dette er setning 3";

trace(setning1+setning2+setning3);

trace("Med linjeskft:");

trace(setning1+"\n"+setning2+"\n"+setning3);

trace("Med tabulator:");

trace(setning1+"\t"+setning2+"\t"+setning3);


/// --- Output-vindu: ---///

Dette er setning 1Dette er setning 2Dette er setning 3
Med linjeskft:
Dette er setning 1
Dette er setning 2
Dette er setning 3
Med tab:
Dette er setning 1    Dette er setning 2    Dette er setning 3

Oppgave 2

/// --- ActionScript --- ///

/*
    Oppgaver i variabler, tilordninger og datatyper.
    
    Oppgave 2 - Volumet av en kasse
*/

var bredde:     Number = 15;
var lengde:     Number = 27;
var hoyde:     Number = 20;

var volum:    Number = bredde*lengde*hoyde;

trace("Vi har en kasse med bredde "+bredde+
      ", lengde "+lengde+" og høyde "+hoyde+
      ". Kassen har volumet "+volum+".");


/// --- Output-vindu: --- ///

Vi har en kasse med bredde 15, lengde 27 og høyde 20. Kassen har volumet 8100.


/// --- Versjon med funksjon --- ///

var bredde:     Number = 15;
var lengde:     Number = 27;
var hoyde:     Number = 20;

function volumAvKasse(b:Number,l:Number,h:Number):Number {
    return bredde*lengde*hoyde;
}//volum(b,l,h)

trace("Vi har en kasse med bredde "+bredde+
      ", lengde "+lengde+" og høyde "+hoyde+
      ". Kassen har volumet "+volumAvKasse(bredde,lengde,hoyde) );

Oppgave 3

/// --- ActionScript --- ///

/*
    Oppgaver i variabler, tilordninger og datatyper.
    
    Oppgave 3 - Pythagoras
*/

var k1: Number = 3.0;
var k2: Number = 4.0;


var h: Number = Math.sqrt(k1*k1+k2*k2);

trace( "En rettvinklet trekant med kateter "+k1+" og "+k2+"\n"+
       "har hypotenus "+h+".");

/// --- Output-vindu: --- ///

En rettvinklet trekant med kateter 3 og 4
har hypotenus 5.


/// --- Versjon med funksjon --- ///

var k1: Number = 3.0;
var k2: Number = 4.0;


function pythagoras(a:Number,b:Number):Number {
    return Math.sqrt(a*a+b*b);
}//pythagoras(a,b)

trace( "En rettvinklet trekant med kateter "+k1+" og "+k2+"\n"+
       "har hypotenus "+pythagoras(k1,k2)+".");

Oppgave 4

/// --- ActionScript --- ///

/*
    Oppgaver i variabler, tilordninger og datatyper.
    
    Oppgave 4 - "tekstgrafikk"
    
    Kan gjøres på flere måter...
*/

var linje1og5: String = " ----------------------";
var linje2og4: String = "|                      |";
var linje3:    String = "|    * * * * * * *     |";

trace( linje1og5+"\n"+
       linje2og4+"\n"+
       linje3+"\n"+
       linje2og4+"\n"+
       linje1og5+"\n");

/// --- Output-vindu: --- ///

 ----------------------
|                      |
|    * * * * * * *     |
|                      |
 ----------------------

/// --- Eksempel med funksjon --- ///


function gjenta(s:String,n:int):String {
    var resultat:String="";
    for(var i:int=0;i<n;i++){
        resultat+=s;
    }//for
    return resultat;
}//gjenta(s,n)


var linje1: String = " "+gjenta("-",22)+"\n";
var linje2: String = "|"+gjenta(" ",22)+"|\n";
var linje3: String = "|"+gjenta(" ",3)+gjenta(" *",7)+gjenta(" ",5)+"|\n";

trace(linje1+linje2+linje3+linje2+linje1);

Oppgave 5

/// --- ActionScript --- ///

/*
    Oppgaver i variabler, tilordninger og datatyper.
    
    Oppgave 5 - Logiske uttryk (relasjoner)
*/

var tall: Number = 4;

var m3og8: Boolean;
var s10ellerm5: Boolean;

m3og8=(tall>3) && (tall<8);
s10ellerm5=(tall>10) || (tall<5);

trace("Ligger tallet "+tall+" mellom 3 og 8:");
if(m3og8) {
    trace("Ja");
} else {
    trace("Nei");
}//if

trace("Er tallet "+tall+" større enn 10 eller mindre enn 5?");
if(s10ellerm5) {
    trace("Ja");
}else {
    trace("Nei");
}//if


/// --- Output-vindu: --- ///

Ligger tallet 4 mellom 3 og 8:
Ja
Er tallet 4 større enn 10 eller mindre enn 5?
Ja

Oppgave 6

/// --- ActionScript --- ///

/*
    Oppgaver i variabler, tilordninger og datatyper.
    
    Oppgave 6 - Tekstoperasjoner
*/

var antonsen:String=
        "Deretter fikk han rollen som den nevrotiske og vikarierende etatsjefen Tor Varhaug\n"+
        "i «Etaten», før han serverte humorglade nordmenn samlivsteraupauten Dag, i serien\n"+
        "med samme navn. Denne høsten har han også vært å se på kinolerretet, sammen med flere\n"+
        "andre kjente humorfjes, i «Kong Curling».";
        
trace(antonsen);

trace("Strengen inneholder "+antonsen.length+" tegn.");  //Obs: Linjeskift er også tegn...

trace("Bokstav nummer 8 er "+antonsen.charAt(7)+"."); //Obs: Teller fra 0, ikke 1...

trace("Tegnene i posisjonene 5,6,7 og 8 er "+antonsen.substr(4,4));  // Fra og med 5 til og med 8 er 4 tegn...

trace("\n"+
      "Med bare store bokstaver får vi:\n"+
      antonsen.toUpperCase());

trace("\n"+
      "Med bare små bokstaver får vi:\n"+
      antonsen.toLowerCase());

/// --- Output-vindu: --- ///

Deretter fikk han rollen som den nevrotiske og vikarierende etatsjefen Tor Varhaug
i «Etaten», før han serverte humorglade nordmenn samlivsteraupauten Dag, i serien
med samme navn. Denne høsten har han også vært å se på kinolerretet, sammen med flere
andre kjente humorfjes, i «Kong Curling».
Strengen inneholder 292 tegn.
Bokstav nummer 8 er r.
Tegnene i posisjonene 5,6,7 og 8 er tter

Med bare store bokstaver får vi:
DERETTER FIKK HAN ROLLEN SOM DEN NEVROTISKE OG VIKARIERENDE ETATSJEFEN TOR VARHAUG
I «ETATEN», FØR HAN SERVERTE HUMORGLADE NORDMENN SAMLIVSTERAUPAUTEN DAG, I SERIEN
MED SAMME NAVN. DENNE HØSTEN HAR HAN OGSÅ VÆRT Å SE PÅ KINOLERRETET, SAMMEN MED FLERE
ANDRE KJENTE HUMORFJES, I «KONG CURLING».

Med bare små bokstaver får vi:
deretter fikk han rollen som den nevrotiske og vikarierende etatsjefen tor varhaug
i «etaten», før han serverte humorglade nordmenn samlivsteraupauten dag, i serien
med samme navn. denne høsten har han også vært å se på kinolerretet, sammen med flere
andre kjente humorfjes, i «kong curling».


Oppgave 7

BMI-eksemplet side 65