Tik-76.119 Ohjelmistometodiikka - tentti 23.11.1994

Tik-76.119 Programming methodology - examination 23 November 1994

Merkitse koepaperiin kurssin nimi, päivämäärä, koko nimesi, koulutusohjelma ja opintokirjan

numero. [Write the following information on your paper.- The name of the course, date, your full

name, your study programme and your study book number]

1/4. Selitä lyhyesti (korkeintaan viisi riviä) seuraavat käsitteet: [Explain briefly (at most five Iines) the following concepts:) (max 6 p.)

(a) Abstrakti kantaluokka [Abstract base class)

(b) Moniperintä [Multiple inheritance)

(c) Funktiokutsujen dynaaminen sidonta [Dynamic bitiding of function calls)

(d) Funktion ylikuormitus [Function overloading)

(e) C++-kielen vakiojäsenfunktio. [Constant member function in the C++ language)

(f) C++-kielen staattinen jäsenfunktio. [Static member function in the C++ language)

214. Tiedon piilottaminen C++-kielessä. [information hiding in the C++ language.) (Max 6 p.)

314. Piirrä OMT-notaation mukainen oliokaavio,joka esittää seuraavat asiat kursseistaja opiskelijoista. [Draw the following an object model on university courses and students using the OMT notation. ] (max 6 p.)

* Kurssilla on nimi ja koodi. [A course has a name and a code.)

* Kustakin kurssista on kurssiversioita. Kustakin kurssiversiosta tallennetaan luennointivuosi ja lukukausi. [Each course has a number of course versions. Each version stores the year and term (spring or autumn) when the course version is lectured.)

* Kurssiversio muodostuu osista (merkitse tämä aggregaattina). Kukin osa on tentti, harjoitustyö tai kirjallinen raportti. Erilaisista osista tallennetaan erilaisia tietoja, mutta niistä ei välitetä tässä tehtävässä. [A course version is composed of course units (mark this as an aggregate). Each unit is an examination, an assignment or a written report. Different kinds of units store different data, but they can be ignored here.)

* Opiskelija on perusopiskelija tai jatko-opiskelija. Kustakin opiskelijasta tallennetaan nimi ja opintokirjan numero. Lisäksi perusopiskelijasta tallennetaan koulutusohjelman koodi ja jatko-opiskelijasta perustutkinnon suoritusvuosi. [A student is an undergraduate student or a graduate student. Name and study book number are stored for each student. Moreover a code for the degree programme is stored for on undergarudate student and the graduation year is stored for a graduate student.1

* Opiskelija voi olla suorittanut kurssien osia. Kustakin suorituksesta tallennetaan suorituspäivämäärä ja arvosana. [A student can have completed a number of course units. For each completed course unit, one stores a date and grade)

* Yksittäisten kurssin osien lisäksi opiskelija voi olla suorittanut kokonaisia kursseja. Kurssin suorituksesta tallennetaan samat tiedot kuin kurssien osien suorituksista. [In addition to individual course units, a student can have completed a number of courses as whole. The same data are stored for completed courses as for completed course units.)

4/4. Piirrä tilakaavio seuraavassa kuvattavan nauhurin toiminnasta. [Draw a state chart for the following tape recorder) (max 6 p.)

Kuvaus on epätäydellinen, mutta tehtävässä ei tarvitse keksiä uusia tiloja tai tapahtumia. [The description is incomplete but you dont have to invent new states or events. )

Nauhuri sisältää seuraavat kytkimet ja painonapit: [The recorder contains the following switches and buttons:)

* Virtakytkin. Virtakytkimen kääntäminen aiheuttaa tapahtumat "POWER ON" ja "POWER OFF"

[Power switch. Generates events "POWER ON" and "POWER OFF".]

* Pysäytysnappi. Painaminen aiheuttaa tapahtuman "STOP". [Stop button. Generates event "STOP".]

* Toistonappi. Painaminen aiheuttaa tapahtuman "PLAY". [Play button. Generates event "PLAY")

* Takaisinkelausnappi. Painaminen aiheuttaa tapahtuman "REWIND". [Rewind button.

Generates event "REWIND ". )

* Äänitysnappi. Painaminen ei aiheuta tapahtumaa, mutta napin asentoon voidaan viitata ehdoilla "REC DOWN" ja "REC UP". [Record button. Does not generate events but the position of the button can be tested with conditions "REC DOWN" and "REC UP ". )

Lisäksi nauhan kelautuminen alkuun tai loppuun aiheuttaa tapahtuman "TAPE AT END". [Moreover when either end of the tape is reached event "TAPE AT END " is generated)

Nauhurin tiloja ovat: OFF (virta pois), ON (virta päällä), STOP (pysäytys), PLAY (toisto), RECORD (nauhoitus), REWIND (takaisinkelaus) ja SCAN (kuvallinen takaisinkelaus). Nauhoitus aloitetaan painamalla toistonappia siten, että äänitysnappi on samalla alhaalla. Toisto, nauhoitus ja takaisinkelaus pysähtyvät automaattisesti nauhan loppuessa. Takaisinkelausnapin painaminen toistotilassa aiheuttaa siirtymisen kuvalliseen takaisinkelaukseen, josta päästään takaisin normaaliin toistoon painamalla toistonappia.

[The recorder has the following states: OFF (power off, ON (power on), STOP, PLAY, RECORD, REWIND and SCAN (fast reverse playback). Recording is started by pressing the play buiton while the record button is held down. Playing, recording and rewinding stop automatically when the end of the tape is reached. Fast reverse playback is started by pressing the rewind button during playback. Normal playback is continued when the play button is pressed again)