15. kodutöö
1. Regulaaravaldis
Tartu ülikoolis on igal arvutivõrgu kasutajal oma kodukataloog. Sinna võib kasutaja luua oma kodulehe, mis asub ülikooli serveris. Koduleht on juurdepääsetav aadressilt http://www.ut.ee/~kasutajanimi/, näiteks http://www.ut.ee/~vilo.
Faili aadressid.txt on salvestatud veebiaadressid, iga aadress eraldi real. Lisaks võib failis olla muud selgitavat teksti. Kirjuta programm, mis loeb faili sisse, otsib üles read, milles esinevad Tartu ülikooli kasutajanime sisaldavad veebiaadressid ning väljastab kasutajanimed ekraanile. Kasutajanimede otsimiseks veebiaadressidest tuleb kasutada regulaaravaldisi. Muu informatsiooni, sealhulgas muudel veebiaadressidel asuvad kasutajanimed, peaks programm vahele jätma.
Kui näiteks faili aadressid.txt sisu on
http://www.ut.ee/~koit/KT/index_eng.html Loeng kestab 90 minutit. http://butler.cc.tut.fi/~jorma/ https://www.ut.ee/et/oppimine http://www.ut.ee/~vilo/ http://www.ut.ee/~kiho/ Kirjutis "x ~ y" tähendab, et x ja y on sama järku suurused.
siis peaks programmi väljund olema
Kasutajanimed on: koit vilo kiho
Kui oled juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saad abi murelahendajalt
. Püütud on selgitada tüüpilisemaid probleemseid selgitada ja anda vihjeid.
2. Järjesta punktid
Võta aluseks mõne sortimismeetodi (nt valikumeetod (selection sort), mullimeetod (bubble sort), pistemeetod (insertion sort)) kood ja tee sellest funktsioon järjesta_punktid, mille parameetriks on tasandipunktide koordinaatide järjend ning mis järjestab punktid koordinaatide kasvamise järjekorras ridade kaupa, samas reas asuvad punktid veerukaupa. Iga punkti koordinaadid on antud kaheliikmelise ennikuna. Funktsioon muudab etteantud järjendit, mitte ei tagasta uut järjendit.
Näide.
>>> p = [(4,1), (3,3), (2,0), (6,1), (3,2), (5,2), (1,1)] >>> järjesta_punktid(p) >>> print(p) [(2, 0), (1, 1), (4, 1), (6, 1), (3, 2), (5, 2), (3, 3)]
Kui oled juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saad abi murelahendajalt
. Püütud on selgitada tüüpilisemaid probleemseid selgitada ja anda vihjeid.
3. Bussid
Tekstifailis on kirjas busside sõiduplaan kahe linna vahel. Igas reas on tühikutega eraldatult kirjas bussi väljumisaeg vormingus hh:mm, bussi saabumisaeg samas vormingus ja sõidu hind eurodes. Ilmselt ei tasu esimesest linnast teise sõitmiseks valida bussi, mille väljumisaeg on varasem, saabumisaeg hilisem ja sõidu hind suurem kui mõnel teisel bussil. Kirjuta programm, mis küsib kasutajalt failinime, loeb sellest failist sisse busside sõiduplaani ning väljastab ekraanile väljumisaegade järjestuses kõik bussid, mis kõigi niisuguse omadusega busside eemaldamisel alles jäävad.
Näiteks kui sõiduplaanide faili sisu on
09:00 11:30 5 10:00 13:00 6 09:15 12:15 7 09:30 12:00 6 10:15 12:45 5
siis peaks programm väljastama järgmise info:
Sisesta failinimi: sõiduplaan.txt Esimesest linnast teise sõitmiseks võiksid kaaluda järgmisi busse: 09:00 11:30 5 09:30 12:00 6 10:15 12:45 5
Kui oled juba hulk aega proovinud ülesannet iseseisvalt lahendada ja see ikka ei õnnestu, siis võib-olla saad abi murelahendajalt
. Püütud on selgitada tüüpilisemaid probleemseid selgitada ja anda vihjeid.