14.6.4 Kertaustehtäviä
Kirjoita seuraavat funktiot tai aliohjelmat sekä kirjoita kullekin oma
testipääohjelma.
- Kirjoita funktio int suurin_kirjeen_paino(double rahaa) joka
palauttaa mikä on suurin kirjeen paino, joka voidaan
lähettää rahamäärällä rahaa.
Olkoon postimaksut:
korkeintaan 50 g 2.10 mk
korkeintaan 100 g 3.40 mk
korkeintaan 200 g 5.20 mk
korkeintaan 500 g 9.30 mk
- Kirjoita aliohjelma kysy_ika, joka kysyy henkilön iän ja
palauttaa sen parametrinaan. Ikää kysytään kunnes
iäksi on vastattu luku väliltä 18- 65 vuotta. Aliohjelman
nimessä palautetaan tieto siitä, monestiko ikää piti
kysyä ennenkuin hyväksytty tulos saatiin.
- Kirjoita funktio palindromi, joka palauttaa nimessään tiedon
siitä (1=kyllä, 0=ei) onko parametrina välitetty sana palindromi
vai ei.
- Kirjoita funktio laske_merkin_maarat, joka palauttaa
nimessään tiedon siitä, monestiko parametrina välitetty
merkki esiintyy parametrina välitetyssä jonossa (HUOM! ei
täysin sama kuin laske_merkit, mikä ero?).
merkki = 's'
jono = "Kissa" - > palauttaa 2
- Kirjoita aliohjelma vero, joka toimii seuraavasti:
esimerkki
aliohjelma vero (nimessä ei mitään)
parametrit: brutto 20000.0 (syöttö, input)
vero 20.0 (syöttö, input)
- > netto 16000.0 (palautus, output)
- > verottajalle 4000.0 (palautus, output)
- Kirjoita funktio maara_alennus, joka laskee tavaroiden hinnan ja
myöntää siihen määräalennuksen, mikäli
tavaraa ostetaan enemmän kuin tiettyä rajaa (toimii esim.
seuraavasti):
esimerkki 1 esimerkki 2
funktio maara_alennus
parametrit: kpl_hinta 10.0 10.0
ostos_maara 3.0 10.0
alennus_raja 5.0 5.0
alennus % 20.0 20.0
nimessä - > 30.0 80.0
- Kirjoita muuta_jono_pvmksi matkien aliohjelma
mjono_ajaksi.
- Muuta mjono_ajaksi aliohjelmaa siten, että se toimii
seuraavasti:
jono tun min sek sad
"14" - > 14 0 0 0
"14:30" - > 14 30 0 0
"14:30:25" - > 14 30 25 0
"14:30:25.20" - > 14 30 25 20
- Kirjoita edelliselle käänteinen aliohjelma aika_mjonoksi.
-
- Muuta aika_mjonoksi - aliohjelmaa siten, että
välitetään aika- tyypin lisäksi muotoa kuvaava parametri
seuraavasti:
0 - > muutetaan muotoon "14:30"
1 - > muutetaan muotoon "14:30:25"
2 - > muutetaan muotoon "14:30:25.20"
-
- Kirjoita testipääohjelma, jossa kysytään kellonaikaa
merkkijonoon kunnes ajaksi vastataan q (kannattaa kutsua
lue_jono_oletus - aliohjelmaa) ja muutetaan tämä sitten
mjono_ajaksi - aliohjelmalla ja tulostetaan aikatyyppi
käyttäen apuna aika_mjonoksi - aliohjelmaa.
-
- Muuta aika_mjonoksi - aliohjelmaa siten, että muoto-
parametrin arvoilla 0 ja 1 suoritetaan katkaisun sijasta pyöristys.
14 30 35 45 - > "14:31"
14 30 29 30 - > "14:30"
14 30 30 00 - > "14:31"
14 30 35 45 - > "14:30:36"
- Lisää aiemmin esitettyyn luokkaan cAika metodit
jonoksi ja sijoita, jotka mukailevat aliohjelmia
mjono_ajaksi ja aika_mjonoksi.