Tässä tehtävässä harjoitellaan erityisesti seuraavia asioita:
Tee Eclipseen uusi projekti, jonka nimi on tehtava4_2, ja tähän projektiin moduuli pituusmuuntaja. 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 tee_pituusmuunnos
, joka
pyytää käyttäjän antamaan pituuden jalkoina ja tuumina.
Molemmat ovat kokonaislukuja. Funktio muuntaa annetun pituuden
senttimetreiksi ja tulostaa sen. Tulostusta ei tarvitse muotoilla,
vaan funktio tulostaa pituuden Python-tulkin käyttämällä oletustarkkuudella.
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 Luvut eivat ole oikealla
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
tee_pituusmuunnos
-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
tee_pituusmuunnos
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 tee_pituusmuunnos
. 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.
(Tämä voi tuntua kokeneemmasta ohjelmoijasta oudolta, mutta tässä
tehtävässä on nimenomaan tarkoitus aloittaa funktioiden kirjoittaminen
yksinkertaisella funktiolla niin, että vielä ei tarvitse osata käyttää
parametreja ja paluuarvoja.)
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 pituusmuuntaja.py.
Goblin tarkistaa, että palauttamassasi ohjelmassa todella on
funktio tee_pituusmuunnos
, joka toimii edellä kuvatulla tavalla.
Goblin ei hyväksy palautustasi, jos funktio on nimetty toisin tai
sen toiminta ei muuten vastaa annettua kuvausta.
[ohjelman suoritus alkaa] Ohjelma muuttaa pituuden senteiksi. Montako jalkaa (1-9)? 6 Montako tuumaa (0-11)? 3 Pituus on 190.5 cm. Haluatko jatkaa (1 = kylla / 0 = ei)? 1 Montako jalkaa (1-9)? 5 Montako tuumaa (0-11)? 3 Pituus on 160.02 cm. Haluatko jatkaa (1 = kylla / 0 = ei)? 1 Montako jalkaa (1-9)? 0 Montako tuumaa (0-11)? 5 Luvut eivat ole oikealla valilla! Haluatko jatkaa (1 = kylla / 0 = ei)? 1 Montako jalkaa (1-9)? 7 Montako tuumaa (0-11)? -1 Luvut eivat ole oikealla valilla! 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