Kierros 5, tehtävä 1

Putoamiskorkeus (150 p)

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

Tee Eclipseen uusi projekti, jonka nimi on tehtava5_1, ja tähän projektiin moduuli nopeudet. Kirjoita moduuliin seuraavan kuvauksen mukainen ohjelma.

Poliisi on huolissaan nuorten mopoilijoiden ja autoilijoiden hurjista ylinopeuksista. Se haluaa havainnollistaa ylinopeuden vaaroja tietokoneohjelmalla, joka vertaa törmäämistä annetulla nopeudella vapaaseen pudotukseen jostain korkeudesta. Tarkoituksena on siis laatia ohjelma, jolle käyttäjä kertoo ajoneuvon nopeuden (yksikkönä km / h) törmäyshetkellä. Ohjelma laskee ja kertoo, mistä korkeudesta täytyy pudota maahan, jotta putoajan nopeus maahantörmäämishetkellä olisi sama kuin annettu ajoneuvon nopeus. Sinun tehtävänäsi on auttaa poliisia ja kirjoittaa tarvittava ohjelma. Ohjelman tarkempi rakenne on kuvattu alla.

Putoamisliikettä tarkastellessa otetaan huomioon ainoastaan maan vetovoiman aiheuttama kiihtyvyys. Käytä likiarvoa g = 9.81 m / (s*s). Putoajan lähtönopeuden oletetaan olevan 0. Ajoneuvon törmäystä tarkastellessa oletetaan ajoneuvon pysähtyvän heti. Ohjelma ei siis ota huomioon esimerkiksi ajoneuvon kokoonpainumisesta johtuvaa hidastumista.

Käyttäjä antaa ohjelmalle nopeuden yksikössä km / h, mutta laskut on helpompi suorittaa, jos yksikkönä on m / s. Kirjoita muunnosta varten funktio

Kirjoita sitten pudotuskorkeuden laskemista varten funkio

Kirjoita tämän jälkeen pääohjelma, joka pyytää käyttäjältä ajoneuvon nopeuden ennen törmäystä, kutsuu sen jälkeen funktioita muuta_nopeuden_yksikko ja laske_pudotuskorkeus ja tulostaa lasketun korkeuden. Käytä tulostuksen muotoilua niin, että korkeus tulostetaan kahden desimaalin tarkkuudella.

Pudotuskorkeuden laskeminen

Kun kappale putoaa, siihen vaikuttaa maan vetovoiman kiihtyvyys g. Ajan t kuluttua kappaleen nopeus on siis g*t. Tämän perusteella on helppo laskea, minkä ajan kuluttua kappale saavuttaa halutun nopeuden. Kappaleen kulkema matka ajanhetkellä t saadaan puolestaan integroimalla kappaleen nopeus ajan suhteen, joten se on 0.5 * g * t * t. Putoamiskorkeus saadaan sijoittamalla jälkimmäiseen lausekkeeseen se ajanhetki, jolloin kappale saavuttaa halutun nopeuden.

Tehtävän palautus

Testaa ohjelmasi ajamalla sitä useita kertoja antamalla eri syötteeksi eri nopeuksia, ennen kuin palautat ohjelmasi Gobliniin. Voit olettaa, että käyttäjän antama syöte on järkevä. Ohjelman ei siis tarvitse toimia oikein esimerkiksi negatiivisella nopeudella. Palauta Gobliniin tiedosto nopeudet.py.

Esimerkki ohjelman suorituksesta:

[ohjelman suoritus alkaa]
Anna ajoneuvon nopeus ennen tormaysta (km/h).
80.0
Tormays vastaa pudotusta 25.17 metrin korkeudelta.
[ohjelman suoritus päättyy]

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