================================================== NÄDAL 1: Muutujad, andmetüübid ja sisend/väljund ================================================== 1. Tervitusbot (Ühisprogrammeerimine) Küsi kasutaja nime ja vanust. Arvuta vanus järgmisel aastal ning trüki viisakas tervitus. 2. Pindalakalkulaator (Tunniülesanne T1) Küsi ristküliku pikkus ja laius. Arvuta ja trüki ristküliku ümbermõõt ning pindala. 3. Taksomeeter (Tunniülesanne T2) Küsi sõidu pikkust kilomeetrites. Arvuta hind valemi järgi: starditasu (2.50) + km_hind * km. 4. Kütusekulu (Koduülesanne K1) Küsi läbitud kilomeetrid ja kulutatud bensiini liitrid. Arvuta keskmine kulu 100 km kohta. 5. Arvejagaja (Koduülesanne K2) Küsi arve summa, jootraha protsent ja inimeste arv. Arvuta iga inimese tasutav summa. Meistritase: Ümarda lõppsumma sentide täpsusele. Gurutase: Lisa väljundile valuutasümbol ning joonda summad ekraanil paremale. 6. Andurilogija (Koduülesanne K3) Küsi kasutajalt temperatuur Celsiuses ning teisenda see Fahrenheiti skaalale. Meistritase: Väljasta tulemus koos ühikuga. Gurutase: Käsitle olukorda, kus kasutaja sisestab koma asemel punkti. ================================================== NÄDAL 2: Tingimuslaused ja loogika ================================================== 1. Märgikontroll (Ühisprogrammeerimine) Küsi kasutajalt täisarv. Kontrolli ja trüki, kas arv on positiivne, negatiivne või null. 2. Piletiassistent (Tunniülesanne T1) Küsi vanust. Määra pilet: alla 7 tasuta, 7-18 lapsepilet, 19-64 täispilet, 65+ pensionär. 3. Hindaja (Tunniülesanne T2) Küsi testipunktid (0-100) ja väljasta hinne. Tagasta viga, kui punktid on piiridest väljas. 4. Liigaasta (Koduülesanne K1) Küsi aastanumber ja teata, kas tegemist on liigaastaga. 5. Kivi-Paber (Koduülesanne K2) Loo kivi-paber-käärid mäng kahe sisendiga. Tuvasta võitja. Meistritase: Käsitle ka vigaseid sümboleid. Gurutase: Pea mänguseeria jooksul statistikat võitude ja viikide üle. 6. Termostaat (Koduülesanne K3) Küsi temperatuuri ja lülita virtuaalne küte sisse või välja. Meistritase: Lisa hüsterees (lülitusvahemik, nt sisse <19, välja >22). Gurutase: Nõua kütteks kahte tingimust: külm temperatuur AND aken kinni. ================================================== NÄDAL 3: Korduslaused (Tsüklid) ================================================== 1. Arvusumma (Ühisprogrammeerimine) Prindi tsükliga arvud 1-st N-ini ja arvuta nende üldsumma. 2. Korrutustabel (Tunniülesanne T1) Küsi kasutajalt arv ning trüki selle arvu korrutustabel 1-st 10-ni. 3. Turvauks (Tunniülesanne T2) Küsi parooli tsüklis, kuni kasutaja sisestab õige sõna. Luba maksimaalselt 3 katset. 4. Arvamismäng (Koduülesanne K1) Arvuti valib arvu. Kasutaja pakub tsüklis arve ja saab vihjeid (suurem/väiksem). 5. Algarvutest (Koduülesanne K2) Küsi kasutajalt arv ja tuvasta, kas see on algarv. Meistritase: Optimeeri otsingut, kontrollides jagajaid kuni ruutjuureni. Gurutase: Leia ja väljasta kõik algarvud kuni sisestatud arvuni N. 6. PWM-Simulaator (Koduülesanne K3) Kirjuta tsükkel, mis suurendab mootori kiirust. Meistritase: Piira maksimaalne kiirus 65% peale riistvara kaitseks. Gurutase: Lisa hädapiduri tingimus (sisend), mis katkestab tsüklis kiirenduse koheselt. ================================================== NÄDAL 4: Järjendid (Listid) ================================================== 1. Toidukorv (Ühisprogrammeerimine) Loo tühi list. Küsi 3 lemmiktoitu, lisa need listi ja trüki nimekiri numbritega. 2. Ilmajaam (Tunniülesanne T1) Antud on temperatuuride list. Arvuta keskmine temp ja leia max ilma max() funktsioonita. 3. Sõnasõel (Tunniülesanne T2) Filtreeri sõnade listist uude listi ainult need sõnad, mis on pikemad kui 5 tähte. 4. Laohaldur (Koduülesanne K1) Kasutaja saab tsüklis tooteid listi lisada, vaadata ja eemaldada kuni valib "välju". 5. Mullisort (Koduülesanne K2) Kirjuta algoritm, mis sorteerib listi kasvavas järjekorras. Meistritase: Luba valida kas sorteerida kasvavalt või kahanevalt. Gurutase: Katkesta tsükkel varem, kui list on juba sorteeritud. 6. Signaalifilter (Koduülesanne K3) Antud on mürane andurinäitude list. Eemalda äärmused (miinimum ja maksimum). Meistritase: Asenda eemaldatud anomaaliad ülejäänute keskmisega. Gurutase: Arvuta ja väljasta näitude libisev keskmine (moving average) 3-elemendise aknaga. ================================================== NÄDAL 5: Funktsioonid ================================================== 1. Pindalafunktsioon (Ühisprogrammeerimine) Kirjuta funktsioon, mis võtab sisendiks kaks külge ja tagastab ristküliku pindala. 2. Paaris-Paaritu (Tunniülesanne T1) Kirjuta funktsioon, mis kontrollib, kas arv on paaris. Kasuta seda tsüklis. 3. Tekstipuhasti (Tunniülesanne T2) Kirjuta funktsioon, mis eemaldab teksti servadest tühikud ja muudab tähed väikesteks. 4. Valuutavahetus (Koduülesanne K1) Loo funktsioonid eur_to_usd ja usd_to_eur. Ehita menüü funktsioonide kutsumiseks. 5. Matemaatik (Koduülesanne K2) Loo rekursiivne funktsioon Fibonacci jada leidmiseks. Meistritase: Salvesta väärtused sõnastikku, et vältida korduvaid arvutusi. Gurutase: Püüa ja halda Pythoni rekursiooni veateadet sügavate arvutuste korral. 6. Hinnaklastrid (Koduülesanne K3) Funktsioon eraldab stringist hinna ja valuuta. Meistritase: Tuvasta, kas tegu on euro või vana krooniga suurusjärgu järgi. Gurutase: Kirjuta loogika hinna eraldamiseks isegi siis, kui numbrite vahel on tühikuid. ================================================== NÄDAL 6: Sõnastikud (Dictionaries) ================================================== 1. Profiilikaart (Ühisprogrammeerimine) Loo kasutaja profiili sõnastik (nimi, vanus). Trüki andmed ja lisa uus võti. 2. Hinnakiri (Tunniülesanne T1) Küsi toote nime. Kui toode on sõnastikus, trüki hind, muidu teata puudumisest. 3. Tähelugeja (Tunniülesanne T2) Küsi kasutajalt lause ja loenda sõnastikuga, mitu korda iga täht tekstis esineb. 4. Kontaktiraamat (Koduülesanne K1) Sõnastik hoiab nimesid ja numbreid. Loo menüü kontaktide lisamiseks ja otsimiseks. 5. Hinneteraamat (Koduülesanne K2) Pesastatud sõnastik hoiab õpilaste hindeid. Meistritase: Arvuta ja prindi kogu klassi üldine keskmine hinne. Gurutase: Leia õpilane, kellel on suurim positiivne progress esimese ja viimase hinde vahel. 6. Pakiinfo (Koduülesanne K3) Loo pesastatud sõnastik pakiautomaatide asukohtadega. Meistritase: Filtreeri kindla linna automaadid ja sorteeri need nime järgi. Gurutase: Teosta andmestiku lahtipakkimine lamedaks sõnastikuks (flat dictionary). ================================================== NÄDAL 7: Failihaldus ja erandite püüdmine ================================================== 1. Tervituskiri (Ühisprogrammeerimine) Kirjuta tekstifaili tervitus ja seejärel loe faili sisu ning trüki ekraanile. 2. Numbrilugeja (Tunniülesanne T1) Failis on igal real arv. Loe arvud ja arvuta summa. Kasuta try/except tühjade ridade jaoks. 3. Päevikupidaja (Tunniülesanne T2) Küsi teade ja lisa see faili lõppu režiimis 'a' koos kuupäevaga. 4. Logianalüütik (Koduülesanne K1) Loe logifailist read ja loenda kokku, mitu rida sisaldab sõna "ERROR" või "WARNING". 5. CSV-töötleja (Koduülesanne K2) Loe komadega eraldatud fail listidesse. Meistritase: Käsitle puuduvad väärtused ja asenda need tekstiga "Puudub". Gurutase: Leia vajaliku veeru indeks automaatselt faili päiserida analüüsides. 6. Kava-kraapija (Koduülesanne K3) Loe failist töötlemata kava andmeid. Meistritase: Eralda ridadelt pealkirjad ja kellaajad, vältides vigasid try/except plokiga. Gurutase: Kirjuta puhastatud andmed uude torudega eraldatud (pipe-delimited) faili.