Lisa D Näiteprogrammid C++'is
Käesolev lisa esitab õppematerjali tähtsamate algoritmide realisatsioonid keeles C++. Programminäited on mõeldud ennekõike illustratsiooniks ja ei pretendeeri mingil juhul üldotstarbelise C++-keele õpiku staatusele.
C++ kui keele õppimiseks peaks lisaks käesolevale õppevahendile kindlasti kasutama ka spetsiaalset õpikut (näiteks mõnd allpool viidatutest).
Järgnevad näiteprogrammid on kirjutatud silmas pidades keele standardset dialekti ja testitud GNU C++ kompilaatoriga (vabavara1).
D.1 Sissejuhatus
D.1.1 Lihtne tervitus
cpp/01/tere1.cpp
D.1.2 Interaktiivne tervitus
cpp/01/tere2.cpp
cpp/01/vahetus.cpp
D.1.4 Andmetüüpide kasutamise näide
cpp/01/andmed.cpp
D.2 Valikulaused
D.2.1 Kahe arvu järjestamine
cpp/02/sort1.cpp
D.2.2 Lineaarvõrrandi lahendamine
cpp/02/linvqr.cpp
D.2.3 Maksimumi leidmine
cpp/02/max2.cpp
D.2.4 Kolmnurgaülesanne
cpp/02/klmnrk1.cpp
D.3 Korduslaused
D.3.1 Tekstifaili lugemine
cpp/03/ridu.cpp
D.3.2 Korduslausete näited
cpp/03/summa1.cpp
D.3.3 Arvumassiivi järjestamine
cpp/03/sort2.cpp
D.4 Alamprogrammid
D.4.1 Protseduur ja funktsioon
cpp/04/alam1.cpp
D.4.2 Muutuja skoop ja eluiga
cpp/04/alam2.cpp
D.4.3 Alamprogrammi parameetrid
cpp/04/alam3.cpp
cpp/04/alg.cpp
D.4.5 Faktoriaalid
cpp/04/fakt.cpp
D.4.6 Hanoi tornid
cpp/04/hanoi.cpp
D.5 Algoritmide keerukus
Selle peatüki juurde programminäiteid ei ole.
D.6 Kombinatoorika
D.6.1 Järjendite genereerimine rekursiivselt
cpp/06/jarj_rek.cpp
D.6.2 Permutatsioonide genereerimine rekursiivselt
cpp/06/perm_rek.cpp
D.6.3 Kombinatsioonide genereerimine rekursiivselt
cpp/06/komb_rek.cpp
D.6.4 Järjendite genereerimine iteratiivselt
cpp/06/jarj_ite.cpp
D.7 Lineaarsed andmestruktuurid
D.7.1 Lineaarne otsing
cpp/07/linots.cpp
D.7.2 Kahendotsing
cpp/07/kahots.cpp
D.7.3 Dünaamiline mäluhaldus
cpp/07/dyn.cpp
cpp/07/ahel.cpp
D.7.5 Magasin massiivi baasil
cpp/07/mag1.cpp
D.7.6 Magasin lihtahela baasil
cpp/07/mag2.cpp
D.7.7 Järjekord massiivi baasil
cpp/07/jrk1.cpp
D.7.8 Järjekord lihtahela baasil
cpp/07/jrk2.cpp
D.8 Mittelineaarsed andmestruktuurid
D.8.1 Kahendpuu läbimine
cpp/08/labipuu.cpp
D.8.2 Kahendotsingu puu
cpp/08/otsipuu.cpp
D.8.3 Kuhjameetodil sorteerimine
cpp/08/sort3.cpp
D.8.4 Lühimad teed graafis laiuti läbmisega
cpp/08/lyhteed.cpp
D.8.5 Topoloogiline sorteerimine sügavuti läbimisega
cpp/08/toposort.cpp
Kirjandus
- Andrew Koenig, Barbara E. Moo. Accelerated C++: Practical Programming by Example. Addison-Wesley, 2000.
- Õpik algajatele, ei eelda varasemat programmeerimiskogemust. 352 lk.
- Steve Heller. Who's Afraid of C++? Academic Press, 1996.
- Õpik algajatele, ei eelda varasemat programmeerimiskogemust. 508 lk.
http://www.steveheller.com/whos/
- Steve Heller. Learning to Program in C++. Prentice Hall, 2000.
- Eelmise uuem ja oluliselt täiendatud väljaanne. 1104 lk.
- Bruce Eckel. Thinking in C++, Volume I: Introduction to Standard C++. Prentice Hall, 2000.
- Hea mainega õpik, päris algajale võib veidi raske olla. 814 lk.
http://www.mindview.net/Books/TICPP/
- Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley, 2000.
- C++ looja kirjutatud raamat, eeldab lugejalt küllaltki tõsist eelnevat programmeerimiskogemust. 1040 lk. Kindlasti tuleks muretseda 3. või uuem trükk, sest varasemad väljaanded kirjeldavad keele vananenud dialekti.
- 1
- http://www.gnu.org/software/gcc/gcc.html