Arvutiteaduse instituut
Logi sisse
  • English
  • Kursused
  • 2020/21 sügis
  • Programmeerimine (LTAT.03.001)

Programmeerimine 2020/21 sügis

  • Pealeht
  • Silmaringimaterjalid
  • Viiteid

2. kodutöö

1. Pythoni dokumentatsioon

Uuri Pythoni dokumentatsioonist mooduli math kohta käivat infot (http://docs.python.org/3/library/math.html). Otsi välja käskude floor ja ceil tähendus – neid võib edaspidi ülesannete lahendamisel tarvis minna. Vaata üle ka sõnemeetodite dokumentatsioon (http://docs.python.org/3/library/stdtypes.html#string-methods).

Nurksulud Pythoni funktsioonide dokumentatsioonis näitavad, et sellele parameetrile ei pea väljakutsel tingimata väärtust andma, sest tal on olemas vaikeväärtus. Nt kui meetodi kirjeldus on kujul str.center(width[, fillchar]), siis see tähendab, et seda võib kasutada kas ühe argumendiga (nt kliendi_nimi.center(80)) või kahe argumendiga (kliendi_nimi.center(80, '~')).

2. Elektriliin

Sirgjoonelise elektriliini ehitamisel paigutatakse kõrvutiasetsevad postid võrdsete kaugustega, mis ei ületa etteantud maksimaalkaugust. Liin algab ja lõpeb postiga. Kasutajalt küsitakse liini pikkust (täisarvuna meetrites) ja kõrvutiasetsevate postide maksimaalkaugust (täisarvuna meetrites). Ekraanile väljastatakse, mitu posti on liini ehitamiseks minimaalselt vaja.

Testi oma programmi!

  • Vali vähemalt üks komplekt andmeid nii, et kõik kõrvutiasetsevad postid oleksid maksimaalkaugusel. (Nt liini pikkus 400 m, maksimaalne postidevaheline kaugus 40 m.)
  • Vali vähemalt üks komplekt nii, et kõrvutiasetsevad postid oleksid lähemal kui maksimaalkaugus.
  • Vali vähemalt üks komplekt, kus liini pikkus oleks postide maksimaalkaugusest väiksem.

Automaatkontroll. Programm peab küsima kasutajalt täpselt kahte arvu ja kirjutama tulemuse ekraanile.

3. Kasutajanime loomine

Koosta programm, mis

  • küsib kasutajalt eesnime
  • küsib kasutajalt perenime
  • väljastab kasutajanime, mis on loodud eesnime ja perenime liitmisel, kus tähed on läbivalt väikesed ja ees- ja perenime eraldajaks on punkt.

Kasutaja võib sisestada nime läbivalt väikeste tähtedega, ainult suurte tähtedega või segamini, kuid programm peab alati väljastama kasutajanime läbivalt väikeste tähtedega.

Näide

>>> %Run nimi.py
Sisesta eesnimi: kALle
Sisesta perenimi: KalDUR
kalle.kaldur
>>> 

Vihje

>>> "kaSpaR".lower()
kaspar

Sõnesid saab ühendada tehtega +.

Edasiarendus

Praegu on aktsepteeritav, kui programm jätab täpitähed muutmata (nt kui kasutaja sisestab eesnimeks „ÜLLE“ ja programm muudab selle sõnaks „Ülle“). Aga kui see ülesanne oli sinu jaoks liiga lihtne, siis proovi kirjutada programmist ka selline variant, mis muudab täpitähed vastavateks täppideta tähtedeks, st mis muudaks näiteks sõna „pÕÕsas“ sõnaks „poosas“.

4. Masintõlge

Kirjuta programm, mis küsib kasutajalt kaks failinime. Esimene märgib mingit olemasolevat tekstifaili, teine aga mingit uut faili, mida ei tarvitse veel olemas olla.

Programmi ülesanne on võtta esimese faili sisu, asendada seal kõik sõnad „Hello“ sõnadega „Tere“ ja kirjutada tulemus teise faili. Ekraanile väljastada, mitu asendamist tehti.

Näide

Faili inglise.txt sisu:

Hello!
Hello Kitty
Hello-Hello

>>> %Run teisenda.py
Lähtefaili nimi: inglise.txt
Sihtfaili nimi: eesti.txt
Tehti 4 asendamist.

Faili eesti.txt sisu:

Tere!
Tere Kitty
Tere-Tere

Vihje

>>> 'abcabca'.count('ab')
2
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:
Tartu Ülikooli arvutiteaduse instituudi kursuste läbiviimist toetavad järgmised programmid:
iktp regionaalarengu fondi logo euroopa sotsiaalfondi logo tiigriülikooli logo it akadeemia logo