Kierros 4, tehtävä 4

Karkausvuodet (200 p)

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

Tee Eclipseen uusi projekti, jonka nimi on tehtava4_4 ja tähän projektiin moduuli karkausvuosi. Kirjoita moduuliin ohjelma, joka tulostaa karkausvuodet käyttäjän haluamalta väliltä käyttämällä hyväksi funktiota, joka tutkii parametrina annetusta vuodesta, onko se karkausvuosi.

Vuosi on karkausvuosi, jos vuosiluku on jaollinen neljällä. Sadalla jaollisista vuosiluvuista karkausvuosia ovat kuitenkin vain ne, jotka ovat jaollisia myös 400:lla. Esimerkiksi vuosi 1900 ei ollut karkausvuosi, mutta vuosi 2000 oli.

Annettu sääntö ei kuitenkaan päde ajanlaskun alusta pitäen, vaan vasta siitä lähtien, kun gregoriaaninen kalenteri on otettu käyttöön. Gregoriaanisen kalenterin käyttöönottovuosi vaihtelee eri maissa, mutta missään maassa sitä ei otettu käyttöön ennen vuotta 1582.

Kirjoita ohjelmaasi seuraava funktio:

Kirjoita sitten pääohjelma, joka pyytää käyttäjältä ensimmäisen ja viimeisen vuoden, joiden väliltä karkausvuodet halutaan luetella. Tämän jälkeen ohjelma käy läpi kaikki vuosiluvut annetulta väliltä (alku- ja loppuvuosi mukaanlukien) ja tutkii jokaisesta funktion onko_karkausvuosi avulla, onko vuosi karkausvuosi. Jos se on, pääohjelma tulostaa vuosiluvun.

Pääohjelman pitää myös tarkistaa, että käyttäjän antama aloitusvuosi on vähintään 1582. Jos se ei ole, ohjelma tulostaa Liian aikainen aloitusvuosi!, eikä tee muuta. Ohjelman pitää myös tarkistaa, että lopetusvuosi ei ole pienempi kuin aloitusvuosi. Jos lopetusvuosi on pienempi, ohjelma tulostaa Lopetusvuosi ei saa olla ennen aloitusvuotta!.

Ole tarkka siitä, että ohjelmasi tulostus on täsmälleen (välimerkkejä myöten) alla olevan mallin mukainen. Palauta Gobliniin tiedosto karkausvuosi.py.

Esimerkkejä ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Ohjelma kertoo karkausvuodet halutulta valilta.
Anna aloitusvuosi.
1896
Anna lopetusvuosi.
2011
Karkausvuodet valilla 1896 - 2011:
1896
1904
1908
1912
1916
1920
1924
1928
1932
1936
1940
1944
1948
1952
1956
1960
1964
1968
1972
1976
1980
1984
1988
1992
1996
2000
2004
2008
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Ohjelma kertoo karkausvuodet halutulta valilta.
Anna aloitusvuosi.
2012
Anna lopetusvuosi.
2012
Karkausvuodet valilla 2012 - 2012:
2012
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Ohjelma kertoo karkausvuodet halutulta valilta.
Anna aloitusvuosi.
2009
Anna lopetusvuosi.
2011
Karkausvuodet valilla 2009 - 2011:
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Ohjelma kertoo karkausvuodet halutulta valilta.
Anna aloitusvuosi.
1580
Liian aikainen aloitusvuosi!
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Ohjelma kertoo karkausvuodet halutulta valilta.
Anna aloitusvuosi.
2008
Anna lopetusvuosi.
2005
Lopetusvuosi ei saa olla ennen aloitusvuotta!
[ohjelman suoritus päättyy]

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