8. nädala lisaharjutused
1. Sõnapikkuste analüüs
Kirjuta programm, mis küsib kasutajalt tekstifaili nime ja väljastab selles failis leiduvate eri pikkusega sõnade esinemissagedused. Näiteks:
1-tähelisi sõnu esines 78 korral 2-tähelisi sõnu esines 123 korral . . . 15-tähelisi või pikemaid sõnu esines 6 korral
Vihje. Uuri õpiku 9. peatükist harjutust „Täringuvisete statistika”.
Lisa 1. Kõige lõpuks väljasta kõik erinevad 15-tähelised või pikemad sõnad.
Lisa 2. Lase programmil joonistada tulemuste tulpdiagramm.
2. Listi elementide järjestamine
Koduülesandes tuli kirjutada funktsioon, mille argumendiks on list ja mis ajab seal elemendid juhuslikult segamini.
Nüüd on ülesandeks kirjutada funktsioon minu_sort, mille argumendiks on suvalise pikkusega arvulist ning mis järjestab selle listi elemendid mittekahanevalt. Midagi tagastada ei ole vaja.
Vihje. Kõige lihtsam on kasutada jällegi elementide paarikaupa äravahetamist. Tõenäoliselt on vaja list mitu korda „läbi käia”.
Lisa 1. Muuda lahendust nii, et argumendiks antud list jääb muutmata ja funktsioon tagastab uue, järjestatud listi.
3. Oma split
Kirjuta funktsioon minu_split, mis toimib analoogselt Pythoni sõnemeetodiga split. Loodav funktsioon peaks võtma argumendiks kaks sõne (tekst ja eraldaja) ning tagastama sõnede järjendi. Näiteks
>>> minu_split('tere vana kere', ' ') ['tere', 'vana', 'kere']
Lisa. Proovi teha oma funktsiooni Pythoni split-iga veel sarnasemaks – korralda nii, et kui eraldajat pole antud, siis toimub jupitamine nende kohtade pealt, kus on koos 1 või rohkem tühisümbolit (tühik, tabulaator või reavahetus).
4. Kauplusejärjekord
Järjendisse on salvestatud kaupluse kassajärjekorras seisvate inimeste korvis olevate esemete arvud (küsida kasutajalt). Koosta programm, mis iga järjekorras oleva inimese puhul leiab, mitmel inimesel tema ees on korvis rohkem kui kolm eset.
5. Järjestikused naturaalarvud
Kirjuta funktsioon, mille argumendiks on naturaalarvude list ning mis tagastab True
või False
vastavalt sellele, kas etteantud list sisaldab n esimest naturaalarvu, kus n on listi pikkus. Näiteks
>>> on_järjestikused([2,4,1,3,0])
peaks tagastama True
, aga
>>> on_järjestikused([2,4,1,3])
peaks tagastama False
(sest 0 on puudu).
NB! Funktsioon peab töötama ka tühja listi puhul!
Jah, arvutiteaduses loetakse ka 0 naturaalarvuks.