Arvutiteaduse instituut
  1. Kursused
  2. 2019/20 sügis
  3. Programmeerimine (LTAT.03.001)
EN
Logi sisse

Programmeerimine 2019/20 sügis

  • Pealeht
  • Videojuhised
  • Viiteid

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

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)]

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
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
euroopa sotsiaalfondi logo