Ohjelmointi++ - Sisällys
Ohjelmointi++ - Otsikkosivu
Kirjallisuutta ja materiaalia
Lukijalle
1. Johdanto
1.1 Ohjelman suunnittelu
1.2 Työkalun valinta
1.3 Koodaus
1.4 Testaus
1.5 Käyttöönotto
1.6 Ylläpito
1.7 Yhteenveto
2. Kerhon jäsenrekisteri
Mitä tässä luvussa käsitellään?
2.1 Tehtävän tarkennus
2.2 Työkalun valinta
2.3 Tietorakenteet ja tiedostot
2.4 Käyttöohje tai käyttöliittymä
2.4.1 Lisää uusi jäsen
2.4.2 Etsi jäsenen tiedot
2.4.3 Tulosteet
Tehtävä 2.1 Tulosteet
2.4.4 Tietojen korjailu
2.4.5 Lopetus
2.5 Käyttöohjeen testaus
2.5.1 Testaus
2.5.2 Korjaus
2.5.3 Muita korjauksia
2.5.4 Uusi testaus
2.6 Tarvittavien algoritmien hahmottaminen
2.6.1 Ylemmän tason aliohjelmat
2.6.2 Alemman tason aliohjelmat
2.6.3 Ohjelman yhteiset osat
2.7 Ikkunoinnit ja muut hienostelut
2.8 Koodaus ohjelmointikielelle
2.9 Varautuminen tulevaan, eli relaatiotietomalli
2.9.1 Kaikki samassa tietueessa
2.9.2 Erimalliset tietueet
2.9.3 Relaatiomalli
Tehtävä 2.2 Ketkä harrastavat?
Tehtävä 2.3 Mikä on tilaa säästävin talletusmuoto
3. Yksinkertainen tulkkiohjelma
3.1 Tehtävän tarkennus
3.2 Tietorakenteet ja tiedostot
Tehtävä 3.4 Kielen lisääminen
3.3 Käyttöohje
3.4 Algoritmien hahmottaminen
3.4.1 Ylemmän tason aliohjelmat
3.4.2 Alemman tason aliohjelmat
Tehtävä 3.5 Aliohjelmien käyttö
Tehtävä 3.6 Erikoistapauksia
Tehtävä 3.7 Algoritmi muuttamiselle
3.5 Koodaus ohjelmointikielelle
4. Algoritmin suunnittelu
Mitä tässä luvussa käsitellään?
4.1 Algoritmi
Tehtävä 4.8 Kävelyohjeet
4.2 Lajittelu
4.2.1 Nimien ja numeroiden vertaus
4.2.2 Algoritmin sanallinen versio on kuvaavampi!
4.2.3 Numeroiden järjestäminen
Tehtävä 4.9 Muita lajittelualgoritmeja
Tehtävä 4.10 Algoritmin kompleksisuus
Tehtävä 4.11 Lajittelujärjestys
4.2.4 Kuplalajittelu
Tehtävä 4.12 Kuplalajittelu
4.2.5 Lajittelu avaimen mukaan
4.2.6 Algoritmin parantaminen
Tehtävä 4.13 Loppuminen erikoistapauksessa
Tehtävä 4.14 QuickSortin kompleksisuus
Tehtävä 4.15 Lisäys oikealle paikalleen vaiko lisäys loppuun ja lajittelu?
4.3 Algoritmin tarkentaminen
4.3.1 Pienimmän etsiminen
4.3.2 Paikalleen sijoittaminen
4.4 Haku järjestetystä joukosta
4.4.1 Suora haku
4.4.2 Puolitushaku
Tehtävä 4.16 Puolitushaku
Tehtävä 4.17 Puolitushaun kompleksisuus
4.5 Yhteenveto
Tehtävä 4.18 Kumin paikkaus
Tehtävä 4.19 Sunnuntai- ilta
Tehtävä 4.20 Onkiminen
Tehtävä 4.21 Järjestyksen kääntäminen päinvastaiseksi
5. Algoritmeissa tarvittavia rakenteita
Mitä tässä luvussa käsitellään?
5.1 Ehtolauseet
Tehtävä 5.22 Ajanlisäys
Tehtävä 5.23 Postimaksu
5.2 Valintalauseet
Tehtävä 5.24 Korvaaminen ehtolauseilla
5.3 Silmukat
Tehtävä 5.25 Uiminen
Tehtävä 5.26 Ynnää luvut 1- 100
5.4 Muuttujat
5.4.1 Yksinkertaiset muuttujat
Tehtävä 5.27 Vuokaavio
5.4.2 Pöytätesti
Tehtävä 5.28 Algoritmin parantaminen
Tehtävä 5.29 Pöytätesti
5.4.3 Yksiulotteiset taulukot
Tehtävä 5.30 Lajittelun testaus
Tehtävä 5.31 Korttien poisto
5.4.4 Osoittimet
Tehtävä 5.32 Korttien poisto osoittimia käyttäen
5.4.5 Moniulotteiset taulukot
Tehtävä 5.33 Kaksiulotteisen taulukon indeksit
Tehtävä 5.34 Sijoitus 3- ulotteiseen taulukkoon
Tehtävä 5.35 3- ulotteinen taulukko 1- ulotteiseksi
Tehtävä 5.36 3- ulotteinen taulukko
Tehtävä 5.37 4- ulotteinen taulukko
5.4.6 Sekarakenteet
Tehtävä 5.38 Sanojen muuttaminen
5.5 Osoittimista ja indekseistä
5.6 Aliohjelmat
Tehtävä 5.39 Lihapullan paistaminen
5.7 Vaihtoehtojen tutkiminen totuustaulun avulla
5.7.1 Kaikkien vaihtoehtojen kirjaaminen
5.7.2 Vaihtoehtojen lukumäärä
Tehtävä 5.40 Kombinaatioiden lukumäärä
5.7.3 Useita vaihtoehtoja samalla muuttujalla
Tehtävä 5.41 BAL=kyllä?
Tehtävä 5.42 Kuka valehtelee?
5.7.4 Loogiset operaatiot
Tehtävä 5.43 de Morganin kaava
Tehtävä 5.44 Osittelulaki
Tehtävä 5.45 Ehtojen sieventäminen
5.8 Muistele tätä
Tehtävä 5.46 Merkkijonot
Tehtävä 5.47 Päivämäärät
6. Esimerkkejä eri kielistä
Mitä tässä luvussa käsitellään?
6.1 Esimerkkiohjelmat
6.1.1 Pascal
6.1.2 C
6.1.3 C++
6.1.4 Java
6.1.5 Fortran
6.1.6 ADA
6.1.7 BASIC
6.1.8 APL
6.1.9 Modula- 2
6.1.10 Lisp
6.1.11 FORTH
6.1.12 Assembler
6.2 Käytettävän kielen valinta
7. C ja C++ - kielten alkeita
Mitä tässä luvussa käsitellään?
7.1 C/C++
7.1.1 Hello World! C- kielellä
7.1.2 Hello World! C++ - kielellä
Tehtävä 7.48 Nimi ja osoite
7.2 Tekstitiedostosta toimivaksi konekieliseksi versioksi
7.2.1 Kirjoittaminen
7.2.2 Kääntäminen
7.2.3 Linkittäminen
7.2.4 Ohjelman ajaminen
7.2.5 Varoitus
7.2.6 Integroitu ympäristö
7.3 Ohjelman yksityiskohtainen tarkastelu
7.3.1 Kommentti
7.3.2 Kirjastofunktioiden esittely
7.3.3 Päämodulin esittely
7.3.4 Lausesulut
7.3.5 Tulostuslause
7.3.6 Lauseen loppumerkki ;
7.3.7 Funktion arvon palautus
7.3.8 Isot ja pienet kirjaimet
7.3.9 White spaces, tyhjä
7.4 Makro-direktiivi ja vakiot
7.4.1 Vakiomerkkijonot
Tehtävä 7.49 Terve maailma!
Tehtävä 7.50 Nimi ja osoite vakioksi
7.4.2 Vakiolukuarvot
Tehtävä 7.51 Tetraedri
Tehtävä 7.52 printf ja %
7.4.3 Muita makro-"temppuja"
7.4.4 Esikääntäjän toiminnasta
Tehtävä 7.53 Sisäkkäiset makrot
7.5 C++:n vakiot
Tehtävä 7.54 Vakiot ó #define
8. C++- kielen muuttujista ja aliohjelmista
Mitä tässä luvussa käsitellään?
8.1 Mittakaavaohjelman suunnittelu
8.2 Muuttujat
8.2.1 Matkan laskeminen
Tehtävä 8.55 Vakion korvaaminen
8.2.2 Muuttujan nimeäminen
Tehtävä 8.56 Varatut sanat
Tehtävä 8.57 Muuttujan nimeäminen
8.2.3 Muuttujalle sijoittaminen =
Tehtävä 8.58 Muuttujien esittely
8.2.4 Muuttujan esittely ja alkuarvon sijoittaminen
8.3 Muuttujan arvon lukeminen päätteeltä
8.3.1 scanf ja muuttujan osoite &
Tehtävä 8.59 Mittakaavan kysyminen
8.3.2 Tiedon lukeminen C++:ssa, cin
8.4 Osoittimet
8.4.1 Miksi osoittimet?
8.4.2 Muuttujan arvon epäsuora muuttaminen
Tehtävä 8.60 Sijoitus osoittimeen
8.4.3 * ja &
Tehtävä 8.61 *&
8.4.4 NULL-osoitin
8.5 Aliohjelmat (funktiot)
8.5.1 Parametritön aliohjelma
8.5.2 Funktiot ja parametrit
Tehtävä 8.62 matka_a2.c
8.5.3 Parametrin nimi kutsussa ja esittelyssä
8.5.4 Osoitteen välittäminen
8.5.5 Viitemuuttujat (referenssimuuttujat, &)
8.5.6 & - merkillä monta eri merkitystä
8.5.7 Nimessään arvon palauttavat funktiot
Tehtävä 8.63 Funktio ja osoitin
Tehtävä 8.64 Funktio ja referenssi
8.5.8 Ketjutettu kutsu
Tehtävä 8.65 math.h
Tehtävä 8.66 Funktiot
Tehtävä 8.67 Ympyrän ala ja pallon tilavuus
Tehtävä 8.68 Pääohjelma yhtenä funktiokutsuna
8.5.9 Aliohjelmien testaaminen
8.6 Lisää aliohjelmista
8.6.1 Useita parametrejä
Tehtävä 8.69 Toisen asteen yhtälön juuri
Tehtävä 8.70 Toisen asteen polynomi, root_1
Tehtävä 8.71 root_1 testaus
8.6.2 Muuttujien lokaalisuus
Tehtävä 8.72 Eri nimet
8.6.3 auto ja register
8.6.4 Parametrinvälitysmekanismi
Tehtävä 8.73 aikalis3.cpp
Tehtävä 8.74 Muotoilu?
Tehtävä 8.75 Tiedon lukeminen
8.6.5 Aliohjelmien kirjoittaminen
8.6.6 Globaalit muuttujat
Tehtävä 8.76 Muuttujien näkyvyys
9. Kohti olio- ohjelmointia
Mitä tässä luvussa käsitellään?
9.1 Miksi olioita tarvitaan
Tehtävä 9.77 Tulostus
9.2 Tietueet, välivaihe kohti olioita
9.2.1 Tietuemuuttujan esittely
9.2.2 Tietueen alustaminen esittelyn yhteydessä
9.2.3 Uuden tietuetyypin määrittely
9.2.4 Viittaus tietueen alkioon
9.2.5 Viittaus osoitteen avulla
9.2.6 Lyhennetty viittaus osoitteen avulla (->)
9.2.7 Tietueen muuttaminen?
Tehtävä 9.78 Päivämäärätyyppi
9.2.8 Funktioiden kuormittaminen (lisämäärittely, overloading)
Tehtävä 9.79 Mitäs me tehtiin kun ei ollut kuormitusta?
9.3 Hynttyyt yhteen, eli muututaan olioksi
9.3.1 Terminologiaa
9.3.2 Ensimmäinen olio- esimerkki
Tehtävä 9.80 const-metodi
9.3.3 Taas terminologiaa
9.3.4 Luokka (class) ja kapselointi
9.3.5 Muodostajat (constructor)
9.3.6 Oletusmuodostaja (default constructor)
9.3.7 Oletusparametrit
9.3.8 Sisäinen tilan valvonta
Tehtävä 9.81 Negatiivinen minuuttiasetus
Tehtävä 9.82 Tuntien tarkistus
9.3.9 inline- metodit ja tavalliset metodit
9.3.10 Jako useampaan tiedostoon
9.3.11 this- osoitin
9.4 Perintä
9.4.1 Luokan ominaisuuksien laajentaminen
9.4.2 Alkuperäisen luokan muuttaminen
Tehtävä 9.83 Sekuntien tulostus aina tai oletuksena
9.4.3 Koostaminen
9.4.4 Perintä
9.4.5 Polymorfismi, eli monimuotoisuus
9.4.6 Myöhäinen sidonta
Tehtävä 9.84 Miksi ensin sekuntien alustus?
Tehtävä 9.85 2-3 - parametrinen aseta
9.4.7 Yliluokan muodostajan kutsuminen ennen muodostajaa
Tehtävä 9.86 Yliluokan alustajan kutsu
9.5 Saantimetodit
9.5.1 Miksi ja miten
Tehtävä 9.87 Saantimetodi sekunneille
Tehtävä 9.88 Saantimetodien käyttäminen
9.5.2 Rajapinta ja sisäinen esitys
Tehtävä 9.89 minuutteina()
9.6 Mistä hyviä luokkia
9.7 Valmiita luokkia
9.7.1 Merkkijonot
Tehtävä 9.90 Ensimäinen melkein järkevä olio
10. C- kielen ohjausrakenteista ja operaattoreista
Mitä tässä luvussa käsitellään?
10.1 if- lause
10.1.1 Ehdolla suoritettava yksi lause
10.1.2 Ehdolla suoritettava useita lauseita
Tehtävä 10.91 vaihda
Tehtävä 10.92 abs
Tehtävä 10.93 jarjesta2
Tehtävä 10.94 maksimi ja minimi
10.2 Loogiset lausekkeet
10.2.1 Vertailuoperaattorit
10.2.2 Sijoitus palauttaa arvon!
10.3 Loogisten lausekkeiden yhdistäminen
10.3.1 Loogiset operaattorit &&, || ja !
10.3.2 Loogisen lausekkeen suoritusjärjestys
10.4 Bittitason operaattorit
Tehtävä 10.95 Loogiset/bittitason operaattorit
Tehtävä 10.96 Luku parilliseksi
10.5 if - else - rakenne
10.5.1 Sisäkkäiset if- lauseet
Tehtävä 10.97 else - osat pois
10.5.2 Useat peräkkäiset ehdot
Tehtävä 10.98 Lääni
Tehtävä 10.99 if- else
10.6 do- while - silmukka
10.7 while - silmukka
10.8 for - silmukka, tavallisin muoto
Tehtävä 10.100 valin_summa
10.9 C- kielen lauseista
10.9.1 Sijoitusoperaattori =
10.9.2 Sijoitusoperaattori +=
Tehtävä 10.101 +=
10.9.3 Lisäysoperaattori ++
10.10 for - silmukka, yleinen muoto
Tehtävä 10.102 1+2+..+i
10.11 break ja continue
10.11.1 break
10.11.2 continue
Tehtävä 10.103 continuen korvaaminen
10.12 goto - lause
Tehtävä 10.104 Eri silmukoiden vertailu
10.13 switch - valintalause
Tehtävä 10.105 switch - > if- goto
Tehtävä 10.106 Päävalinta
Tehtävä 10.107 lääni, versio 2
10.13.1 || ei toimi switch - lauseessa!
10.14 Ikuinen silmukka
10.14.1 Yhteenveto silmukoista
11. Oliosuunnittelu
Mitä tässä luvussa käsitellään?
11.1 Olio on luokan esiintymä
11.2 Tavoitteet
11.3 Luokat
11.4 CRC- kortit
11.4.1 Jäsen-luokka (cJasen)
11.4.2 Kerho-luokka (cKerho)
11.4.3 Käyttöliittymä-luokka (cNaytto)
11.4.4 Luokkajaon tarkastelua
11.5 Harrastukset mukaan
11.5.1 "Oliomalli"
11.5.2 Relaatiomalli
11.5.3 Harrastus-luokka (cHarrastus)
11.5.4 Kerho-luokka (cKerho)
11.5.5 Jäsenet-luokka (cJasenet)
11.5.6 Harrastukset-luokka (cHarrastukset)
12. Jäsenrekisterin runko
Mitä tässä luvussa käsitellään?
12.1 Runko ilman kommentteja
12.2 Valittava tietorakenne
12.2.1 Taulukko
12.2.2 Linkitetty lista
12.2.3 Sekarakenne
Tehtävä 12.108 Lisäys
Tehtävä 12.109 Etsiminen
Tehtävä 12.110 Poisto
Tehtävä 12.111 Lajittelu
12.2.4 Ohjelman runko
12.3 Harrastukset mukaan
12.3.1 Tiedot jäsenen yhteyteen
12.3.2 Relaatiomalli
Tehtävä 12.112 Lisää harrastus
Tehtävä 12.113 Mitä harrastaa
Tehtävä 12.114 Kuka harrastaa
Tehtävä 12.115 Poista harrastus
Tehtävä 12.116 Jäsenen poistaminen
Tehtävä 12.117 "Roskaharrastukset"
Tehtävä 12.118 Monta saman lajin harrastajaa
12.3.3 Ohjelman runko harrastusten kanssa
13. C- kielen taulukoista
Mitä tässä luvussa käsitellään?
13.1 Yksiulotteiset taulukot
13.1.1 Taulukon määrittely
13.1.2 Taulukon alkioihin viittaaminen indeksillä
13.1.3 Viittaaminen osoittimella
13.1.4 Taulukon alustaminen
Tehtävä 13.119 Taulukon alkioiden summa
13.2 Merkkijonot
13.2.1 Merkkityyppi
13.2.2 C- kielen merkkijonot
13.2.3 Kirjaimen ja merkkijonon ero
13.2.4 Merkkijono, osoitin merkkiin ja vakiojono
13.3 string.h
13.3.1 strcpy ja strncpy
Tehtävä 13.120 kopioi_jono
13.3.2 memmove
13.3.3 strcat ja strncat
Tehtävä 13.121 liita_jono
13.3.4 Tulos myös funktion nimessä
Tehtävä 13.122 Ketjutus
Tehtävä 13.123 string.h
13.4 Merkkijonojen lukeminen
13.4.1 Valmiit funktiot VAARALLISIA
Tehtävä 13.124 Kanahaukka
13.4.2 Formaatin käyttö helpottaa hieman
13.4.3 getline apuun
13.5 Malliohjelmia merkkijonojen käsittelyyn
13.5.1 Aliohjelmia C- merkkijonojen käsittelyyn
Tehtävä 13.125 Merkkijonojen käsittely
13.5.2 Aliohjelmia C++ - merkkijonojen käsittelyyn
13.6 C++ - merkkijonojen ja C- merkkijonojen yhteiskäyttö
13.6.1 C- merkkijonon muuttaminen C++ - jonoksi
13.6.2 C++ - merkkijonon muuttaminen C- jonoksi
Tehtävä 13.126 Välittäjäfunktio
13.7 Tietueet, union ja enum
Tehtävä 13.127 union
Tehtävä 13.128 Tietue tietueessa
Tehtävä 13.129 Miukusta olio
13.8 Moniulotteiset taulukot
13.8.1 Kiinteä esittely
Tehtävä 13.130 Matriisit
13.8.2 Muuttuvat dimensiot
13.8.3 Yksiulotteisen taulukon käyttäminen moniulotteisena
Tehtävä 13.131 Matriisi 1- ulotteisena
13.8.4 Taulukko taulukoista
13.8.5 Taulukko osoittimista
Tehtävä 13.132 Transpoosi
13.9 Komentorivin parametrit (argv)
Tehtävä 13.133 Palindromi
14. Parametrin välityksestä ja osoittimista, kertaus
Mitä tässä luvussa käsitellään?
14.1 Miksi aliohjelmia käytetään
14.2 Yksinkertaisen aliohjelman kutsuminen
14.2.1 sin
14.2.2 strcmp
14.2.3 Varo toistoa
14.3 Funktio, joka muuttaa myös parametrejään
14.3.1 strcpy
14.4 Vaihteleva määrä parametrejä
14.4.1 printf ja scanf
14.5 Aliohjelman esitteleminen
14.5.1 Syöttö- ja tulosparametrit
Tehtävä 14.134 pvmjono.cpp
14.5.2 Syöttö- ja tulosparametri samassa
Tehtävä 14.135 Päivämäärän lisäys
14.5.3 Tietueet osoitteiden avulla tai viitteiden avulla
Tehtävä 14.136 vertaa_pvm
Tehtävä 14.137 vertaa- metodi
14.5.4 Useita parametrejä
Tehtävä 14.138 Sama viitteiden avulla
14.5.5 Parametrien lisääminen
14.5.6 Ei printf eikä scanf tai tietovirtoja
14.6 Osoitteista ja osoittimista
14.6.1 Muista aina sijoitus tai malloc tai new
14.6.2 Milloin osoitin?
14.6.3 Varoitus
14.6.4 Kertaustehtäviä
Tehtävä 14.139 suurin_kirjeen_paino
Tehtävä 14.140 kysy_ika
Tehtävä 14.141 palindromi
Tehtävä 14.142 laske_merkin_maarat
Tehtävä 14.143 vero
Tehtävä 14.144 maara_alennus
Tehtävä 14.145 mjono_ajaksi
Tehtävä 14.146 aika_mjonoksi
Tehtävä 14.147 cAika
15. Kommentointi ja jakaminen osiin
Mitä tässä luvussa käsitellään?
15.1 Kommentointi
15.1.1 Valmiin kommenttilohkon lukeminen
15.1.2 Parametrilistan kommentointi
15.1.3 Funktion toiminta ja muu esittely
15.1.4 Koodin kommentointi
15.2 Omat aliohjelmakirjastot
15.2.1 mjonot.h
15.2.2 mjonot.c
Tehtävä 15.148 wildmat (opettavainen)
15.2.3 Kirjaston testaus
15.3 Ehdollinen kääntäminen
15.4 Header- tiedostot ja prototyypit
15.5 Kääntäminen ja linkittäminen
15.5.1 Make- ohjelma
15.5.2 Projektit
15.6 Kerho-ohjelman jako osiin (ks. jako.15- hakemisto)
16. Dynaaminen muistinkäyttö
Mitä tässä luvussa käsitellään?
16.1 Muistin käyttö
16.2 Dynaamisen muistin käyttö C- kielessä
16.2.1 malloc, C
16.2.2 calloc, C
16.2.3 free, C
16.2.4 realloc, c
16.2.5 Ole varovainen reallocin kanssa
Tehtävä 16.149 Jäsenistön realloc?
16.3 Dynaamisen muistin käyttö C++:ssa
16.3.1 new, C++
16.3.2 try-catch, C++
16.3.3 delete, C++
16.3.4 Taulukon luominen new [] ja tuhoaminen delete []
16.4 Dynaamiset taulukot
16.5 Dynaamiset taulukot C++:ssa
16.6 Hajottaja (destructor)
16.6.1 Jäsenistön poisto
16.7 Tietovirta parametrinä ja oletusparametri
16.8 STL - kirjasto tietorakenteita ja algoritmeja
16.8.1 vector-luokka
16.8.2 Iteraattori
17. Tiedostot ja makrot
Mitä tässä luvussa käsitellään?
17.1 Tiedostojen käsittely
17.1.1 Lukeminen
17.2 Tiedostojen käsittely C++:n tietovirroilla
Tehtävä 17.150 Tiedoston lukujen summa
17.2.1 Tiedoston avaaminen muodostajassa tai open
17.2.2 Tiedostosta lukeminen >> ja tiedostoon kirjoittaminen <<
17.2.3 Tiedoston lopun testaaminen eof
17.2.4 Tiedoston sulkeminen close
Tehtävä 17.151 Kommentit näytölle
17.3 sizeof
17.3.1 sizeof palauttaa muuttujaan varaaman tilan
17.3.2 sizeof ei ole strlen
17.3.3 sizeof:in vaarat
17.4 Parametrilliset makrot
17.4.1 Helpottaa kirjoittamista
17.4.2 Ole kuitenkin varovainen
Tehtävä 17.152 Makron yllätykset
17.5 Tiedoston yhdellä rivillä monta kenttää
17.5.1 Ongelma
Tehtävä 17.153 Ohjelman "sekoaminen"
17.5.2 Rivi kerrallaan lukeminen
17.6 Merkkijonon paloittelu
17.6.1 luvuksi
17.6.2 erota
17.6.3 Esimerkki erota-funktion käytöstä
17.6.4 Erota funktion toiminta vaihe vaiheelta
17.7 Lukeminen ja paloittelu
17.7.1 Merkkijonosta tietovirta
17.7.2 Olio joka lukee itsensä
17.8 Esimerkki tiedoston lukemisesta
Tehtävä 17.154 Tietorakenne
Tehtävä 17.155 Perintä
Tehtävä 17.156 Tunnistenumero
Tehtävä 17.157 Mittakaava
18. Operaattoreiden kuormitus
Mitä tässä luvussa käsitellään?
18.1 operator+=
Tehtävä 18.158 Useita versioita += operaattorista
18.2 operator<< ja operator>>
18.3 Binäärisen operaation kuormitus
18.4 Tyypinmuunnosoperaattori ja sijoitus
Tehtävä 18.159 Ajan lisääminen
Tehtävä 18.160 Aika rajoitettujen kokonaislukujen avulla
18.5 Hajottajan hyödyntäminen
18.5.1 Tulostusmuotoilun palauttaminen
18.5.2 Tiedoston automaattinen sulkeminen
18.6 Ystäväfunktiot
19. Kerho-ohjelman talletukset
Mitä tässä luvussa käsitellään?
19.1 Talletus
19.1.1 Näytön osuus talletuksesta
19.1.2 Kerhon osuus talletuksesta
19.1.3 Jäsenistön osuus talletuksesta
19.1.4 Jäsenen tehtävät talletuksessa
19.2 Lukeminen
19.2.1 Näytön tehtävät lukemisessa
19.2.2 Kerhon tehtävät lukemisessa
19.2.3 Jäsenistön tehtävät lukemisessa
19.2.4 Jäsenen tehtävät lukemisessa
19.3 Kuormitetut funktiot
19.4 Virheilmoitukset, static
Tehtävä 19.161 static
19.4.1 Aliohjelma käsittelemään virheilmoitus
19.4.2 Makro virhekäsittelyn avuksi
Tehtävä 19.162 IF_ERR_RETURN
19.5 Talletuksen testaus
20. Päätesyöttö
Mitä tässä luvussa käsitellään?
20.1 Lukeminen ilman tarkistuksia
20.1.1 lisaa_uusi_jasen (naytto.cpp)
20.1.2 kysy_tiedot (naytto.cpp)
20.2 Poistetaan riippuvuus näytön ja jäsenen väliltä
20.2.1 Algoritmi
20.2.2 kysy_tiedot
20.2.3 kysy_kentta
Tehtävä 20.163 lisaa_uusi_jasen - kutsut
20.3 Muutokset jäsen- luokaan
20.3.1 kenttia ja eka_kysymys
20.3.2 kentta_jonoksi
20.3.3 kysymys()
20.3.4 sijoita
Tehtävä 20.164 Montako muutosta
20.3.5 Arvostelu valinnoista
20.4 Testaus
21. Oikeellisuustarkistukset ja avustukset
Mitä tässä luvussa käsitellään?
21.1 Miksi tarkistukset
21.2 Lukeminen rivi kerrallaan
21.3 Tarkistusaliohjelmat
21.4 Kerhorekisterin tarkistukset?
21.4.1 grep
21.5 Sijoittaminen tarkistaa
21.5.1 sijoita
21.6 Funktio-osoitin
Tehtävä 21.165 Minimointi
21.7 Tarkistus-funktio - osoitin
21.7.1 kerhotar.cpp
21.7.2 pvm.c
21.7.3 Uusien tarkistusfunktioiden lisäys
21.8 Etsiminen
21.9 cKentta ja perintä
21.10 Avustus
22. Etsiminen ja lajittelu
Mitä tässä luvussa käsitellään?
22.1 Etsiminen
Tehtävä 22.166 etsi_nimi
22.1.1 wildmat
Tehtävä 22.167 etsi_nimi_alkaen
22.1.2 Etsiminen taulukkoon
22.1.3 Etsiminen valitun kentän mukaan
22.1.4 etsi ja indeksit
Tehtävä 22.168 etsi- olio
Tehtävä 22.169 TAI- etsiminen
22.1.5 cHaku
22.2 Selailu
22.2.1 selaile
Tehtävä 22.170 Koko kerhon selailu
22.3 Lajittelu
22.3.1 qsort
22.3.2 const
22.3.3 volatile
22.3.4 sort-algoritmi
22.3.5 Permutaatiotaulu
Tehtävä 22.171 Etsimisen tuloksen lajittelu
Tehtävä 22.172 Selailu puhelinnumeron mukaan
Tehtävä 22.173 Vertailu isot ja pienet samaistaen
22.4 Oikeaoppinen lajittelu
22.4.1 vertaile
22.4.2 lajittele
22.4.3 alusta_jarjestys
Tehtävä 22.174 A_1 ja A_A
22.4.4 tee_avain
Tehtävä 22.175 tee_avain
22.5 Haku epäyhtälö - ehdoilla
22.5.1 EHDOT - taulukko (kerhoets.c)
22.5.2 tutki_tasmaako
Tehtävä 22.176 tutki_tasmaako
22.6 enum
Tehtävä 22.177 Viikonpäivät
Tehtävä 22.178 Pelikortit
22.7 Käteismuisti
22.8 Lopuksi
23. Yleisiä virheitä
Mitä tässä luvussa käsitellään?
23.1 Kirjoitusvirheet
23.1.1 Unohtunut kommentin loppumerkki
23.1.2 Väärät tai puuttuvat lainausmerkit
23.2 Virheitä joista kääntäjä ei huomauta
23.2.1 switch - lauseesta puuttuu break
23.2.2 Ylitetään merkkijonolle varattu tila
23.2.3 Dynaamiset muuttujat unohtuu vapauttaa
23.2.4 Osoitinta ei ole alustettu
23.2.5 Taulukoiden indeksointi 0..n- 1
23.2.6 scanf
23.2.7 printf
23.2.8 #define
23.2.9 Funktion prototyyppi puuttuu
23.2.10 #include - unohtuu
23.2.11 'ä' < 'a'
23.2.12 Väärä tyypin muunnos
23.2.13 Pyöristys- ja katkaisuvirheet
23.2.14 Alustuksessa liian vähän pilkkuja
23.2.15 Palautetaan lokaalin muuttujan osoite
23.2.16 Käytetään muuttunutta muistipaikkaa
23.2.17 Käytetään vahingossa pilkkuoperaattoria
24. "C- referenssi"
Mitä tässä luvussa käsitellään?
24.1 Varatut sanat
24.2 Borland- C:n eri lukutyyppien arvoalueet
24.3 Esikääntäjän direktiivit
24.4 Operaattorit
24.5 C:n operaattoreiden sitomisjärjestys
24.5.1 Esimerkkejä
24.6 Erikoismerkit merkkijonoissa
24.7 Tulostuksen muotoilumerkit
24.7.1 Esimerkkejä
24.8 Standardin mukaiset otsikkotiedostot
24.8.1 Standardit
24.8.2 Otsikkotiedostot
assert.h
ctype.h
errno.h
float.h
limits.h
locale.h
math.h
setjmp.h
signal.h
stdarg.h
stddef.h
stdio.h
stdlib.h
string.h
time.h