Ohjelmointi++ 2002/ 23.4

Demo 13


Huom! Käsittely TIISTAINA 23.4 luentoaikaan. Demot nettiin klo 11:00 mennessä ti 23.4.

1.
Muuta n:\kurssit\cpp\moniste\demo\c-ohj\valuutts.cpp:n luokka cValuutat sellaiseksi, että perinnän tilalla käytetään koostamista. Mihinkään muualle ei saa tehdä muutoksia kuin tähän luokkaan (tavitsee uudemman kääntäjän, esim gcc 2.8.1 tai C++Builder 5.0, periatteessa voi tehdä hyvinkin ihan paperitehtävänä, jos omistaa vain vanhan kääntäjän).
2.
Täydennä seuraava ohjelma toimivaksi (tutustu try-cach käyttöön esim. monisteesta Olio-ohjelmointi ja C++ (tämäkin tehtävä voidaan tehdä toimivaksi vain uudemmilla kääntäjillä, jotka tukevat try-catch -rakennetta, esim. C++Builder 5.0 tai gcc)
// parillin.cpp
// Moniste löytyy myös
//
http://www.mit.jyu.fi/~vesal/kurssit/winohj/winohj/html/cpp/m.htm

class cParillinen { int n; public: cParillinen(int an) { ... täydennä ... } ~cParillinen() { ... täydennä ... } };

int main(void) { ... täydennä ... cParillinen p1(0); cParillinen p2(2); cParillinen p3(6); cParillinen p4(1); cParillinen p5(8); ... täydennä ... }

Ohjelman täytyy tulostaa (ja siihen saa laittaa vain yhden if-lauseen):

Alustettiin parillinen luku 0 Alustettiin parillinen luku 2 Alustettiin parillinen luku 6 Poistettiin luku 6 Poistettiin luku 2 Poistettiin luku 0 Luku 1 ei ole parillinen


3*4
Kirjoita ohjelma, joka kyselee nimiä kunnes annetaan tyhjä rivi ja tulostaa tämän jälkeen nimet aakkosjärjestyksessä. Nimet syötetään muodossa "Aku Ankka", mutta siitä huolimatta ne lajitellaan siten, että "Iines Ankka" < "Hannu Hanhi", eli sukunimen mukaan.
5.
Korjaa edellistä ohjelmaa siten, että Mac ja Mc alkuiset nimet aakkostuvat samaan kohtaan ("MacAnkka" == "McAnkka").
6.
Monisteen tehtävä 22.174 A_1 ja A_A
7.
Muuta pasianssiaohjelma (n:\kurssit\cpp\moniste\demo\c-ohj\pasi.cpp) kunnolliseksi olio-ohjelmaksi, eli tietueet luokiksi ja aliohjelmat metodeiksi.
8*9.
Muuta pasianssiaohjelmaa siten, että ohjelma piirtää lopuksi histogrammin siitä, millä todennäköisyydellä peli päättyy i:teen korttiin (siis esimerkiksi seuraavasti):
1 ************************
2 *****************
3 *********
4 ****
5 **
6 *
7 *
...

Malliohjelmassa luokka näytti seuraavalta: /*************************************************************************/ class cHisto { int lkm; long *esiintymat; public: cHisto(int n); ~cHisto(); int lisaa(int i); long etsi_max() const; int piirra() const; };

10.
Delphi-monisteen
http://www.math.jyu.fi/~vesal/kurssit/winohj/winohj/html/delphi/m.htm
Tehtävä 1.2 Edestakaisin

GURU-tehtävät

G1-2
Muuta demon 12 kellon tarkistus toimimaan try-catchillä.