Helsingin yliopisto / tietojenkäsittelytieteen osasto / Ohjelmointitekniikka (JavaScript) / © Arto Wikla 2018

Ohjelmointitekniikka (JavaScript): kurssikoe 20.12.2018/AW

Kirjoita jokaiseen vastauspaperiisi kurssin nimi ja kokeen päivämäärä sekä nimesi, opiskelijanumerosi ja myös allekirjoituksesi. Suorituksen pistemäärä lasketaan kaavalla
maksimi(läsnäolopisteet+harjoituspisteet+koepisteet,(60/36)*koepisteet).
Suorituksen hyväksymisen edellytyksenä on vähintään 30 pisteen saaminen. Kokeesta pitää lisäksi saada vähintään puolet pisteistä eli 18 pistettä.

  1. Selitä täsmällisesti ja esimerkkejä antaen (12 pistettä):

    1. funktio ja lohko näkyvyysalueena
    2. prototype- ja __proto__-kenttien tehtävä
    3. sulkeuma, vapaa ja sidottu muuttuja

  2. Piirrä syntyneet oliot ja niiden väliset linkitykset seuraavan ohjelman suorituksen aikana numeroiduissa kohdissa – siis neljä kuvaa. Ylimmän eli Object- ja Function-tason olioiden keskinäisiä suhteita ei tarvitse piirtää, mutta ohjelmassa syntyvien olioiden suhteet noihin olioihin on piirrettävä näkyviin. (12 pistettä):
       function Elain () {
          this.pituus = 0;
          this.pain0  = 0;
        }
    
        function Ihminen () {
          this.nimi = "NN";
        }
        ///// kohta 1 /////
    
        Ihminen.prototype = new Elain();
        ///// kohta 2 /////
    
        var matti = new Ihminen()
        matti.nimi = "Matti"
        ///// kohta 3 /////
    
        function Opiskelija () {
           this.pääaine  = "?";
           this.pisteitä = 0;
        }
        Opiskelija.prototype = new Ihminen();
    
        var liisa = new Opiskelija()
        liisa.pääaine = "tkt"
        ///// kohta 4 /////
    

    1. Millainen on anonyymin sulkeuman avulla ohjelmoitava modulirakenne (Module Pattern) ja millaisin eri tavoin sitä voidaan käyttää? (6 pistettä)

    2. Ohjelmoi tietorakenne pino moduulina (Module Pattern), joka tarjoaa palvelut push ja pop. Pino on toteutettava taulukkona, joka piilotetaan modulin sisään. Operaatio push painaa arvon pinoon, operaatio pop poistaa pinon päällimmäisen alkion ja palauttaa sen arvonaan. Ratkaisu on tehtävä "omin käsin" eli pinon toteuttavia varusfunktioita ei saa käyttää! (6 pistettä)