Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
< eelmine | 1. nädala sisukord | järgmine > |
1.7 Esimese nädala kontrollülesanded
Esimesel nädalal tuleb esitada nelja kohustusliku ülesande lahendused. Neljanda ülesande puhul on võimalik valida lahendamiseks kas 1.4a või 1.4b (või mõlemad). 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.
Kontrollülesanne 1.1. Tervitus (teemad 1.1. Algoritm. 1.2. Programm)
Koostada programm, mis väljastaks ekraanile teksti Tere, maailm! täpselt sellisel kujul - koma ja hüüumärgiga.
Näide programmi tööst:
>>> %Run lahendus.py
Tere, maailm!
Automaatkontroll on nii korraldatud, et tõesti pole vähimadki kõrvalekalded tekstis lubatud. Nii võib teil programm täiesti töötada Thonnys ilma igasuguste veateadeteta, aga kui väljastatakse näiteks tere, maailm, siis automaatkontroll seda õigeks ei loe.
Kontrollülesanne 1.2. Aasta tegija (teemad 1.3. Andmetüübid. 1.4. Muutujad)
Koostada programm, mille
- 1. real luuakse muutuja nimega
aasta
ning antakse sellele väärtuseks 2023 (arvuna); - 2. real luuakse muutuja nimega
loom
ning antakse sellele väärtuseks "lendorav" (sõnena); - 3. real luuakse muutuja nimega
lause_keskosa
ning antakse sellele väärtuseks ". aasta loom on " (sõnena); - 4. real luuakse muutuja nimega
lause
, mille väärtuse saamiseks ühendatakse üheks sõnaks muutujadaasta
,lause_keskosa
jaloom
(vajadusel tuleb kasutada funktsiooni, mis teisendab arvu sõneks); - 5. real väljastatakse muutuja
lause
väärtus ekraanile.
Kuigi tegelikult pannakse lause lõppu punkt, siis siin ärge pange. (Automaatkontroll isegi annab punkti või mõne muu üleliigse osa eest veateate.)
Näide programmi tööst:
>>> %Run lahendus.py
2023. aasta loom on lendorav
Lendorava kohta võib lugeda siin.
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 1.3. Astendamine (teema 1.5. Sisend kasutajalt: input())
Koostada programm, mis
- küsib kasutajalt astme aluse (täisarv) ja astendaja (täisarv) (just selles järjekorras);
- arvutab ja väljastab ekraanile astme.
Näiteks kui kasutaja sisestab vastustena 2 ja 4, siis väljastatakse 16, sest 24 = 16. Astme alus on siin 2, astendaja 4 ja aste 16.
Näide programmi tööst:
>>> %Run lahendus.py
Sisestage astme alus: 2
Sisestage astendaja: 4
16
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.
Järgmisest kahest ülesandest (1.4a ja 1.4b) tuleb lahendada vähemalt üks.
Kontrollülesanne 1.4a. Nädala ajakulu (terve 1. nädal)
Ülikoolides arvestatakse ühe ainepunkti ajakuluks 26 tundi. Näiteks kolme ainepunkti kursusel on ajakuluks 3 * 26 = 78 tundi. Kui see jaotada 10 nädala peale, on ühe nädala eeldatav ajakulu 78 / 10 = 7,8.
Koostada programm, mis
- küsib kasutajalt just sellises järjekorras ainepunktide arvu (täisarvu) ja nädalate arvu (täisarvu);
- arvutab ja väljastab ekraanile ühe nädala eeldatava ajakulu, mis on ümardatud täisarvuni.
Täisarvuks ümardamisel saab kasutada funktsiooni round, näiteks round(ajakulu)
väärtuseks on 8, kui kasutaja on sisestanud 3 ja 10. Funktsioon int ei ole siin sobiv, kuna int(7.8)
on hoopis 7.
Näide programmi tööst:
>>> %Run lahendus.py
Sisestage ainepunktide arv: 3
Sisestage nädalate arv: 10
8
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 1.4b. Kiiruseületamise trahv (terve 1. nädal)
Liiklusseaduse järgi määratakse suurima lubatud sõidukiiruse ületamise korral hoiatustrahv, mille suurus eurodes saadakse lubatud sõidukiirust ületanud kilomeetrite arvu korrutamisel arvuga 5. Hoiatustrahvi maksimaalmäär on 300 eurot.
Trahvimääradest on juttu siin
.
Koostada programm, mis
- küsib kasutajalt just sellises järjekorras nime (sõne), lubatud kiiruse (täisarvu) ja tegeliku kiiruse (täisarvu);
- arvutab trahvi vastavalt kasutajalt saadud andmetele ja ülaltoodud reeglitele;
- väljastab nime ja trahvi ekraanile.
Näiteks kui kasutaja sisestab vastustena Jürgen, 50 ja 60, siis väljastatakse Jürgen, kiiruse ületamise eest on teie trahv 50 eurot.
Selleks, et trahvi maksimaalmääraga arvestada saab kasutada funktsiooni min, millega saab leida mitmest väärtusest minimaalse. Näiteks min(300, esialgne_tulemus)
väärtuseks on 300, kui muutuja esialgne_tulemus
väärtus, mis on varem defineeritud, on suurem kui 300 (või võrdne 300).
Näiteks kui kasutaja sisestab vastustena Sal-Saller, 50 ja 172, siis väljastatakse Sal-Saller, kiiruse ületamise eest on teie trahv 300 eurot. Kiirust ületati 122 võrra ja esialgne arvutus näitab trahviks 610 eurot, aga see on üle maksimaalmäära. (Näide on inspireeritud laulust "Lähme sõidame", kus on "viiekümneses tsoonis meil sada seitsekümmend kaks on sees".)
Näide programmi tööst:
>>> %Run lahendus.py
Sisestage oma nimi: Jürgen
Sisestage lubatud kiirus (km/h): 60
Sisestage tegelik kiirus (km/h): 80
Jürgen, kiiruse ületamise eest on teie trahv 100 eurot.
Eeldame, et kasutaja sisestab tegeliku kiiruse, mis on lubatud kiirusest suurem. Kui sisestatakse lubatud kiirusest väiksem tegelik kiirus, siis las programm annabki trahviks negatiivse arvu. Päriselus see küll nii just pole...
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 | 1. nädala sisukord | järgmine > |