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:
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)
Eks oleme harjunud, et saame poest asju osta - näiteks tikke vähemalt. Siiski on hea teada, et tuld saab ka teisiti. See ülesanne on pühendatud tuletaelale - 2018. aasta seenele.
Koostada programm, mille
- 1. real luuakse muutuja nimega
aasta
ning antakse sellele väärtuseks 2018 (arvuna); - 2. real luuakse muutuja nimega
seen
ning antakse sellele väärtuseks "tuletael" (sõnena); - 3. real luuakse muutuja nimega
lause_keskosa
ning antakse sellele väärtuseks ". aasta seeneks on " (sõnena); - 4. real luuakse muutuja nimega
lause
, mille väärtuse saamiseks ühendatakse üheks sõnaks muutujadaasta
,lause_keskosa
jaseen
(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:
Aasta seene kohta võib lugeda siin. Tuletaela abiga tule saamise kohta, aga 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:
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:
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 3. Hoiatustrahvi maksimaalmäär on 190 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 30 eurot.
Selleks, et trahvi maksimaalmääraga arvestada saab kasutada funktsiooni min, millega saab leida mitmest väärtusest minimaalse. Näiteks min(190, esialgne_tulemus)
väärtuseks on 190, kui muutuja esialgne_tulemus
väärtus, mis on varem defineeritud, on suurem kui 190 (või võrdne 190).
Näiteks kui kasutaja sisestab vastustena Sal-Saller, 50 ja 172, siis väljastatakse Sal-Saller, kiiruse ületamise eest on teie trahv 190 eurot. Kiirust ületati 122 võrra ja esialgne arvutus näitab trahviks 366 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:
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 > |