// vk2001.cpp
#include <iostream>
#include <string>
/* 04 */ using namespace std;
/* 05 */ string piilossa;
/* 06 */ int color = 2;
/* 07 */ const int petaja = 6;
/* 08 */
/* 09 */ class cHiihtaja {
/* 10 */ double vauhti;
/* 11 */ public:
/* 12 */ cHiihtaja() { vauhti = 16.2; color++; }
/* 13 */ ~cHiihtaja() {
/* 14 */ if ( vauhti > 20 ) color += petaja;
/* 15 */ cout << "en oo! "; nayte();
/* 16 */ }
/* 17 */ void laakari(int hemo=0) {
/* 18 */ vauhti += hemo;
/* 19 */ }
/* 20 */ void nayte() {
/* 21 */ cout << color << " " << vauhti << "\n"; vauhti += 1;
/* 22 */ }
/* 23 */ };
/* 24 */
/* 25 */ void voitele(cHiihtaja isoniemi, int hess=2)
/* 26 */ {
/* 27 */ isoniemi.laakari(hess);
/* 28 */ isoniemi.nayte();
/* 29 */ }
/* 30 */
/* 31 */ int main(void)
/* 32 */ {
/* 33 */ cHiihtaja tyokalumetsa;
/* 34 */ int color = 2*petaja;
/* 35 */ tyokalumetsa.laakari(color);
/* 36 */ tyokalumetsa.nayte();
/* 37 */ {
/* 38 */ cHiihtaja pulmunen;
/* 39 */ pulmunen.laakari();
/* 40 */ pulmunen.nayte();
/* 41 */ voitele(tyokalumetsa,color++);
/* 42 */ }
/* 43 */ tyokalumetsa.nayte();
/* 44 */ return 0;
/* 45 */ }
Kissa istuu puussa! Opiskelija sihissee kysymyksiä pähkäillessään. Katolla kukko kiekuu.tulostuisi (erkoistapaukset päätetty tuossa käsitellä niin, että ensimmäinen otetaan):
puussa pähkäillessään. Katolla Opiskelija sihissee kysymyksiä pähkäillessään.
class cTaulukko1 {
int lkm;
int alkiot[5];
public:
...
};
class cTaulukko2 {
int max_koko;
int lkm;
int *alkiot;
public:
...
};
class cTaulukko3 {
int max_koko;
int lkm;
int **alkiot;
public:
...
};
class cTaulukko4 {
int lkm;
int *alkiot[5];
public:
...
};
int main(void)
{
cTaulukko1 luvut(5);
luvut.lisaa(2001); luvut.lisaa(22); // Kuva tästä tilanteesta
luvut.tulosta();
return 0;
}
int main(void)
{
cHavainto tammikuun_lammot;
cHavainto helmikuun_lammot;
cHavainto maaliskuun_lammot;
cHavainto alkuvuosi; // Tulostuu:
tammikuun_lammot.lisaa(-24.2);
tammikuun_lammot.tulosta(); // Havaintoja: 1 keskiarvo: -24.2
tammikuun_lammot.poista(-24.2);
tammikuun_lammot.tulosta(); // Havaintoja: 0 keskiarvo: 0
tammikuun_lammot.lisaa(-14.2);
tammikuun_lammot.lisaa(-20.5);
helmikuun_lammot.lisaa(-30.7);
helmikuun_lammot.lisaa(-7.5);
maaliskuun_lammot.lisaa(-18.6);
maaliskuun_lammot.lisaa(2.7);
maaliskuun_lammot.lisaa(-5.7);
alkuvuosi.lisaa(tammikuun_lammot);
alkuvuosi.lisaa(helmikuun_lammot);
alkuvuosi.lisaa(maaliskuun_lammot);
tammikuun_lammot.tulosta(); // Havaintoja: 2 keskiarvo: -17.35
helmikuun_lammot.tulosta(); // Havaintoja: 2 keskiarvo: -19.1
maaliskuun_lammot.tulosta(); // Havaintoja: 3 keskiarvo: -7.2
alkuvuosi.tulosta(); // Havaintoja: 7 keskiarvo: -13.5
return 0;
}
** erota - laittaa merkkijonon kahtia valitun merkin ** kohdalta ** erota - laittaa merkkijonon kahtia ensimmäisen ** valitun merkin kohdaltaja koodista: //------------------------------------------------------------------------------ inline vstring erota(vstring &jono, char merkki=' ',bool etsi_takaperin=false) // Erottaa jonosta valitun merkin kohdalta alkuosan ja loppuosan. // Alkuosa palautetaan funktion nimessä ja loppuosa jätetään // jonoon. Merkin etsimissuunta voidana valita (oletuksena alusta päin). // Jos merkkiä ei löydy, palautetaan koko jono ja tyhjennetään jono. // Käyttöesimerkki: olkoon aluksi string jono,s; // 1) jono = "123 456"; s = erota(jono); => jono == "456" s == "123" // 2) jono = "123"; s = erota(jono); => jono == "" s == "123" // 3) jono = "1 2 3"; // while ( jono != "" ) cout << erota(jono) << ","; => tulostaa 1,2,3, // { size_t p; if ( !etsi_takaperin ) p = jono.find(merkki); else p = jono.rfind(merkki); vstring alku = jono.substr(0,p); if ( p == vstring::npos ) jono = ""; else jono.erase(0,p+1); return alku; }
vstring erota(vstring &jono, const vstring &merkit,bool etsi_takaperin=false); ... //------------------------------------------------------------------------------ vstring erota(vstring &jono, const vstring &merkit,bool etsi_takaperin) // Erottaa jonosta valittujen merkkien kohdalta alkuosan ja loppuosan. // Alkuosa palautetaan funktion nimessä ja loppuosa jätetään // jonoon. Merkin etsimissuunta voidana valita (oletuksena alusta päin). // Jos merkkiä ei löydy, palautetaan koko jono ja tyhjennetään jono. // Käyttöesimerkki: olkoon aluksi string jono,s; // 1) jono = "123 456"; s = erota(jono," "); => jono == "456" s == "123" // 2) jono = "123"; s = erota(jono,";"); => jono == "" s == "123" // 3) jono = "1;2 3"; s = erota(jono," ;"); => jono == "2 3" s == "1" // { size_t p; if ( !etsi_takaperin ) p = jono.find_first_of(merkit); else p = jono.find_last_of(merkit); vstring alku = jono.substr(0,p); if ( p == vstring::npos ) jono = ""; else jono.erase(0,p+1); return alku; }