Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
< eelmine | 3. nädala sisukord | järgmine > |
3.7 Kolmanda nädala kontrollülesanded 3.4abc
Kolmandal nädalal tuleb esitada nelja kohustusliku ülesande lahendused. Neljanda ülesande puhul on võimalik valida lahendamiseks vähemalt üks järgmistest ülesannetest, kas 3.4a, 3.4b või 3.4c (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 kolmest ülesandest (3.4a, 3.4b, 3.4c) tuleb lahendada vähemalt üks.
Kontrollülesanne 3.4a Lillede arv v2
On traditsioon, et rõõmsatel puhkudel kingitakse paaritu arv lilli. Üks teine lillepood on otsustanud, et nende sünnipäeval saab iga klient kingituseks lilli nii, et esimene ostja saab ühe lille, teine ostja saab kolm lille, kolmas ostja saab viis lille, neljas ostja seitse lille jne.
Koostada programm, mis
- küsib kasutajalt klientide arvu (mittenegatiivne täisarv);
- arvutab while-tsükli abil lillede koguarvu, mida pood klientidele kingib;
- väljastab kingitavate lillede koguarvu.
Näiteks, kui kasutaja sisestas 4, siis paaritute arvude summa on 16, sest 1 + 3 + 5 + 7 = 16. Kui kasutaja sisestas 7, siis on summaks 49, sest 1 + 3 + 5 + 7 + 9 + 11 + 13 = 49.
Näited programmi tööst:
>>> %Run lahendus.py
Sisestage ostjate arv: 7
Lillede koguarv on 49.
>>> %Run lahendus.py
Sisestage ostjate arv: 4
Lillede koguarv on 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.
Kontrollülesanne 3.4b Vabavisked
Korvpalluri vabavisete senist visketabavust saab (teatud mööndustega) kasutada tuleviku visete tõenäosusena.
Koostada programm, mis
- küsib kasutajalt visketabavuse (tabavustõenäosuse) protsentides (täisarv 0 kuni 100);
- simuleerib while-tsükli abil 1000 viset ja igal viskel (arvestades tõenäosust) väljastab, kas see tabas;
- iga viske kohta peab väljastama ühe rea ja see rida peab sisaldama sõna tabas või mööda
- arvutab kokku tabanud visete arvu ja see väljastab selle kõige viimasena.
Näited programmi tööst:
>>> %Run lahendus.py
Sisestage visketabavuse protsent: 45
1. vise tabas
2. vise tabas
3. vise tabas
4. vise mööda
5. vise mööda
...
995. vise mööda
996. vise mööda
997. vise mööda
998. vise mööda
999. vise tabas
1000. vise tabas
Tabas 458 viset.
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.
Legend räägib, et malemängu leiutajale olla tollane valitseja pakkunud tasu. (Sellest legendist räägib ka Tõnu Tõnso paarikümne aasta taguses leheloos
.)
Leiutaja oli “tagasihoidlik” ja palus tasuks
- esimese ruudu eest 1 nisutera,
- teise ruudu eest 2 korda rohkem ehk 2,
- kolmanda ruudu eest veel 2 korda rohkem ehk 4,
- neljanda ruudu eest siis 8,
- viienda ruudu eest 16 jne
Malelaual on 64 ruutu.
Koostada programm, mis
- küsib kasutajalt ühe täisarvu;
- arvutab while-tsükli abil, mitu nisutera sellise järjekorranumbriga ruudu eest leiutaja küsis;
- tulemus väljastatakse ekraanile pärast tsüklit.
Näited programmi tööst:
>>> %Run lahendus.py
Sisestage täisarv: 10
Nisuteri 10. ruudu eest: 512
>>> %Run lahendus.py
Sisestage täisarv: 24
Nisuteri 24. ruudu eest: 8388608
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 | 3. nädala sisukord | järgmine > |