// astia1.cpp // Vesa Lappalainen 15.2.2001 //--------------------------------------------------------------------------- /* Luokka ja ohjelma yksinkertaisessa muodossa. Katso kehitys: astia.cpp ja astia2.cpp Pelillä demonstroidaan/harjoitellaan miten voidaan kahdella astialla, 5 l ja 8 l, muodostaa kaikki mahdolliset tilavuudet 1-13 l. Pelissä on kaksi varsinaista astiaa: a5 ja a8, sekä kolmas apuastia ampari. Nestettä voidaan kerrallaan kaataa yhdestä astiasta toiseen joko siten, että astian koko sisältö tyhjennetään jos se mahtuu tai astista kaadetaan sen verran että toinen astia tulee täyteen. */ #include class cAstia { double tilavuus; double maara; public: cAstia(double itilavuus) { tilavuus = itilavuus; maara = 0; } void tayta() { maara = tilavuus; } void kaada(cAstia &astia) { double siirrettava = astia.tilavuus - astia.maara; if ( maara < siirrettava ) siirrettava = maara; astia.maara += siirrettava; maara -= siirrettava; } double getMaara() const { return maara; } }; //--------------------------------------------------------------------------- int main(void) { cAstia astia5l(5),astia8l(8), ampari(100); ampari.tayta(); ampari.kaada(astia8l); astia8l.kaada(astia5l); cout << "8 litran astiassa on " << astia8l.getMaara() << " litraa nestettä\n"; return 0; } //---------------------------------------------------------------------------