Tässä tehtävässä harjoitellaan edellisellä kierroksella opittujen asioiden lisäksi erityisesti seuraavia asioita:
Tee Eclipseen uusi projekti, jonka nimi on tehtava2_3. Luo sitten tähän projektiin moduuli matkakortti ja kirjoita siihen ohjelma, joka laskee Espoossa asuvalle opiskelijalle, kannattaako hänen ladata matkakorttiinsa Espoon sisäinen kausilippu, seutukausilippu vai vain arvoa.
Espoossa asuvalle opiskelijalle 30 päivän sisäinen kausilippu maksaa 21,80 euroa ja seutukausilippu 44,20 euroa. Jos opiskelijalla on vain sisäinen kausilippu, joutuu hän maksamaan jokaisesta seutumatkasta 1,69 euron arvolipun. Jos opiskelijalla ei ole sisäistäkään kausilippua, joutuu hän maksamaan lisäksi jokaisesta Espoon sisäisestä matkasta 0,85 euron arvolipun. Sinun tehtävänäsi on kirjoittaa ohjelma, joka pyytää käyttäjältä arvion siitä, kuinka monta Espoon sisäistä matkaa ja seutumatkaa hän aikoo tehdä seuraavan 30 päivän aikana. Matkojen määrän mukaan ohjelma laskee, kannattaako käyttäjä hankkia seutukausilippu, Espoon sisäinen kausilippu vai matkustaa ilman kausilippua seuraavan 30 päivän aikana. Vertailun tuloksen mukaan ohjelma tulostaa joko
Sinun kannattaa hankkia seutukausilippu.tai
Sinun kannattaa hankkia sisainen kausilippu.tai
Sinun ei kannata hankkia kausilippua.Sen lisäksi ohjelma tulostaa jokaisessa vaihtoehdossa seuraavan 30 päivän matkakustannusten summan (mahdollinen kausilippu ja arvoliput yhteensä), esimerkiksi
Kuukausikustannus on 38.7 euroa.Voit olettaa, että opiskelijan tekemien muiden matkojen (lähiseutu, Helsingin sisäiset ym.) määrä on niin pieni, että niitä ei tarvitse ottaa huomioon vertailussa.
Voit olettaa, että käyttäjä antaa matkojen määrän kokonaislukuina. Syötteen järkevyyttä (esim. sitä, että matkojen määrä ei ole negatiivinen) ei tarvitse tarkistaa. Jos matkakustannukset kausilipulla ja arvolippuja käyttämällä ovat täsmälleen samat, kannattaa käyttäjän hankkia kausilippu, koska se antaa mahdollisuuden tehdä ylimääräisiä matkoja samalla hinnalla. Käytännössä nykyisillä lippujen hinnoilla tällaista vaihtoehtoa ei kuitenkaan esiiinny, kun matkojen määrät ovat kokonaislukuja.
Ole tarkka siitä, että ohjelmasi tulostus on täsmälleen (välimerkkejä
myöten) alla olevan mallin mukainen. Muista erityisesti lisätä
rivinvaihtomerkki raw_input
-käskyissä käyttäjälle
annettavan pyynnön loppuun. (Näin ohjelman tarkastus Goblinilla
sujuu ilman ylimääräisiä ongelmia.) Ohjelman tulostamia desimaalilukuja
ei tarvitse muotoilla, vaan voit antaa ohjelman tulostaa luvut
Python-tulkin käyttämällä oletustarkkuudella.
Testaa ohjelmasi monta kertaa ajamalla sitä itse Eclipsessä ennen kuin palautat sen Goblinille. Palauta Gobliniin tiedosto matkakortti.py.
[ohjelman suoritus alkaa] Anna sisaisten matkojen maara: 50 Anna seutumatkojen maara: 10 Sinun kannattaa hankkia sisainen kausilippu. Kuukausikustannus on 38.7 euroa. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa] Anna sisaisten matkojen maara: 15 Anna seutumatkojen maara: 15 Sinun ei kannata hankkia kausilippua. Kuukausikustannus on 38.1 euroa. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa] Anna sisaisten matkojen maara: 6 Anna seutumatkojen maara: 30 Sinun kannattaa hankkia seutukausilippu. Kuukausikustannus on 44.2 euroa. [ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta