1. kontrolltöö punktilise osa näidis
- Lahendamisaega on 90 minutit.
- Materjalide kasutamine on lubatud.
- Igasugune suhtlemine on keelatud.
- Lahendused ja logid laadi Moodle'isse, mõlemale on eraldi lingid.
Enne alustamist
Kasuta programmeerimiseks Thonnyt! Palun ära kirjuta programmi teises IDEs ega kopeeri seda sealt Thonnysse: sel juhul paistab logisid vaadates, et programm on kusagilt kleepimisega saadud ning võib olla plagiaat.
Veendu enne ülesandega alustamist, et logimine on sisse lülitatud: Tööriistad > Seaded > Üldine > Logi kasutussündmusi (Tools > Options > General > Log program usage events).
1. ülesanne (10 p) - Uued hinnad
Poeomanik on seni pannud oma toodetele alati täisarvulise hinna. Näiteks on banaanide kilohind 1 euro, tomatite kilohind 3 eurot jne. Nüüd aga avastas ta, et kui hind lõpeb 99 sendiga, siis peetakse kaupa tunduvalt odavamaks, inimesed ostavad rohkem ja lõppkasum on märgatavalt suurem (https://en.wikipedia.org/wiki/Psychological_pricing).
Kõigi toodete hinnad on poeomanik salvestanud faili hinnad.txt, kus iga toote nimi ja hind on erinevates ridades (toote nimi on ühes reas ja hind järgmises reas). Kirjuta programm, mis loeb failist hinnad.txt toodete nimed ja hinnad ning lahutab igal pool, kus võimalik, hinnast 1 sendi. Iga toote puhul, kus hinna teisendamine õnnestub, peab programm kirjutama faili uued_hinnad.txt toote nime ja järgmisse ritta uue hinna ning ühtlasi väljastama ekraanile teate eduka teisendamise kohta. Kui aga hinna teisendamine ei õnnestu, siis ei kirjuta programm faili uued_hinnad.txt midagi ja ainult väljastab ekraanile vastava teate.
Näide
Faili hinnad.txt võimalik sisu:
banaanid 1 tomatid 3 avokaadod kolm kreeka pähklid 18-19 kollased ploomid 4
Faili uued_hinnad.txt sisu:
banaanid 0.99 tomatid 2.99 kollased ploomid 3.99
Ekraaniväljund programmi käivitamisel:
banaanid OK! tomatid OK! Toote 'avokaadod' hinda 'kolm' ei õnnestunud teisendada. Toote 'kreeka pähklid' hinda '18-19' ei õnnestunud teisendada. kollased ploomid OK!
2. ülesanne (10 p) - Kivi-paber-käärid
Kirjuta programm, mis mängib kasutajaga mängu kivi-paber-käärid.
Programmis peab olema funktsioon mängi, millel on kaks parameetrit: kahe mängija valikud sõnena („kivi”, „paber” või „käärid”). Funktsioon tagastab sõne „esimene”, kui võitis esimene mängija, ning sõne „teine”, kui võitis teine. Kui mõlemad funktsioonile etteantud väärtused on samad, siis tagastab funktsioon sõne „viik”.
Kirjuta programm, mis küsib kasutajalt sisendiks valikut kivi, paberi ja kääride vahel. Võib eeldada, et sisend on õige. Siis genereerib arvuti oma juhusliku valiku ja väljastab selle. Kõike seda korratakse 3 korda. Lõpus väljastada, kumb mängija võitis või jäi mäng viiki.
Näide
Sisesta oma valik: käärid Arvuti valis käärid. Viik! Sina 0, arvuti 0. Sisesta oma valik: kivi Arvuti valis käärid. Sina võitsid! Sina 1, arvuti 0. Sisesta oma valik: kivi Arvuti valis paberi. Arvuti võitis! Sina 1, arvuti 1. Mäng jäi viiki!
Vihje
>>> from random import choice >>> choice(['see', 'valib', 'juhusliku', 'sõne']) 'juhusliku' >>> choice(['see', 'valib', 'juhusliku', 'sõne']) 'sõne'
Töö esitamine
Kui oled ülesannetega valmis, siis palun sulge korraks Thonny ja käivita uuesti, et uusimad logid kindlasti salvestuksid. Esita programmid ja Thonny logifail(id).
- Programmid esita Moodle'is lingi „Näidiskontrolltöö programmide esitamine” alt. Kui soovid lasta oma programme automaatkontrolliga testida, siis anna neile nimed ylesanne1.py ja ylesanne2.py. (Tegelikus kontrolltöös automaatkontrolli ei ole.)
- Logifaili(d) leiad Thonny logifailide kaustast: vali peamenüüst Tööriistad > Ava Thonny andmekaust ja seejärel ava kaust user_logs (Tools > Open Thonny data folder > user_logs). Vali kõik failid, mis on tekkinud kontrolltöö ajal (tavaliselt on selliseid faile ainult üks) ja esita nad Moodle'is lingi „Näidiskontrolltöö logide esitamine” alt.