Kierros 6, tehtävä 2

Esseepisteet (150 p)

Tässä tehtävässä harjoitellaan erityisesti seuraavia asioita:

Tee Eclipseen uusi projekti, jonka nimi on tehtava6_2, ja luo tähän projektiin moduuli esseepisteet. Kirjoita moduuliin ohjelma, joka laskee eräällä kurssilla opiskelijalle esseistä tulevat lisäpisteet. Pisteiden kertyminen on selitetty tarkemmin alla.

Eräällä kurssilla opiskelija voi saada lisäpisteitä tenttiin palauttamalla kurssin aiheita käsitteleviä esseitä. Kukin essee pisteytetään, ja jos esseen pisteet ovat vähintään 20, mutta alle 30, saa opiskelija siitä tenttiin yhden lisäpisteen. Jos esseen pisteet ovat vähintään 30, saa opiskelija siitä tenttiin kaksi lisäpistettä. Esseitä voi palauttaa usemman kappaleen, ja niistä saa jokaisesta lisäpisteet erikseen.

Kirjoita Python-ohjelma, joka pyytää käyttäjältä ensin esseiden lukumäärän ja sitten yksitellen eri esseistä saadut pisteet. Ohjelma tallentaa nämä pisteet listaan. Sen jälkeen ohjelma laskee ja tulostaa eri esseistä tulevat lisäpisteet ja lopuksi vielä lisäpisteiden summan. Katso tarkemmin esimerkkiajoista, millainen ohjelman tulostuksen pitää olla.

Kirjoita ohjelmaasi seuraavat funktiot:

Kirjoita lisäksi pääohjelma, joka kutsuu edellä kuvattuja funktioita.

Ole tarkka siitä, että ohjelmasi tulostus on täsmälleen (välimerkkejä myöten) alla olevan mallin mukainen. Testaa ohjelmaasi ajamalla sitä useita kertoja Eclipsellä ennen kuin palautat sen Gobliniin. Palauta Gobliniin tiedosto esseepisteet.py. Voit olettaa, että käyttäjän antama syöte on muuten järkevää, mutta esseiden lukumäärä pitää tarkistaa edellä kuvatulla tavalla.

Esimerkkejä ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Anna esseiden lukumaara.
12
Anna seuraavan esseen pisteet.
34
Anna seuraavan esseen pisteet.
12
Anna seuraavan esseen pisteet.
29
Anna seuraavan esseen pisteet.
19
Anna seuraavan esseen pisteet.
21
Anna seuraavan esseen pisteet.
21
Anna seuraavan esseen pisteet.
29
Anna seuraavan esseen pisteet.
30
Anna seuraavan esseen pisteet.
17
Anna seuraavan esseen pisteet.
5
Anna seuraavan esseen pisteet.
35
Anna seuraavan esseen pisteet.
18
Nro esseepisteet lisapisteet
 1.           34           2
 2.           12           0
 3.           29           1
 4.           19           0
 5.           21           1
 6.           21           1
 7.           29           1
 8.           30           2
 9.           17           0
10.            5           0
11.           35           2
12.           18           0
Lisapisteet tenttiin: yhteensa 10 pistetta.
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Anna esseiden lukumaara.
-3
VIRHE: anna ei-negatiivinen lukumaara.
-1
VIRHE: anna ei-negatiivinen lukumaara.
4
Anna seuraavan esseen pisteet.
15
Anna seuraavan esseen pisteet.
20
Anna seuraavan esseen pisteet.
25
Anna seuraavan esseen pisteet.
30
Nro esseepisteet lisapisteet
 1.           15           0
 2.           20           1
 3.           25           1
 4.           30           2
Lisapisteet tenttiin: yhteensa 4 pistetta.
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Anna esseiden lukumaara.
0
Nro esseepisteet lisapisteet
Lisapisteet tenttiin: yhteensa 0 pistetta.
[ohjelman suoritus päättyy]

Värikoodit:
Sininen: Syöte käyttäjältä
Vihreä: Ohjelman tuloste
Punainen: Erityishuomatus: ei tulosteta