3. nädala lisaharjutused
1. Tulpdiagramm funktsioonidega
Muuda 3. praktikumi tulpdiagrammi ülesande lahendust selliselt, et tulpade joonistamiseks kasutatakse programmis defineeritud funktsiooni tulp(laius, kõrgus, värv)
. Muuda programmi veel selliselt, et nt 50-st suurematele väärtustele vastavad tulbad joonistatakse teise värviga (st funktsiooni väljakutses varieeritakse värvi argumenti).
2. Faili suurus
Kirjuta funktsioon, mis võtab argumendiks failinime ja tagastab selle faili suuruse baitides, kui süsteemis leidub etteantud nimega fail, või 0, kui sellist faili pole või kui see nimi tähistab hoopis kausta. Abiks on Pythoni moodul os.path
(http://docs.python.org/py3k/library/os.path.html) NB! Tegemist on mitmeosalise moodulinimega, st importimisel tuleb mainida mõlemad nime osad, nt:
from os.path import *
3. Kilo, mega, giga
Suurte failide puhul ei ole mugav arvestada faili suurust baitides. Kirjuta funktsioon teisenda
, mis võtab argumendiks baitide arvu ja tagastab sõne, kus baidid on teisendatud sobivatesse ühikutesse, sobiva täpsusega. Näiteks teisenda(37065)
võiks tagastada sõne "36.2 KB"
4. Kasutajasõbralik failisuurus
Kirjuta funktsioon, mis võtab argumendiks failinime ja tagastab faili suuruse sõnena, parajates ühikutes. Kasuta abifunktsioonidena eelmiste ülesannete funktsioone.
Lõpuks koosta programm, mis küsib kasutajalt korduvalt failinime ja kuvab loodud funktsiooni abil vastuseks ekraanile vastava faili suuruse. Tsükli lõpetamiseks peab kasutaja sisestama tühisõne.
5. Kolmnurga pindala
Kel jäi õpiku 4. peatüki lõpust lahendamata ülesanne 5 (https://progeopik.cs.ut.ee/04_funktsioonid.html#kolmnurga-pindala), võiks seda nüüd proovida.
6. Torbikute kandmine
Selle ülesandega saab harjutada keerulise probleemi osadeks jaotamist.
Eeldame, et Pykkari maailma ristkülikukujulise vaba ala laius on n ruutu (n >= 2), kõrgus vähemalt 3 ruutu. Kirdenurgas asub vähemalt n liiklustorbikut (cone), need vaja paigutada lõunaseina äärde (igale ruudule 1 torbik). Võib eeldada, et Pykkar on alguses näoga ida suunas. Üks võimalik maailm, kus programm peaks töötama:
####### # > 5# # # # # # # # # # # #######
Pykkar liigub edasi käsuga step()
, pöörab käsuga right()
, kontrollib kas ees on sein käsuga is_wall()
või kas ees on torbik käsuga is_cone()
. Käsuga take()
võtab tema ees oleva torbiku ja käsuga put()
paneb ta selle jälle enda ette maha.