Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
< eelmine | 2. nädala sisukord | järgmine > |
2.10 Teise nädala kontrollülesanded 2.3abcd
Teisel nädalal tuleb esitada kolme kohustusliku ülesande lahendused. Kolmanda ülesande puhul on võimalik valida lahendamiseks vähemalt üks järgmistest ülesannetest, kas 2.3a, 2.3b, 2.3c või 2.3d (võib ka kaks või kolm lahendada). Lahendused tuleb esitada Moodle 'is, kus need kontrollitakse automaatselt. Moodle 'is on ka nädalalõputest 10 küsimusega, millest tuleb vähemalt 9 õigesti vastata.
Järgmisest neljast ülesandest (2.3a, 2.3b, 2.3c, 2.3d) tuleb lahendada vähemalt üks.
Tervisesport on tervisele kasulik, kui sellega jäädakse mõõdukuse piiridesse. On erinevaid variante sobiva koormuse valimiseks. Näiteks saab kasutada sellist arvestust, et maksimaalne pulsisagedus on meestel 220 miinus vanus ja naistel 206 miinus 88% vanusest. Seejuures erinevate treeningutüüpide puhul peaks pulsisagedus jääma järgmistesse vahemikesse:
- tervisetreening 50-70% maksimaalsest pulsisagedusest,
- põhivastupidavuse treening 70-80% maksimaalsest pulsisagedusest,
- intensiivne aeroobne treening 80-87% maksimaalsest pulsisagedusest.
Koostada programm, mis küsib kasutajalt
- vanuse (täisarvuna aastates),
- soo (kasutaja sisestab M, m, N või n),
- treeningu tüübi (1 - tervisetreening, 2 - põhivastupidavuse treening, 3 - intensiivne aeroobne treening)
ja lõpuks väljastab pulsisageduse vahemiku vastavatel tingimustel formaadis <vähim pulss> kuni <suurim pulss>, kus vastuses leiduvad arvud on ümardatud täisarvudeks.
Näited programmi tööst:
>>> %Run lahendus.py
Sisestage enda vanus: 20
Sisestage enda sugu: n
Sisestage treeningu tüüp: 1
Pulsisagedus peaks olema vahemikus 94 kuni 132.
>>> %Run lahendus.py
Sisestage enda vanus: 60
Sisestage enda sugu: M
Sisestage treeningu tüüp: 2
Pulsisagedus peaks olema vahemikus 112 kuni 128.
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.
Kontrollülesanne 2.3b. Istekoht
Odavlennufirmad pakuvad reisijatele küllaltki soodsaid lennupileteid, kuid lisaväärtuse eest peavad reisijad juurde maksma. Näiteks kui tahetakse lennukis istekoht ise valida, siis ka seda saab lisatasu eest. Istekohta valides küsitakse inimeselt, kas ta soovib istuda akna äärde või mujale. Kui reisija ei taha valida, siis loositakse istekoht nii, et 1/3 tõenäosusega on see akna ääres ja 2/3 tõenäosusega mujal.
Koostada programm, mis vastab järgmistele tingimustele:
- Küsib kasutajalt, kas ta soovib istekoha ise valida. Ise valimiseks sisestab kasutaja ”ise”. Vastasel juhul kirjutab kasutaja ”loos”.
- Kui kasutaja soovis ise valida, siis küsitakse tema käest, kas ta soovib istuda akna ääres (kasutaja sisestab ”aken”) või mitte (kasutaja sisestab ”muu”).
- Kui kasutaja valis loosi, siis loositakse talle istekoht nii, et 1/3 tõenäosusega on see akna ääres ja 2/3 tõenäosusega mujal.
- Väljastatakse, kas kasutaja valis istekoha ise (”Valisite ise”) või valiti see loosiga (”Istekoht loositi”).
- Väljastatakse, kas kasutaja istekoht on akna ääres (”Aknakoht”) või mitte (”Vahekäigukoht”).
Lahendus peab korrektselt kasutama funktsiooni randint()
moodulist random
.
Näited programmi tööst:
>>> %Run lahendus.py
Kas soovite istekohta ise valida ("ise") või loosida ("loos")? ise
Kas soovite istuda akna ääres ("aken") või mitte ("muu")? aken
Valisite ise. Aknakoht
>>> %Run lahendus.py
Kas soovite istekohta ise valida ("ise") või loosida ("loos")? loos
Istekoht loositi. Vahekäigukoht
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.
Kontrollülesanne 2.3c Busside logistika
Meil on vaja transportida teatud arv inimesi mingi arvu identsete bussidega. Eeldame, et reisijaid on vähemalt üks.
Koostada programm, mis küsib transporditavate inimeste arvu ja ühe bussi kohtade arvu (just sellises järjekorras) ning väljastab ekraanile, mitu bussi on vaja ja mitu inimest on viimases bussis (eeldusel, et kõik eelnevad bussid on täis).
Võib-olla on abi nendest tehetest
- // täisarvuline jagamine, 36 // 10 → 3
- % jäägi leidmine 36 % 10 → 6
Testige oma programmi muuhulgas järgmiste algandmetega:
- inimeste arv: 60, kohtade arv: 40;
- inimeste arv: 80, kohtade arv: 40;
- inimeste arv: 20, kohtade arv: 40;
- inimeste arv: 40, kohtade arv: 40.
Püüdke ka mõista, miks just sellised testandmed valiti.
Näited programmi tööst:
>>> %Run lahendus.py
Inimeste arv: 60
Kohtade arv: 40
Busse vaja: 2
Viimases bussis on inimesi: 20
>>> %Run lahendus.py
Inimeste arv: 80
Kohtade arv: 40
Busse vaja: 2
Viimases bussis on inimesi: 40
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.
Kirjade seast rämpsposti (spämmi) leidmiseks saab kasutada filtreid, mis filtreerivad välja konkreetsetele tingimustele vastavaid kirju. Kalmer teeb filtrit, kus filtreeritakse välja kirjad, mille kohta on vähemalt üks järgmistest tingimustest tõene:
- kirjal ei ole teema pealkirja,
- kiri sisaldab manusena faili ja kirja suurus ületab 1 MB.
Koostada Kalmeri jaoks programm, milles
- küsitakse kirja suurust megabaitides (kasutaja sisestab ujukomaarvu),
- küsitakse kirja teema pealkirja (kasutaja sisestab teema pealkirja või kasutaja sisestus on tühi),
- küsitakse, kas kirjaga on kaasas fail (kasutaja sisestab jah või ei),
- väljastatakse ekraanile Kiri on spämm, kui kiri filtreeritakse välja, vastasel juhul väljastatakse Kiri ei ole spämm.
Proovige kirjutada programm, kasutades ainult ühte tingimuslauset. Kui see ei õnnestu, siis võib ka mitmega.
NB! Kasutaja käest peab kindlasti küsima kolm korda.
Näited programmi tööst:
>>> %Run lahendus.py
Sisestage kirja suurus (MB): 0.7
Sisestage kirja teema pealkiri: Ülesanne 2.3d
Kas kirjaga on kaasas fail: jah
Kiri ei ole spämm
>>> %Run lahendus.py
Sisestage kirja suurus (MB): 0.8
Sisestage kirja teema pealkiri:
Kas kirjaga on kaasas fail: ei
Kiri on spämm
Kui olete juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saate abi murelahendajalt
. Püütud on tüüpilisemaid probleemseid kohti selgitada ja anda vihjeid.
< eelmine | 2. nädala sisukord | järgmine > |