Tämä kurssi on jo päättynyt.

Tentti: valmistautuminen ja kysymykset

Tentti keskittyy kurssin ydinosaamistavoitteisiin teoreettisen sisällön osalta. Tentissä ei tarvitse koodata eikä tentissä odoteta täydellistä syntaksia.

Esimerkkitentti

  1. Kurssin nimi on Ohjelmointi 3: tekniikat. Selitä miksi kurssin ydinosaamistavoitteiden valossa. 6 pistettä.
  2. Selitä ko. termiparista, miten termit liittyvät yhteen. Huomaa, että termeissä voi olla useampia yhtenemiskohtia. 2 pistettä per kohta.
    • Luokkahierarkia — Rajapintaluokat
    • Polymorfismi — Periytymishierarkia
    • Abstrakti kantaluokka — Lokalisaatioperiaate
  3. Rajapintaluokka KaupunkiRPn rajapintadokumentaatio on liitteenä. Mitä dokumentaatiossa esiintyvät käsitteet tarkoittavat? Millaisia valvollisuuksia dokumentaation valossa kutsujalla on? MItä pitää ottaa huomioon rajapintaa toteutettaessa? 6 pistettä.
  4. Kirjoita (sanallisesti tai kaavalla, kuitenkin mahdollisimman täsmällisesti) esi- ja jälkiehto funktiolle. 2 pistettä per kohta. Esim:
void func( string& s )
{
      s.clear();
}
  1. Totta/epätotta, 1piste per kohta. Esim:
    • Abstrakteissa kantaluokissa määritellään sekä rajapintafunktiot että niiden kantaluokan toteutus.
    • Luokkahierarkioiden tarkoituksena on esittää, mitkä luokat käyttävät minkäkin toisen luokan palveluita.
    • Dynaaminen sitominen (dynamic binding) tarkoittaa sitä, että jäsenfunktion kutsun yhteydessä kutsuttava koodi valitaan vasta ajonaikana.

#. Kerro listauksen jäsenfunktioista, mitkä poikkeustakuut ne tarjoavat. Perustele valintasi mahdollisimman hyvin. ly.

class VectorInt
{
  public:
  VectorInt();
  ~VectorInt();

  int front() const;

  int& operator[](int location);
  int& at(int location);

     void push_back(int element);

     void swap(VectorInt& v);

     void insert(int location, int element);
     void insert(int location, VectorInt& values);

  private:
     int* datablock_; // This pointer will point to an array of integers allocated with new
     int blocksize_;  // Size of the allocated array
     int elementamount_;   // size of the area used from array
  };
Palautusta lähetetään...