• Ei tuloksia

TL5302 Olio-ohjelmointi Koe 2.3.2006 Ratkaisut

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "TL5302 Olio-ohjelmointi Koe 2.3.2006 Ratkaisut"

Copied!
3
0
0

Kokoteksti

(1)

TL5302 Olio-ohjelmointi Koe 2.3.2006

Ratkaisut

1. Tee ohjelma, joka kysyy opiskelijan nimen ja Olio-ohjelmointikurssin arvosanan.

Ohjelma tulostaa arvosanan tekstimuodosssa siten, että 5 = Kiitettävä, 3 ja 4 = Hyvä, 1 ja 2 = Tyydyttävä ja 0 = Hylätty. (6 p)

Harjoitus 2, Tehtävä 1:

http://www.oamk.fi/~jjauhiai/opetus/olio/h2t1.cpp

2. Oheinen C++-ohjelma vaihtaa kahden muuttujan sisällöt keskenään. Vaihto on tarkoitus toteuttaa funktiossa vaihda, joka käyttää viittausparametria. (6 p)

a. Lisää ohjelmaan vaihda-funktion prototyyppi. (1 p) b. Lisää vaihda-aliohjelmaan tarvittavat ohjelmarivit. (2 p)

c. Tee pääohjelmaan tarvittavat lisäykset, joiden avulla voit testata, toimiiko aliohjelma oikein. (3 p)

Harjoitus 2, Tehtävä 7:

http://www.oamk.fi/~jjauhiai/opetus/olio/h2t57.cpp

3. Alla olevassa ohjelmassa on esitetty päivämääräluokka Date. (6 p)

d. Lisää luokkaan oletusmuodostin, joka alustaa olion päivämäärällä 1.1.1970. (1 p)

e. Lisää luokkaan parametrillinen muodostin, jonka avulla olio voidaan alustaa luonnin yhteydessä haluttuun päivämäärään, esimerkiksi

Date tomorrow(20,4,2005); (1 p)

f. Lisää luokkaan set-ja get-metodit. Set-metodin avulla päivämäärä kysytään käyttäjältä ja get-metodi tulostaa päivämäärän cout:ia käyttäen.

(2 p)

g. Lisää pääohjelmaan tarvittava ohjelmakoodi, jonka avulla voit testata edellisten kohtien a) – c) asioita. (2 p)

#include <iostream>

using namespace std;

(2)

class Date { private:

int day;

int month;

int year;

public:

Date();//Oletusmuodostin

Date(int, int, int); //Parametrillinen muodostin

//Esimerkkiratkaisu set- ja get-metodeista.

//Muitakin on.

void setDate();

void getDate() const;

};

int main() {

Date today;

Date toinenpaiva(20,4,2006);

today.setDate();

toinenpaiva.getDate();

return 0;

}

Date::Date() {

day=1;

month=1;

year=1970;

}

Date::Date(int d, int m, int y) {

day=d;

month=m;

year=y;

}

void Date::setDate() {

cout << “Päivä ? “ << endl;

cin >> day;

cout << “Kuukausi ? “ << endl;

cin >> month;

cout << “Vuosi ? “ << endl;

cin >> year;

}

void Date::getDate() const {

cout << day << “/” << month << “/” << year << endl;

}

(3)

4. Ohessa on esitetty kompleksilukuluokan complex toteutus. Lisää ohjelmaan ylikuormatut metodit, joiden avulla voit:

a) Vähentää kaksi kompleksilukua toisistaan (1 p) b) Kertoa kaksi kompleksilukua keskenään (1 p)

c) Vertailla, kumpi kompleksiluvuista on itseisarvoltaan suurempi (2 p) Tee myös tarvittavat lisäykset pääohjelmaan (2 p):

Olio-ohjelmoinnin koe 19.4.2005, tehtävä 4:

http://www.oamk.fi/~jjauhiai/opetus/kokeita/olio-190405-ratkaisut.pdf

Viittaukset

LIITTYVÄT TIEDOSTOT

Arvoa kasvatetaan funktiossa f lauseella ::i++; Ensimmäisen kutsun jälkeen arvo on siis 1 ja toisen kutsun jälkeen 2.. Muuttuja 2 on pääohjelmassa määritelty

Kirjoita STL:n vector-luokkaa käyttävä ohjelma, joka kysyy käyttäjältä

Arvoa kasvatetaan funktiossa f lauseella ::i++; Ensimmäisen kutsun jälkeen arvo on siis 1 ja toisen kutsun jälkeen 2.. Muuttuja 2 on pääohjelmassa määritelty

Tee luokkiin tarvittavat muodostimet sekä metodit, joiden avulla voit laskea

tietotyyppi nimi(tietotyyppi *muuttuja, tietotyyppi *tietue, tietotyyppi *taulukko, tietotyyppi *tietuetaulukko …);. • Määrittely

• Jokaisen arvonnan jälkeen tietokone kysyy pelaajalta, haluaako pelaaja uuden kortin vai jääkö pelaaja kyseiseen summaan. • Pelaajan jälkeen tietokone arpoo

Luo johdettu luokka: Talo, joka perii rakennuksen ja ylläpitää tietoja makuuhuoneiden ja kylpyhuoneiden lukumääristä.. Luo johdettu luokka: Toimisto, joka perii rakennuksen

• private: vain luokan jäsenillä ja ystävillä (friend) on oikeus käsitellä jäseniä.. • protected: edellisten lisäksi luokasta periytyvillä johdetuilla luokilla on