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
2.1 Tingimuslause
2.2 Videoloengud
2.3 Kodutöö
2.4 Harjutused
2.5 Silmaring. Regulaaravaldised
  • 3. Funktsioon
  • 4. Korduslause
  • 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

Harjutused

NB! Praktikumiülesandeid antakse alati varuga, et ka kõige kiirematel/kogenumatel lahendajatel jätkuks tegevust. Seega pole mõtet kurvastada, kui sa kõiki lahendada ei jõua. Vaata ülesanded rahulikult üle ja lahenda ära just need, mis tunduvad huvitavad ja/või parajalt jõukohased/rasked (kui just praktikumijuhendaja pole soovitanud mingit konkreetset ülesannet).

1. Pitsa hind

Kirjuta programm, mis arvutab pitsa ruutsentimeetri hinna, kui on antud pitsa läbimõõt ja terve pitsa hind.

2. Sõnaruut

Kirjuta programm, mis küsib kasutajalt mingi sõna ja väljastab seejärel sellest sõnast koosneva „ruudu”, kus kõik tähed on tehtud suureks. See tähendab, et sõna prinditakse järjest eraldi ridadele nii mitu korda, kui pikk on sisestatud sõna. Nt kui sisestati „Tere”, siis väljastatakse

 TERE
 TERE
 TERE
 TERE

Kui sisestati „uba”, siis väljastatakse

 UBA
 UBA
 UBA

Vihje: tuleta meelde, mida tähendab Pythoni jaoks '\n'.

3. Leinaraam

Kirjuta programm, mis küsib kasutajalt faili nime ja väljastab seal failis olevad andmed ekraanile, moodustades sealjuures teksti ümber raami. Eeldame, et failis on 4 rida, esimene neist sisaldab inimese eesnime, teine perekonnanime, kolmas sünniaega ja neljas surmaaega. Näiteks, kui faili sisu on

 Julius
 Kuperjanov
 11.10.1894
 02.02.1919

siis väljund peaks olema midagi taolist (aga laske fantaasial lennata):

 +-------------------------------+
 |                               |
 |       Julius Kuperjanov       |
 |                               |
 |    11.10.1894 - 02.02.1919    |
 |                               |
 +-------------------------------+

4. Kolmnurk

Kirjuta programm, mis küsib kasutajalt kahe kaateti pikkused ja joonistab kilpkonna abil neile vastava täisnurkse kolmnurga.

Lisa: programm peaks küsima ka joone paksust ja värvi ja arvestama seda joonistamisel (uuri mooduli turtle dokumentatsiooni).

Lisa 2: kasutaja saab määrata ka kolmnurga sisu värvi.

Lisa 3: kolmnurga andmed on kirjas failis ja kasutajalt küsitakse vaid failinime.

5. Äike

Kirjuta äikeselöögi kauguse arvutaja. Kui kasutaja näeb välgusähvatust, siis vajutab ta esimest korda Enterit, ning kui kuuleb kõminat, siis vajutab teist korda. (Enteri vajutamine on programmi jaoks sama mis tühja sõne sisestamine.) Seepeale vastab programm, kui kaugel oli äike.

Vihje:

 >>> from time import time
 >>> help(time)
 Help on built-in function time in module time:
 time(...)
     time() -> floating point number

     Return the current time in seconds since the Epoch.
     Fractions of a second may be present if the system clock provides them.
 >>> time()
 1347470675.236
 >>> time()
 1347470679.447

6. Yin ja yang

Joonista kilpkonnaga Yini-yangi sümbol http://en.wikipedia.org/wiki/Yin_and_yang (uuri moodulist turtle käsu circle kasutamist).

7. Summeerimine

Failis on 5 rida. Kirjuta programm, mis liidab kokku tekstifailis olevad arvud (igal real üks arv).

Lisa. Programm ütleb eraldi paaris- ja paaritute arvude summa ning mainib ka ära, kumbi oli rohkem.

8. Fizzbuzz

Kirjuta programm, mis küsib kasutajalt ühte täisarvu.

  1. Kui täisarv jagub 3-ga, siis trükib ekraanile sõna Fizz.
  2. Kui täisarv jagub 5-ga, siis trükib ekraanile sõna Buzz.
  3. Kui täisarv jagub nii 3-ga kui ka 5-ga, siis trükib programm ekraanile sõna FizzBuzz.
  4. Muudel juhtudel trükib ekraanile sellesama arvu.

Testi programmi täisarvudel 1, 2, . . . , 15.

Veendu, et programm annab õige tulemuse kõigil nendel arvudel.

9. Tapeedi ostmine

Kodutöös pidi Mikk välja arvutama vannitoa seinte värvimiseks vajaminevate värvipurkide arvu. Elutoa seintele otsustab ta aga panna tapeedi.

Sobiv metoodika tapeedirullide arvu leidmiseks, mis võimaldab arvestada ka mustri sobivust, on järgmine. Lihtsuse mõttes jätame ukse- ja aknaavad arvestamata.

  • Elutoa ümbermõõdu ja tapeedi laiuse järgi arvutada toa seinte katmiseks vajaminevate paanide arv.
  • Rullis oleva tapeedi pikkuse ja elutoa kõrguse järgi arvutada ühest rullist saadavate paanide arv.
  • Paanide koguarvu ja ühes rullis olevate paanide arvu järgi arvutada vajaminevate tapeedirullide arv.

Kirjuta programm, mis küsib kasutajalt elutoa pikkust, laiust ja kõrgust ning ühes rullis oleva tapeedi pikkust ja laiust. Seejärel leiab programm, mitu rulli tapeeti tuleb elutoa seinte katmiseks osta.

Näide 1

Sisesta algandmed:

toa pikkus = 3
toa laius = 4
toa kõrgus = 3
tapeedi pikkus rullis = 10
tapeedi laius rullis = 1

Tuleb osta 5 rulli tapeeti.

Näide 2

Sisesta algandmed:

toa pikkus = 5.1
toa laius = 3.4
toa kõrgus = 2.6
tapeedi pikkus rullis = 10.05
tapeedi laius rullis = 0.53

Tuleb osta 11 rulli tapeeti.

10. Hinded

Ülikooliainetes on levinud kaks hindamisviisi: eristav (täheline hinne punktisumma järgi) ja mitteeristav (arvestatud või mittearvestatud). Kirjuta programm, mis palub kasutajal sisestada aine punktisumma vahemikus 0 kuni 100 ja hindamisviisi. Kui hindamine on eristav, siis väljastab programm hinde järgmise skaala järgi: ≥90 on A, ≥80 on B, ≥70 on C, ≥60 on D, ≥50 on E ja <50 on F. Kui hindamine on mitteeristav, siis vähemalt 50-se punktisumma puhul väljastab teate, et aine on arvestatud; vastasel juhul on aine mittearvestatud.

Arenda oma programmi nii kaugele, et kui kasutaja sisestab midagi sobimatut, siis programm ei jookse kokku (kasuta lauseid try-except või if-else).

Näited

Sisesta punktisumma: 95
Kas hindamine on eristav või mitteeristav (e/m)? m
ARVESTATUD
Sisesta punktisumma: -15
Kas hindamine on eristav või mitteeristav (e/m)? e
Punktisumma peab jääma vahemikku 0–100
Sisesta punktisumma: 65
Kas hindamine on eristav või mitteeristav (e/m)? e
D
Sisesta punktisumma: 50
Kas hindamine on eristav või mitteeristav (e/m)? puudub
Hindamisviis on tundmatu

Millise hinde su programm väljastab, kui punktisumma on 0 ja hindamisviis mitteeristav?

  • 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