Kierros 3, tehtävä 3

Auton kiihtyvyys (200 p)

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

Tee Eclipseen uusi projekti, jonka nimi on tehtava3_3, ja tähän projektiin moduuli autolaskuri. Kirjoita tähän moduuliin ohjelma, joka kysyy, mikä on auton kiihdytysaika (sekunteina) nopeudesta 0 km/h nopeuteen 100 km/h. Sen jälkeen ohjelma tulostaa auton nopeuden (yksikkönä km/h) ja etäisyyden lähtöpisteestä (metreinä), kun oletetaan, että auto lähtee liikkeelle levosta, kiihdyttää mahdollisimman nopeasti nopeuteen 100 km/h ja sen jälkeen jatkaa tasaisella nopeudella 100 km/h. Oletetaan, että auton kiihtyvyys kiihdytysvaiheen aikana on vakio. Auton nopeus ja etäisyys lähtöpisteestä tulostetaan kahden sekunnin välein kahteenkymmeneen sekuntiin asti.

Ratkaisussa tarvittavia kaavoja (voit hypätä tämän kappaleen yli, jos haluat miettiä asian itse)

Jotta seuraavat kaavat toimisivat, sinun pitää käyttää SI-järjestelmän mukaisia yksiköitä, eli nopeudelle yksikköä m/s ja kiihtyvyydelle yksikköä m/s**2, missä ** tarkoittaa potenssiin korotusta. Yksikössä km/h annettu nopeus voidaan muuttaa yksikköön m/s jakamalla se 3,6:lla. Jos kappaleen nopeus on aluksi v0 ja ajanhetken t kuluttua v ja kiihtyvyys on vakio, voidaan kiihtyvyys a laskea kaavalla a = (v - v0) / t. Vastaavasta kaavasta voidaan myös (ratkaisemalla siitä v) laskea kappaleen nopeus halutulla ajanhetkellä t, jos sen kiihtyvyys ja alkunopeus tunnetaan.

Kappaleen kulkema matka ajanhetkellä t saadaan puolestaan integroimalla kappaleen nopeutta kuvaava lauseke ajan suhteen. Jos siis kappale lähtee levosta ja sillä on vakiokiihtyvyys a, saadaan kappaleen kulkemaksi matkaksi t:n sekunnin kuluttua s = 0.5 * a * t ** 2.

Jos kappale on saavuttanut vakionopeutensa v1 ajanhetkellä t1 ja on siihen mennessä kulkenut matkan s1, saadaan kappaleen ajanhetkellä t kulkema matka tämän jälkeen kaavalla s = s1 + v1 * (t - t1). Kaavassa on siis lisätty s1:een sen saavuttamisen jälkeen vakionopeudella kuljettu matka.

Ohjelman palautuksesta ym.

Käytä tulostuksen muotoilua, jotta saat ohjelmasi tulostuksen siistin näköiseen taulukkoon esimerkkiajon mukaisesti. Esimerkkiajossa kuluneelle ajalle on varattu neljän merkin levyinen kenttä, nopeudelle 10 merkin levyinen kenttä ja matkalle 10 merkin levyinen kenttä. Lisäksi kenttien välissä on aina yksi välilyönti. Aika on tulostettu yhden desimaalin, nopeus ja matka kahden desimaalin tarkkuudella.

Ole tarkka siitä, että ohjelmasi tulostus on täsmälleen (välimerkkejä myöten) alla olevan mallin mukainen. Testaa ohjelmaasi useilla eri arvoilla ajamalla sitä itse Eclipsessä ennen kuin palautat ohjelman Gobliniin.

Ohjelman ei tarvitse tarkistaa, että käyttäjän antama syötte on järkevä (esimerkiksi että kiihdytysaika on postiivinen). Palauta Gobliniin tiedosto autolaskuri.py.

Kaksi esimerkkiä ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Anna auton kiihdytysaika (0-100 km/h sekunteina).
8.5
t (s)  v (km/h)  matka (m)
 0.0       0.00       0.00
 2.0      23.53       6.54
 4.0      47.06      26.14
 6.0      70.59      58.82
 8.0      94.12     104.58
10.0     100.00     159.72
12.0     100.00     215.28
14.0     100.00     270.83
16.0     100.00     326.39
18.0     100.00     381.94
20.0     100.00     437.50
[ohjelman suoritus päättyy]

[ohjelman suoritus alkaa]
Anna auton kiihdytysaika (0-100 km/h sekunteina).
28.0
t (s)  v (km/h)  matka (m)
 0.0       0.00       0.00
 2.0       7.14       1.98
 4.0      14.29       7.94
 6.0      21.43      17.86
 8.0      28.57      31.75
10.0      35.71      49.60
12.0      42.86      71.43
14.0      50.00      97.22
16.0      57.14     126.98
18.0      64.29     160.71
20.0      71.43     198.41
[ohjelman suoritus päättyy]

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