Tehtäviä
Alla on liuta erilaisia tehtäviä. Jos tehtävän teko ei onnistu, niin katso vinkkiä malliratkaisuista. Muista, että on monta eri tapaa ratkaista tehtävä.
Helpommat
1. Luo ohjelma, joka kysyy käyttäjältä kaksi lukua: suorakulmion leveyden ja korkeuden. Ohjelma laskee ja ilmoittaa suorakulmion piirin ja pinta-alan.
2. Luo ohjelma, joka kertoo onko annettu luku parillinen vai ei.
(Vinkki: Jos luku on parillinen, niin jakojäännös kakkosella jaettuna on nolla. Parittomalla luvulla jakojäännös on yksi.)
3. Luo ohjelma, joka kysyy käyttäjältä lukua 1-12 ja kertoo numeron perusteella, mitä kuukautta numero vastaa.
(Vinkki: Voit tehdä joko listan, joka sisältää kaikki kuukaudet ja viitata niihin komennolla lista[järjestysluku] tai tehdä if-ehdon jokaista kuukautta varten.)
4. Luo ohjelma, joka arpoo kaksi lukua väliltä 1-9. Jos arvotut kaksi lukua ovat samat, niin kone tulostaa tekstin "Aikamoinen sattuma". Jos luvut eivät olesamat, niin kone tulostaa tekstin "Aina ei voi voittaa".
(Vinkki: Tuo käyttöön random-kirjasto import random -komennolla ja arvo kaksi lukua random.randint(alku,loppu) -komennolla.)
5. Luo ohjelma, joka kysyy käyttäjältä sanoja ja lisää ne listaan. Kun käyttäjä lisää sanan "loppu", niin ohjelma järjestää listan aakkosjärjestykseen ja tulostaa sen.
(Vinkki: Tee aluksi tyhjä lista. Tee sen jälkeen while-silmukka, joka kestää kunnes käyttäjä sanoo "loppu". While-silmukassa ohjelma kysyy käyttäjältä sanoja ja lisää ne tyhjään listaan.)
6. Pythagoran lauseella voidaan ratkaista suorakulmaisen kolmion pisimmän sivun [[$c$]] pituus, kun kolmion korkeus [[$a$]] ja leveys [[$b$]] tiedetään. Pisimmän sivun [[$c$]] pituus on tällöin [[$c=\sqrt{a^2+b^2}$]].
Luo ohjelma, joka kysyy käyttäjältä suorakulmaisen kolmion korkeuden ja leveyden ja ratkaisee kolmion pisimmän sivun pituuden yhden desimaalin tarkkuudella.
(Vinkki: Neliöjuuri toimii komennolla math.sqrt(luku), kun olet ottanut math-kirjaston käyttöösi komennolla math import.)
7. Luo ohjelma, joka pyytää käyttäjää arvioimaan 15 sekunnin kulumisen mahdollisimman tarkasti.
(Vinkki: Tuo aikakirjasto käyttöön import time -komennolla. Tapahtuman tarkan ajanhetken saa talteen tekemällä muuttujan, jonka arvo on time.time().)
Haastavammat
7. a) Luo ohjelma, joka kysyy käyttäjältä kuvion leveyden ja korkeuden. Ohjelma tulostaa leveyden ja korkeuden perusteella risuaitakuvion. Esimerkiksi, jos leveys on neljä ja korkeus on kolme, niin kuvio on
#####
#####
#####.
b)* Korjaa a)-kohdan ohjelmaa siten, että risuaidat ovat vain kuvion reunoilla ja niiden keskellä on tyhjää tilaa.
8. Luo ohjelma, joka kysyy käyttäjältä, kuinka monta kertaa kolikkoa heitetään. Joka heitolla ohjelma arpoo kruunan tai klaavan. Lopuksi ohjelma kertoo kruunien ja klaavojen lukumäärät ( ja prosenttiosuudet).
9. Tekstiseikkailut ovat pelejä, jotka nimensä mukaisesti toimivat tekstiin perustuvalla käyttöliittymällä. Peli etenee sen mukaan, miten pelaaja vastaa esitettyihin kysymyksiin.
Luo yksinkertainen tekstiseikkailupeli, joka koostuu erilaisista ehto- ja toistorakenteista.
10. Ohjelmoi lottokone, joka kysyy käyttäjältä seitsemän lukua. Sen jälkeen ohjelma arpoo seitsemän lukua väliltä 1-40 ja vertaa käyttäjän lukua arvottuihin lukuihin sekä ilmoittaa kuinka monta meni oikein.
(Vinkki: Tee while-silmukka, joka lisää käyttäjän kirjoittamia lukuja listaan. Silmukka päättyy, kun listassa on seitsemän lukua. Sen jälkeen toinen silmukka käy läpi käyttäjän antamat luvut arvotuista luvuista muodostetun listan kanssa.)
11. a) Luo ohjelma, joka tulostaa kaikki merkkijonot, joissa esiintyvät kirjaimet A, B, C ja D. Esimerkiksi AAAA, AAAB, AABB jne.
(Vinkki: luo lista ["A", "B", "C", "D"] ja käytä for-komentoa neljä kertaa. Katso kappale "Toistorakenne".)
b)* Korjaa a)-kohdan ohjelmaa siten, että sama kirjain ei saa esiintyä merkkijonossa kahta kertaa. Esimerkiksi ABCD, ABDC, ACBD jne.
(Vinkki: Käytä if-lauseita for-komentojen jälkeen, jotta sama kirjain ei esiinny useampaa kertaa tulosteessa.)