Arvutiteaduse instituut
  1. Kursused
  2. 2024/25 kevad
  3. Programmeerimine keeles C++ (LTAT.03.025)
EN
Logi sisse

Programmeerimine keeles C++ 2024/25 kevad

  • Pealeht
  • 1. Muutujad ja andmetüübid
  • 2. Keele põhikonstruktsioonid I
2 Keele põhikonstruktsioonid I
2.1 Kodutöö
2.2 Harjutused
2.3 Videolingid
  • 3. Keele põhikonstruktsioonid II
  • 4. Klass, struktuur, mallid
  • 5. Dünaamiline mäluhaldus I
  • 6. Dünaamiline mäluhaldus II
  • 7. Kontrolltöö 1

Seitsmendal nädalal toimub 1. kontrolltöö

1. kontrolltöö näidis on Moodles

  • 8. Dünaamiline mäluhaldus III
  • 9. STL andmestruktuurid I
  • 10. STL andmestruktuurid II
  • 11. OOP I Klassid
  • 12. OOP II Pärilus ja polümorfism
  • 13. Erindite töötlemine
  • 14. Täiendavad teemad
  • 15. Kontrolltöö 2

Viieteistkümnendal nädalal toimub 2. kontrolltöö

2. kontrolltöö näidis on Moodles

  • 16. Projekti esitlus
  • Mõned viited - vajalikud kaaslased
  • Vanad materjalid
  • Juhendid
  • Viited

Harjutusülesanded

1. Ruutjuure algoritm

Levinud algoritmi järgi arvutatakse ruutjuurt positiivsest arvust n järgmiselt:

  1. Esialgseks lähendiks võib olla alg = n/2
  2. Arvuta r = n / alg
  3. Arvuta alg = (alg + r) / 2
  4. Korda alates 2. sammust, et teha nii palju iteratsioone kui vaja. Mida rohkem on sammude 2 ja 3 kordamist, seda lähemale muutub alg väärtus võrreldes ruutjuure täpse väärtusega.

Koosta programm, mis küsib kasutajalt positiivse täisarvu. Seejärel kasuta algoritmi ruutjuure leidmiseks, kuni leitud lähend ei erine eelmisest lähendist üle 1%. Väljasta tulemus täpsusega kaks kohta peale koma.

NB! Täisarvude jagamise tulemuseks on täisarv, nt 5/2 tulemuseks on 2. Et saada tulemuseks ujukomaarvu, peab vähemalt üks operandisest olema ujukomaarv, nt 5/2.0 tulemuseks on 2.5. Ümardamiseks võib kasutada funktsiooni round.

Näide programmi tööst.

Sisesta positiivne täisarv:46
Ruutjuur 46-st: 6.78

2. Koguhinne protsentides

Koosta programm, mis arvutab n ülesannete koguhinde protsentides. Kasutaja käest küsitakse ainete arvu n. Iga aine kohta küsitakse kasutajalt

  • mitu punkti ta ülesande eest sai
  • mis oli maksimaalne võimalik punktide selle ülesande eest

Arvuta protsent (teenitud punktide summa jagatud võimalike punktide summaga) ja väljasta see protsentides.

Näide programmi tööst.

Mitme ülesande tulemus sisestada? 3
1. ülesande eest saadud punktisumma: 10
Maksimaalne võimalik punktide arv 1. ülesande eest: 10
2. ülesande eest saadud punktisumma: 7
Maksimaalne võimalik punktide arv 2. ülesande eest: 12
3. ülesande eest saadud punktisumma: 5
Maksimaalne võimalik punktide arv 3. ülesande eest: 8

Kogusumma on 22 30-st ehk 73,33%.

3. Lennupiletite broneerimine

Koostage programm reisijatele kohtade määramiseks lennukis. Oletame, et meil on väike lennuk, kus istmeid nummerdatakse järgmiselt:

1 A B C D
2 A B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D

Kui iste on hõivatud, siis märgitakse seda tähisega X. Näiteks pärast istmete 1A, 3B ja 4D hõivamist peaks istmete kuva välja nägema nii:

1 X B C D
2 A B C D
3 A X C D
4 A B C X
5 A B C D
6 A B C D

Enne töö alustamist broneerib programm juhuslikult 5 istekohta (kasutades juhuarvu generaatorit). Pärast saadaolevate istmete kuvamist küsib programm soovitud istekohta. Kasutaja sisestab istekoha (nt 6 ja A) ja seejärel värskendatakse saadaolevate kohtade kuva. See jätkub kuni kõik kohad on täidetud või kuni kasutaja ei sisesta istekohta, vaid lõpetab töö. Kui kasutaja sisestab broneeritud istekoha, peab programm seda ütlema ja küsima uut valikut. Näide programmi tööst:

1 A B C D
2 A B C X
3 A B C X
4 A B C X
5 X B C D
6 A B X D
Sisesta rida, lõpetuseks 100:2
Sisesta koht:B
1 A B C D
2 A X C X
3 A B C X
4 A B C X
5 X B C D
6 A B X D
Sisesta rida, lõpetuseks 100:2
Sisesta koht:D
See koht on juba broneeritud!
1 A B C D
2 A X C X
3 A B C X
4 A B C X
5 X B C D
6 A B X D
Sisesta rida, lõpetuseks 100:6
Sisesta koht:D
1 A B C D
2 A X C X
3 A B C X
4 A B C X
5 X B C D
6 A B X X
Sisesta rida, lõpetuseks 100:100

NB! Ülesannet lahendades kasuta ka char tüüpi muutujat.

4. Kujund

Kirjuta programm, mis küsib kasutajalt arvu n, mis on 1 ja 15 vahel. Kui kasutaja sisestab mittesobiva arvu, siis küsida uuesti. Programm joonistab pildi n x n ruudust, mis on moodustatud O-tähtedest ja jätab tühja topeltdiagonaali (lisaks tühjale peadiagonaalile üks tühi kõrvalolev diagonaal veel).

Näide programmi tööst:

Sisesta arv 1 ja 15 vahel: 21
Ebasobiv arv. Sisesta uuesti: 8
 OOOOOOO
  OOOOOO
O  OOOOO
OO  OOOO
OOO  OOO
OOOO  OO
OOOOO  O
OOOOOO  
  • 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