Institute of Computer Science
  1. Courses
  2. 2022/23 fall
  3. Computer Programming (LTAT.03.001)
ET
Log in

Computer Programming 2022/23 fall

  • Ü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.

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment