Kierros 4, tehtävä 2

Pituusmuunnos (150 p)

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

Tee Eclipseen uusi projekti, jonka nimi on tehtava4_2, ja tähän projektiin moduuli pituusmuunnos. Kirjoita moduuliin alla olevan kuvauksen mukainen ohjelma, jonka avulla käyttäjä voi muuttaa jalkoina ja tuumina ilmoitetun pituuden senttimetreiksi.

USAlaiset ilmoittavat ihmisten pituuden jalkoina ja tuumina. (Esimerkiksi 5 jalkaa 6 tuumaa.) Tässä tehtävässä kirjoitetaan ohjelma, jonka avulla näin ilmoitetut ihmisten pituudet voi muuntaa senttimetreiksi. Kirjoita ohjelmaan funktio muunna_pituus, joka pyytää käyttäjän antamaan pituuden jalkoina ja tuumina. Molemmat ovat kokonaislukuja. Funktio muuntaa annetun pituuden senttimetreiksi ja tulostaa sen.

Yksi tuuma on 2,54 senttimetriä. Yksi jalka on 12 tuumaa. Kirjoita funktio niin, että se hyväksyy vain välillä 1-9 olevat jalkojen määrät ja vain välillä 0-11 olevat tuumien määrät. Jos toinen tai molemmat käyttäjän antamat arvot eivät ole sallitulla välillä (rajalla olevat arvot hyväksytään), funktio tulostaa Antamasi luvut eivat ole sallitulla valilla!, eikä tee muuta. Tarkistus tehdään kuitenkin vasta sen jälkeen, kun sekä jalkojen että tuumien määrä on luettu käyttäjältä.

Kirjoita sitten pääohjelma, joka kutsuu muunna_pituus-funktiota. Kun funktio on suoritettu kerran, pääohjelma kysyy käyttäjältä, haluaako hän jatkaa ohjelman suoritusta. Jos käyttäjä haluaa jatkaa, hän antaa 1:sen; jos käyttäjä ei halua jatkaa, hän antaa 0:n. Kirjoita kuitenkin pääohjelma niin, että ohjelma jatkuu aina, kun käyttäjä antaa jonkun muun kokonaisluvun kuin 0. Jos käyttäjä haluaa jatkaa ohjelman suoritusta, funktiota muunna_pituus kutsutaan uudelleen. Tätä toistetaan niin kauan, kunnes käyttäjä ei enää halua jatkaa. Siinä vaiheessa ohjelma tulostaa Ohjelman suoritus paattyy.

Huomaa, että kaikki tarvittavat tiedot pyydetään (jatkokysymystä lukuunottamatta) ja tulostetaan funktiossa muunna_pituus. Funktiolla ei siis ole parametreja eikä se palauta mitään arvoa. Pääohjelmassa ainoastaan kutsutaan funktiota sekä kysytään, haluaako käyttäjä jatkaa ohjelman suoritusta. Lisäksi pääohjelma tulostaa Ohjelman suoritus paattyy. siinä vaiheessa, kun käyttäjä ei enää halua jatkaa ohjelman suoritusta.

Vinkki: Voit kirjoittaa ensin pyydetyn funktion ja pääohjelman, joka kutsuu pyydettyä funktiota ainoastaan kerran. (Tällaista ratkaisua ei voi vielä palauttaa Goblinille, mutta voit itse testata ohjelman toimintaa ajamalla sitä Eclipsessä.) Kun olet saanut tämän ohjelman toimimaan oikein, lisää pääohjelmaan toistokäsky, joka kysyy, haluaako käyttäjä jatkaa ohjelman suoritusta.

Ohjelmasi pitää siis antaa virheilmoitus silloin, jos käyttäjän antamat arvot eivät ole sallituilla väleillä, mutta ohjelman ei tarvitse varautua siihen, että käyttäjä ei anna jalkoja tai tuumia kokonaislukuna. Testaa ohjelmaasi useita kertoja eri arvoilla ajamalla sitä itse Eclipsessä, ennen kuin palautat ratkaisusi Gobliniin. Palauta Gobliniin tiedosto pituusmuunnos.py.

Esimerkki ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Ohjelma muuttaa tuumina ja jalkoina annetun pituuden senteiksi.
Anna pituuden jalat (1-9).
5
Anna pituuden tuumat (0-11).
4
Pituus on 162.56 cm.
Haluatko jatkaa (1 = kylla / 0 = ei)?
1
Anna pituuden jalat (1-9).
6
Anna pituuden tuumat (0-11).
3
Pituus on 190.5 cm.
Haluatko jatkaa (1 = kylla / 0 = ei)?
1
Anna pituuden jalat (1-9).
10
Anna pituuden tuumat (0-11).
2
Antamasi luvut eivat ole sallitulla valilla!
Haluatko jatkaa (1 = kylla / 0 = ei)?
1
Anna pituuden jalat (1-9).
5
Anna pituuden tuumat (0-11).
12
Antamasi luvut eivat ole sallitulla valilla!
Haluatko jatkaa (1 = kylla / 0 = ei)?
1
Anna pituuden jalat (1-9).
9
Anna pituuden tuumat (0-11).
0
Pituus on 274.32 cm.
Haluatko jatkaa (1 = kylla / 0 = ei)?
0
Ohjelman suoritus paattyy.
[ohjelman suoritus päättyy]

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