Harjutused
NB! Praktikumiülesandeid antakse alati varuga, et ka kõige kiirematel/kogenumatel lahendajatel jätkuks tegevust. Seega pole mõtet kurvastada, kui sa kõiki lahendada ei jõua. Vaata ülesanded rahulikult üle ja lahenda ära just need, mis tunduvad huvitavad ja/või parajalt jõukohased/rasked (kui just praktikumijuhendaja pole soovitanud mingit konkreetset ülesannet).
1. Pitsa hind
Kirjuta programm, mis arvutab pitsa ruutsentimeetri hinna, kui on antud pitsa läbimõõt ja terve pitsa hind.
2. Sõnaruut
Kirjuta programm, mis küsib kasutajalt mingi sõna ja väljastab seejärel sellest sõnast koosneva „ruudu”, kus kõik tähed on tehtud suureks. See tähendab, et sõna prinditakse järjest eraldi ridadele nii mitu korda, kui pikk on sisestatud sõna. Nt kui sisestati „Tere”, siis väljastatakse
TERE TERE TERE TERE
Kui sisestati „uba”, siis väljastatakse
UBA UBA UBA
Vihje: tuleta meelde, mida tähendab Pythoni jaoks '\n'
.
3. Leinaraam
Kirjuta programm, mis küsib kasutajalt faili nime ja väljastab seal failis olevad andmed ekraanile, moodustades sealjuures teksti ümber raami. Eeldame, et failis on 4 rida, esimene neist sisaldab inimese eesnime, teine perekonnanime, kolmas sünniaega ja neljas surmaaega. Näiteks, kui faili sisu on
Julius Kuperjanov 11.10.1894 02.02.1919
siis väljund peaks olema midagi taolist (aga laske fantaasial lennata):
+-------------------------------+ | | | Julius Kuperjanov | | | | 11.10.1894 - 02.02.1919 | | | +-------------------------------+
4. Kolmnurk
Kirjuta programm, mis küsib kasutajalt kahe kaateti pikkused ja joonistab kilpkonna abil neile vastava täisnurkse kolmnurga.
Lisa: programm peaks küsima ka joone paksust ja värvi ja arvestama seda joonistamisel (uuri mooduli turtle dokumentatsiooni).
Lisa 2: kasutaja saab määrata ka kolmnurga sisu värvi.
Lisa 3: kolmnurga andmed on kirjas failis ja kasutajalt küsitakse vaid failinime.
5. Äike
Kirjuta äikeselöögi kauguse arvutaja. Kui kasutaja näeb välgusähvatust, siis vajutab ta esimest korda Enterit, ning kui kuuleb kõminat, siis vajutab teist korda. (Enteri vajutamine on programmi jaoks sama mis tühja sõne sisestamine.) Seepeale vastab programm, kui kaugel oli äike.
Vihje:
>>> from time import time >>> help(time) Help on built-in function time in module time: time(...) time() -> floating point number Return the current time in seconds since the Epoch. Fractions of a second may be present if the system clock provides them. >>> time() 1347470675.236 >>> time() 1347470679.447
6. Yin ja yang
Joonista kilpkonnaga Yini-yangi sümbol http://en.wikipedia.org/wiki/Yin_and_yang (uuri moodulist turtle käsu circle kasutamist).
7. Summeerimine
Failis on 5 rida. Kirjuta programm, mis liidab kokku tekstifailis olevad arvud (igal real üks arv).
Lisa. Programm ütleb eraldi paaris- ja paaritute arvude summa ning mainib ka ära, kumbi oli rohkem.
8. Fizzbuzz
Kirjuta programm, mis küsib kasutajalt ühte täisarvu.
- Kui täisarv jagub 3-ga, siis trükib ekraanile sõna Fizz.
- Kui täisarv jagub 5-ga, siis trükib ekraanile sõna Buzz.
- Kui täisarv jagub nii 3-ga kui ka 5-ga, siis trükib programm ekraanile sõna FizzBuzz.
- Muudel juhtudel trükib ekraanile sellesama arvu.
Testi programmi täisarvudel 1, 2, . . . , 15.
Veendu, et programm annab õige tulemuse kõigil nendel arvudel.
9. Tapeedi ostmine
Kodutöös pidi Mikk välja arvutama vannitoa seinte värvimiseks vajaminevate värvipurkide arvu. Elutoa seintele otsustab ta aga panna tapeedi.
Sobiv metoodika tapeedirullide arvu leidmiseks, mis võimaldab arvestada ka mustri sobivust, on järgmine. Lihtsuse mõttes jätame ukse- ja aknaavad arvestamata.
- Elutoa ümbermõõdu ja tapeedi laiuse järgi arvutada toa seinte katmiseks vajaminevate paanide arv.
- Rullis oleva tapeedi pikkuse ja elutoa kõrguse järgi arvutada ühest rullist saadavate paanide arv.
- Paanide koguarvu ja ühes rullis olevate paanide arvu järgi arvutada vajaminevate tapeedirullide arv.
Kirjuta programm, mis küsib kasutajalt elutoa pikkust, laiust ja kõrgust ning ühes rullis oleva tapeedi pikkust ja laiust. Seejärel leiab programm, mitu rulli tapeeti tuleb elutoa seinte katmiseks osta.
Näide 1
Sisesta algandmed: toa pikkus = 3 toa laius = 4 toa kõrgus = 3 tapeedi pikkus rullis = 10 tapeedi laius rullis = 1 Tuleb osta 5 rulli tapeeti.
Näide 2
Sisesta algandmed: toa pikkus = 5.1 toa laius = 3.4 toa kõrgus = 2.6 tapeedi pikkus rullis = 10.05 tapeedi laius rullis = 0.53 Tuleb osta 11 rulli tapeeti.
10. Hinded
Ülikooliainetes on levinud kaks hindamisviisi: eristav (täheline hinne punktisumma järgi) ja mitteeristav (arvestatud või mittearvestatud). Kirjuta programm, mis palub kasutajal sisestada aine punktisumma vahemikus 0 kuni 100 ja hindamisviisi. Kui hindamine on eristav, siis väljastab programm hinde järgmise skaala järgi: ≥90 on A, ≥80 on B, ≥70 on C, ≥60 on D, ≥50 on E ja <50 on F. Kui hindamine on mitteeristav, siis vähemalt 50-se punktisumma puhul väljastab teate, et aine on arvestatud; vastasel juhul on aine mittearvestatud.
Arenda oma programmi nii kaugele, et kui kasutaja sisestab midagi sobimatut, siis programm ei jookse kokku (kasuta lauseid try-except või if-else).
Näited
Sisesta punktisumma: 95 Kas hindamine on eristav või mitteeristav (e/m)? m ARVESTATUD
Sisesta punktisumma: -15 Kas hindamine on eristav või mitteeristav (e/m)? e Punktisumma peab jääma vahemikku 0–100
Sisesta punktisumma: 65 Kas hindamine on eristav või mitteeristav (e/m)? e D
Sisesta punktisumma: 50 Kas hindamine on eristav või mitteeristav (e/m)? puudub Hindamisviis on tundmatu
Millise hinde su programm väljastab, kui punktisumma on 0 ja hindamisviis mitteeristav?