Teise praktikumi ülesanded
Järgmisest kolmest ülesandest tuleb lahendada vähemalt üks. Lahendused tuleb esitada lahendus.ut.ee, kus need kontrollitakse automaatselt.
Eks seda tuleb ette ka edaspidi, et programm teeb põhimõtteliselt nõutud asja, aga väljastab midagi rohkem või vähem või kuidagi teisiti ei vasta täpselt ülesandele. (Näiteks on lahendus hoopis vingem kui ülesandes nõutud.) Sellisel juhul võib automaatkontroll teie lahenduse valeks lugeda.
Randa külastatakse üldiselt siis, kui väljas on soe ja päike paistab. Langetamaks otsust, kas minna randa või mitte, saame koostada lihtsa abiprogrammi.
Koostada programm, mis
- küsib kasutajalt välistemperatuuri (täisarv);
- küsib kasutajalt, kas päike paistab (
"jah"
või"ei"
); - küsib kasutajalt, kas rannas lehvib roheline lipp (
"jah"
või"ei"
); - väljastab kasutajale
Võid minna randa!
, kui välistemperatuur on 20 kraadi või rohkem ja päike paistab või rannas lehvib roheline lipp. Randa minekuks piisab ainuüksi sellest, kui rannas lehvib roheline lipp, ehk sellisel juhul ei pea teised tingimused olema täidetud. Kui ei kehti esimene pool tingimustest (õige temperatuur ja päike) ja ei kehti teine pool tingimusest (roheline lipp), siis ei ole rannailma ja programm väljastab kasutajaleTäna ei tasu randa minna.
.
Näited programmi tööst:
>>> %Run lahendus.py
Mis temperatuur väljas on? 15
Kas päike paistab? jah
Kas rannas on roheline lipp? jah
Võid minna randa!
>>> %Run lahendus.py
Mis temperatuur väljas on? 25
Kas päike paistab? jah
Kas rannas on roheline lipp? ei
Võid minna randa!
>>> %Run lahendus.py
Mis temperatuur väljas on? 23
Kas päike paistab? ei
Kas rannas on roheline lipp? ei
Täna ei tasu randa minna.
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.
Ülesanne 2.4c 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.
< eelmine? | 2. nädala sisukord | järgmine > |