elikkäs tehtävänä olisi tuottaa python ohjelma joka laskee cooper tuloksen. pitää antaa 1.kierrosaika sekä hidastuvuus seuraaville kieroksille.mitenkäs tämä tehdään
apua tehtävään
5
177
Vastaukset
- opiskelia
Olen juuri tekemässä tällaista mutta se on mahdottomuus yhdellä kieroksella joten se on 2 kierrosta, ajattelin laittaa sen nettiin myyntiin mutta sinähän voisit kokeilla sitä puolestani. (se on puhelin sovellus vain Windows puhelimille) sopiiko?
- pythonjuniori
Pitäisi tietää se, mitä tarkoitat hidastuvuudella. Tuleeko kierrosajoista vaikkapa aritmeettinen tai geometrinen jono? Kun tämä on selvillä, niin while-luuppi auttanee. Tai jos kierrosmäärän pystyy päättelemään hidastuvuudesta, niin for-luuppi on käypä vaihtoehto.
- kekkeruusiss
Tuon voi tehdä monella tavalla. Tässä yksi ratkaisu joka käyttää rekursiota. Rekursion voi korvata silmukoinnilla ja jätetään se kotitehtäväksi :)
def cooperi(kierrosaika, hidastuvuus, jaljella=12*60, radan_pituus=400): """Laskee cooperin tuloksen ensimmäiseen kierrokseen käytetyn ajan ja hidastuvuuden perusteella kierrosaika: ensimmäiseen kierrokseen käytetty aika sekunteina hidastuvuus: kerroin kuinka paljon enemmän aina seuraavaan kierokseen kuluu aikaa Palauttaa cooper testin aikana kuljetun matkan metreinä """ if jaljella > kierrosaika: return radan_pituus cooperi(kierrosaika*hidastuvuus, hidastuvuus, jaljella-kierrosaika, radan_pituus) else: return float(jaljella)/kierrosaika * radan_pituus
ps. toivottavasti ei mennyt ihan sillisalaatiksi suomi24:ssä. Korvasin erikoismerkit html entiteeteillä.. tai ainakin tarkoitus oli!
pps. radan pituus on nyt turhaa temppuilua. Tehtävässä sitä ei mainittu joten se voisi olla kai mitä tahansa? standardi juoksuradan pituus on kuitenkin tuo 400 metriä..- kekkeruusiss
no tuiksihan se meni. Kyllä tuosta kai sen verran selvän saa että osaa korjata sisennykset itse.
>>> cooperi(90, 1.25)
1966.08
>>> cooperi(85, 1.15)
2343.689722747292
>>> cooperi(67, 1.34)
2090.7680047235444
>>> cooperi(60, 1.09)
3395.0304965304795 - kekkeruusiss
Lisätään nyt pikku selitystä miten saat tuon ongelman ratkottua silmukalla.
* Teet silmukan jota suoritat niin kauan kun on aikaa jäljellä (while).
* Joka kierroksella päivität kierroksen juoksemiseen kuluvaa aikaa, cooperissa jäljellä olevaa aikaa ja jo juostua matkaa.
* jos aikaa on jäljellä enemmän kuin koko kierrokseen menee, lisäät matkaan koko radan pituuden (400m)
* jos aikaa on jäljellä vähemmän kuin koko kierrokseen menee, lisäät matkaan sen osan radan pituudesta jonka jäljelläolevassa ajassa ehtii juosta
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225564- 324900
- 292814
- 342374
- 372078
- 152028
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191657- 121611
- 231512
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons291489