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

Programmeerimine 2022/23 sügis

  • Üldinfo
  • 1. Muutuja ja avaldis
  • 2. Tingimuslause
  • 3. Funktsioon
  • 4. Korduslause
4.1 Korduslause
4.2 Kodutöö
4.3 Harjutused
4.4 Silmaring: veebirakendus
  • 5. Lihtsam failitöötlus. Sõned
  • 6. Kontrolltöö 1
  • 7. Järjend
  • 8. Järjend 2
  • 9. Kahekordne tsükkel. Failitöötlus
  • 10. Andmestruktuurid
  • 11. Andmestruktuurid 2
  • 12. Kontrolltöö 2
  • 13. Rekursioon
  • 14. Objektorienteeritud programmeerimine
  • 15. Objektorienteeritud programmeerimine 2
  • Viiteid
  • 15. Objektorienteeritud programmeerimine 2

https://www.uttv.ee/naita?id=33896

  • 16. Kordamine. Projektide esitlused
  • Silmaringimaterjalid
  • Materjalid

4. kodutöö

1. 3n+1

Antud naturaalarvuga tehakse järgmisi operatsioone.

  • Kui arv jagub 2-ga, siis jagatakse ta 2-ga.
  • Kui arv ei jagu 2-ga, siis korrutatakse ta 3-ga ja liidetakse 1.

Kuigi keegi pole seda suutnud tõestada, valitseb arvamus, et ükskõik millisest arvust lähtudes jõuame neid operatsioone korduvalt rakendades lõpuks arvuni 1.

Koosta programm, mille sisendiks on naturaalarv n ning väljundiks sammude arv, mis kulub jõudmiseks arvuni 1.

Näide 1

 Sisesta arv: 4
 Sammude arv on 2.

Näide 2

 Sisesta arv: 6
 Sammude arv on 8.

Juhis. Tasub jälgida, et igal sammul oleks vahetulemus täisarvutüüpi.

2. Korrutis

Kirjuta programm, mis küsib kasutajalt positiivset täisarvu n ja prindib välja avaldise

{$$2\cdot\frac21\cdot\frac23\cdot\frac43\cdot\frac45\cdot\ldots\cdot\frac{2n}{2n-1}\cdot\frac{2n}{2n+1}$$}

väärtuse.

Vihje. Alusta arvust 2 ja korruta sellele igal sammul juurde järgmised tegurid kahekaupa. Avaldises olevate tegurite koguarv on teada.

Näide

 Sisesta n: 1
 Korrutis on 2.6666666666666665

Teine näide

 Sisesta n: 2
 Korrutis on 2.844444444444444

Testi oma programmi järjest suurenevate sisenditega. Millisele väärtusele see korrutis läheneb, kui n kasvab?

3. Päevade arv

Kirjuta funktsioon päevade_arv, millel on üks täisarvuline parameeter, kuu järjekorranumber. Funktsioon tagastab päevade arvu selles kuus. Kuude järjekorranumbrid on 1, 2, . . . , 12. Kui parameetri väärtuseks on midagi muud, siis tagastab funktsioon -1. Eeldame, et tegemist on lihtaastaga.

>>> päevade_arv(9)
30
>>> päevade_arv(2)
28
>>> päevade_arv(100)
-1

Testi funktsiooni erinevate argumentidega.

Seejärel kirjuta programm, mis küsib kasutajalt korduvalt kuu järjekorranumbrit ja prindib selle kuu päevade arvu, kasutades funktsiooni päevade_arv. Kui kasutaja sisestab tühisõne, siis programm lõpetab töö. Programm peaks tegema kõik vajalikud sisendikontrollid ja kutsuma funktsiooni päevade_arv välja ainult siis, kui kuu number on täisarv 1-st 12-ni (vihje: try-except).

 Sisesta kuu number: 3
 Selles kuus on 31 päeva
 Sisesta kuu number: 4
 Selles kuus on 30 päeva
 Sisesta kuu number: viis
 Ebakorrektne number
 Sisesta kuu number: -1
 Kuu number peab jääma lõiku 1–12
 Sisesta kuu number: 100
 Kuu number peab jääma lõiku 1–12
 Sisesta kuu number: 10
 Selles kuus on 31 päeva
 Sisesta kuu number: 
 Programm lõpetas töö.

Mittekohustuslik edasiarendus. Realiseeri funktsioon päevade_arv nii, et ta veebruari puhul tagastaks 28 või 29, olenevalt sellest, kas süsteemi jooksev aasta on liht- või liigaasta.

Esita programmid

Esita ülesannete lahendused Moodle'i kaudu failidena kodu1.py, kodu2.py ja kodu3.py.

Kui automaatkontroll ei lõpeta tööd, siis tõenäoliselt läheb mõni su programm lõpmatusse tsüklisse. Testi oma programme erinevate sisendandmetega ja uuri, milline tsükkel võib mingitel juhtudel jääda lõpmatuseni tööle.

  • 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.
Courses’i keskkonna kasutustingimused