Tässä tehtävässä harjoitellaan edellisellä kierroksella opittujen asioiden lisäksi erityisesti seuraavia asioita:
Käynnistä Eclipse kurssin kotisivun ohjeiden mukaan, jos se ei ole jo käynnissä. Tee uusi projekti, jonka nimi on tehtava2_2. Luo sitten tähän projektiin moduuli ylityokorvauslaskuri ja kirjoita siihen ohjelma, joka laskee ja tulostaa käyttäjälle kuuluvan ylityökorvauksen, kun käyttäjä on ensin syöttänyt sille perustuntipalkkansa ja eri päivinä tekemänsä ylityötunnit.
Ylityökorvaus määräytyy seuraavasti: Jos työntekijä tekee yhtenä päivänä ylitöitä korkeintaan 2 tuntia, saa hän näiltä tunneilta 1,5-kertaisen tuntipalkan. Jos työntekijä tekee ylitöitä jonain päivänä yli 2 tuntia, saa hän ensimmäiseltä 2 tunnilta 1,5-kertaisen tuntipalkan ja niiden jälkeen tulevilta tunneilta 2-kertaisen tuntipalkan. (Oikeasti säännöt ovat monimutkaisempia ja vaihtelevat eri alojen työehtosopimusten mukaan, mutta tässä tehtävässä käytetään edellä annettuja sääntöjä.)
Ohjelma pyytää käyttäjää syöttämään ensin normaalin tuntipalkan (ilman ylityölisiä) ja sitten kunkin päivän ylityötunnit. Käyttäjä voi lopettaa antamalla negatiivisen tuntimäärän (jota ei oteta huomioon korvausta laskettaessa). Katso tarkemmin alla olevista esimerkkiajoista. Ohjelma siis laskee ensin kunkin päivän ylityökorvauksen erikseen ja lisää sen sitten yhteiskorvaukseen. Vain yhteiskorvaus tulostetaan.
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. Ohjelman ei tarvitse
varautua virheelliseen syötteeseen (esimerkiksi negatiiviseen tuntipalkkaan
tai siihen, että käyttäjä syöttää numeroiden sijasta kirjaimia.)
Testaa ohjelmasi monta kertaa ajamalla sitä itse Eclipsessä ennen kuin palautat sen Goblinille. Palauta Gobliniin tiedosto ylityokorvauslaskuri.py.
[ohjelman suoritus alkaa] Anna tyontekijan normaali tuntipalkka. 10.0 Anna eri paivina tehdyt ylityotunnit, paiva kerrallaan. Lopeta negatiivisella tuntimaaralla. Anna 1. paivan ylityotunnit. 5.0 Anna seuraavan paivan ylityotunnit. 0.0 Anna seuraavan paivan ylityotunnit. 1.5 Anna seuraavan paivan ylityotunnit. 2.0 Anna seuraavan paivan ylityotunnit. 0.0 Anna seuraavan paivan ylityotunnit. -1.0 Ylityokorvaukset ovat yhteensa 142.5 euroa. [ohjelman suoritus päättyy]
[ohjelman suoritus alkaa] Anna tyontekijan normaali tuntipalkka. 15.0 Anna eri paivina tehdyt ylityotunnit, paiva kerrallaan. Lopeta negatiivisella tuntimaaralla. Anna 1. paivan ylityotunnit. -3.5 Ylityokorvaukset ovat yhteensa 0.0 euroa. [ohjelman suoritus päättyy]
Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta