Sisällys
1. Johdanto............................................................................................................................. 5
1.1 Ohjelman suunnittelu.............................................................................................. 6
1.2 Työkalun valinta..................................................................................................... 6
1.3 Koodaus............................................................................................................... 6
1.4 Testaus.................................................................................................................. 7
1.5 Käyttöönotto......................................................................................................... 8
1.6 Ylläpito.................................................................................................................. 8
1.7 Yhteenveto............................................................................................................ 8
2. Kerhon jäsenrekisteri........................................................................................................... 9
2.1 Tehtävän tarkennus................................................................................................ 9
2.2 Työkalun valinta..................................................................................................... 10
2.3 Tietorakenteet ja tiedostot...................................................................................... 10
2.4 Käyttöohje tai käyttöliittymä................................................................................... 11
2.4.1 Lisää uusi jäsen....................................................................................... 13
2.4.2 Etsi jäsenen tiedot................................................................................... 13
2.4.3 Tulosteet................................................................................................. 14
2.4.4 Tietojen korjailu...................................................................................... 15
2.4.5 Lopetus.................................................................................................. 15
2.5 Käyttöohjeen testaus.............................................................................................. 16
2.5.1 Testaus................................................................................................... 16
2.5.2 Korjaus.................................................................................................. 16
2.5.3 Muita korjauksia..................................................................................... 18
2.5.4 Uusi testaus............................................................................................ 20
2.6 Tarvittavien algoritmien hahmottaminen................................................................... 20
2.6.1 Ylemmän tason aliohjelmat...................................................................... 20
2.6.2 Alemman tason aliohjelmat...................................................................... 21
2.6.3 Ohjelman yhteiset osat............................................................................ 21
2.7 Ikkunoinnit ja muut hienostelut................................................................................ 21
2.8 Koodaus ohjelmointikielelle.................................................................................... 22
2.9 Varautuminen tulevaan, eli relaatiotietomalli............................................................. 22
2.9.1 Kaikki samassa tietueessa....................................................................... 22
2.9.2 Erimalliset tietueet................................................................................... 23
2.9.3 Relaatiomalli........................................................................................... 23
2.9.4 XML-muotoinen tiedosto........................................................................ 24
3. Yksinkertainen tulkkiohjelma................................................................................................ 27
3.1 Tehtävän tarkennus................................................................................................ 27
3.2 Tietorakenteet ja tiedostot...................................................................................... 27
3.3 Käyttöohje............................................................................................................ 28
3.4 Algoritmien hahmottaminen..................................................................................... 30
3.4.1 Ylemmän tason aliohjelmat...................................................................... 30
3.4.2 Alemman tason aliohjelmat...................................................................... 31
3.5 Koodaus ohjelmointikielelle.................................................................................... 32
4. Algoritmin suunnittelu........................................................................................................... 33
4.1 Algoritmi................................................................................................................ 33
4.2 Lajittelu................................................................................................................. 34
4.2.1 Nimien ja numeroiden vertaus.................................................................. 34
4.2.2 Algoritmin sanallinen versio on kuvaavampi!............................................. 35
4.2.3 Numeroiden järjestäminen....................................................................... 35
4.2.4 Kuplalajittelu........................................................................................... 36
4.2.5 Lajittelu avaimen mukaan........................................................................ 37
4.2.6 Algoritmin parantaminen.......................................................................... 37
4.3 Algoritmin tarkentaminen........................................................................................ 37
4.3.1 Pienimmän etsiminen............................................................................... 37
4.3.2 Paikalleen sijoittaminen............................................................................ 38
4.4 Haku järjestetystä joukosta.................................................................................... 38
4.4.1 Suora haku............................................................................................. 38
4.4.2 Puolitushaku........................................................................................... 38
4.5 Yhteenveto............................................................................................................ 39
5. Algoritmeissa tarvittavia rakenteita........................................................................................ 41
5.1 Ehtolauseet............................................................................................................ 41
5.2 Valintalauseet......................................................................................................... 42
5.3 Silmukat................................................................................................................ 42
5.4 Muuttujat............................................................................................................... 43
5.4.1 Yksinkertaiset muuttujat.......................................................................... 43
5.4.2 Pöytätesti................................................................................................ 44
5.4.3 Yksiulotteiset taulukot............................................................................. 45
5.4.4 Osoittimet............................................................................................... 47
5.4.5 Moniulotteiset taulukot............................................................................ 48
5.4.6 Sekarakenteet......................................................................................... 50
5.5 Osoittimista ja indekseistä...................................................................................... 51
5.6 Aliohjelmat............................................................................................................ 52
5.7 Vaihtoehtojen tutkiminen totuustaulun avulla............................................................ 52
5.7.1 Kaikkien vaihtoehtojen kirjaaminen......................................................... 52
5.7.2 Vaihtoehtojen lukumäärä......................................................................... 53
5.7.3 Useita vaihtoehtoja samalla muuttujalla..................................................... 54
5.7.4 Loogiset operaatiot................................................................................. 55
5.8 Muistele tätä.......................................................................................................... 56
6. Esimerkkejä eri kielistä........................................................................................................ 59
6.1 Esimerkkiohjelmat.................................................................................................. 59
6.1.1 Pascal..................................................................................................... 59
6.1.2 C............................................................................................................ 60
6.1.3 C++....................................................................................................... 60
6.1.4 Java........................................................................................................ 60
6.1.5 Fortran................................................................................................... 60
6.1.6 ADA...................................................................................................... 60
6.1.7 BASIC................................................................................................... 61
6.1.8 APL....................................................................................................... 61
6.1.9 Modula–2............................................................................................... 61
6.1.10 Lisp...................................................................................................... 61
6.1.11 FORTH................................................................................................ 61
6.1.12 Assembler............................................................................................ 62
6.2 Käytettävän kielen valinta....................................................................................... 62
7. Java –kielen alkeita.............................................................................................................. 65
7.1 Hello World! Java –kielellä.................................................................................... 65
7.2 Tekstitiedostosta toimivaksi konekieliseksi versioksi................................................ 66
7.2.1 Kirjoittaminen......................................................................................... 66
7.2.2 Kääntäminen........................................................................................... 66
7.2.3 Linkittäminen.......................................................................................... 66
7.2.4 Ohjelman ajaminen.................................................................................. 66
7.2.5 Varoitus.................................................................................................. 68
7.2.6 Integroitu ympäristö................................................................................ 68
7.3 Ohjelman yksityiskohtainen tarkastelu..................................................................... 68
7.3.1 Tarvittavien luokkien esittely.................................................................... 68
7.3.2 Kommentti.............................................................................................. 69
7.3.3 JavaDoc................................................................................................. 70
7.3.4 Luokan esittely........................................................................................ 70
7.3.5 Pääohjelman esittely................................................................................ 70
7.3.6 Lausesulut............................................................................................... 71
7.3.7 Tulostuslause.......................................................................................... 71
7.3.8 Lauseen loppumerkki ;............................................................................ 72
7.3.9 Isot ja pienet kirjaimet............................................................................. 72
7.3.10 White spaces, tyhjä............................................................................... 72
7.3.11 Vakiomerkkijonot................................................................................. 73
7.3.12 Vakiolukuarvot..................................................................................... 74
7.3.13 Tulostuksen muotoilu ja apumetodit....................................................... 74
8. Java–kielen muuttujista ja aliohjelmista.................................................................................. 77
8.1 Mittakaavaohjelman suunnittelu.............................................................................. 77
8.2 Muuttujat............................................................................................................... 78
8.2.1 Matkan laskeminen................................................................................. 79
8.2.2 Muuttujan nimeäminen............................................................................. 80
8.2.3 Muuttujalle sijoittaminen =....................................................................... 81
8.2.4 Muuttujan esittely ja alkuarvon sijoittaminen............................................. 82
8.3 Muuttujan arvon lukeminen päätteeltä..................................................................... 82
8.3.1 Lukeminen merkkijonoon........................................................................ 83
8.3.2 Lukuarvon selvittäminen merkkijonosta.................................................... 84
8.3.3 Apumetodit............................................................................................. 84
8.3.4 Apuluokat............................................................................................... 85
8.3.5 Luokan testaaminen................................................................................ 86
8.3.6 Luokan käyttäminen................................................................................ 87
8.4 Viitteet................................................................................................................... 87
8.4.1 Miksi viitteet?......................................................................................... 87
8.4.2 Lokaalit muuttujat................................................................................... 88
8.4.3 Dynaaminen muisti.................................................................................. 89
8.4.4 Viitteiden vertaaminen............................................................................. 89
8.4.5 Viitteeseen sijoittaminen.......................................................................... 90
8.4.6 null-viite.................................................................................................. 90
8.5 Aliohjelmat (metodit, funktiot)................................................................................ 91
8.5.1 Parametriton aliohjelma........................................................................... 91
8.5.2 Funktiot ja parametrit.............................................................................. 92
8.5.3 Parametrin nimi kutsussa ja esittelyssä...................................................... 94
8.5.4 Nimessään arvon palauttavat funktiot....................................................... 94
8.5.5 Ketjutettu kutsu...................................................................................... 96
8.5.6 Aliohjelmien testaaminen......................................................................... 97
8.5.7 Yksinkertaisen aliohjelman kutsuminen..................................................... 98
8.5.8 Aliohjelmat tulostavat harvoin.................................................................. 99
8.6 Parametrin välitys................................................................................................... 100
8.6.1 Useita parametrejä.................................................................................. 100
8.6.2 Parametrin paikka ratkaisee, ei nimi......................................................... 101
8.6.3 Metodin nimen kuormittaminen................................................................ 102
8.6.4 Muuttujien lokaalisuus............................................................................. 103
8.6.5 Parametrinvälitysmekanismi..................................................................... 104
8.6.6 Aliohjelmien kirjoittaminen....................................................................... 105
8.6.7 Luokkamuuttujat ja suhde lokaaleihin muuttujiin....................................... 105
9. Kohti olio-ohjelmointia......................................................................................................... 109
9.1 Miksi olioita tarvitaan............................................................................................. 110
9.2 Hynttyyt yhteen, eli muututaan olioksi...................................................................... 111
9.2.1 Terminologiaa......................................................................................... 111
9.2.2 Ensimmäinen olio-esimerkki.................................................................... 111
9.2.3 Taas terminologiaa.................................................................................. 112
9.2.4 Luokka (class) ja olio (object)............................................................... 113
9.2.5 Suojaustasot ja kapselointi...................................................................... 113
9.2.6 Muodostajat (constructor)..................................................................... 115
9.2.7 Oletusmuodostaja (default constructor)................................................. 115
9.2.8 Sisäinen tilan valvonta.............................................................................. 116
9.2.9 Metodien kuormittaminen (lisämäärittely, overloading)............................ 117
9.2.10 this-osoitin...................................................................................... 118
9.3 Perintä................................................................................................................... 119
9.3.1 Luokan ominaisuuksien laajentaminen...................................................... 119
9.3.2 Alkuperäisen luokan muuttaminen............................................................ 119
9.3.3 Koostaminen.......................................................................................... 120
9.3.4 Perintä.................................................................................................... 121
9.3.5 Polymorfismi, eli monimuotoisuus............................................................. 124
9.3.6 Myöhäinen sidonta.................................................................................. 124
9.3.7 Yliluokan muodostajan kutsuminen ennen muodostajaa............................ 125
9.4 Kapselointi............................................................................................................ 126
9.4.1 Saantimetodit.......................................................................................... 126
9.4.2 Rajapinta ja sisäinen esitys....................................................................... 127
9.5 Rajapinta ja monimuotoisuus.................................................................................. 128
9.6 Object-luokan metodien korvaaminen.............................................................. 131
9.7 Mistä hyviä luokkia................................................................................................ 134
9.8 Valmiita luokkia..................................................................................................... 135
9.8.1 Merkkijonot........................................................................................... 135
10. Java–kielen ohjausrakenteista ja operaattoreista................................................................. 139
10.1 if–lause................................................................................................................ 140
10.1.1 Ehdolla suoritettava yksi lause............................................................... 140
10.1.2 Ehdolla suoritettava useita lauseita......................................................... 140
10.2 Loogiset lausekkeet............................................................................................. 141
10.2.1 Vertailuoperaattorit............................................................................... 142
10.2.2 Sijoitus palauttaa arvon!........................................................................ 142
10.3 Loogisten lausekkeiden yhdistäminen.................................................................... 143
10.3.1 Loogiset operaattorit &&, || ja !............................................................ 143
10.3.2 Loogisen lausekkeen suoritusjärjestys.................................................... 144
10.3.3 Loogiset operaattorit & ja |................................................................... 144
10.4 Bittitason operaattorit........................................................................................... 145
10.5 if – else –rakenne........................................................................................ 146
10.5.1 Sisäkkäiset if–lauseet......................................................................... 146
10.5.2 Useat peräkkäiset ehdot........................................................................ 151
10.6 do–while –silmukka.................................................................................... 152
10.7 while –silmukka............................................................................................. 153
10.8 for –silmukka, tavallisin muoto......................................................................... 154
10.9 Java–kielen lauseista............................................................................................ 154
10.9.1 Sijoitusoperaattori =.............................................................................. 154
10.9.2 Sijoitusoperaattori +=........................................................................... 155
10.9.3 Lisäysoperaattori ++............................................................................. 155
10.10 for –silmukka, yleinen muoto.............................................................................. 156
10.11 break ja continue................................................................................... 157
10.11.1 break............................................................................................ 157
10.11.2 continue..................................................................................... 159
10.12 switch –valintalause..................................................................................... 159
10.12.1 | ei toimi switch –lauseessa!............................................................ 161
10.13 Ikuinen silmukka................................................................................................ 161
10.13.1 Yhteenveto silmukoista........................................................................ 162
11. Oliosuunnittelu................................................................................................................... 163
11.1 Olio on luokan esiintymä...................................................................................... 163
11.2 Tavoitteet............................................................................................................ 163
11.3 Luokat................................................................................................................. 163
11.4 CRC–kortit......................................................................................................... 163
11.4.1 Jäsen-luokka (Jasen)........................................................................ 164
11.4.2 Kerho-luokka (Kerho)....................................................................... 164
11.4.3 Käyttöliittymä-luokka (Naytto)......................................................... 164
11.4.4 Luokkajaon tarkastelua......................................................................... 165
11.5 Harrastukset mukaan........................................................................................... 165
11.5.1 "Oliomalli"............................................................................................. 165
11.5.2 Relaatiomalli......................................................................................... 165
11.5.3 Harrastus-luokka (Harrastus)........................................................ 166
11.5.4 Kerho-luokka (Kerho)....................................................................... 166
11.5.5 Jäsenet-luokka (Jasenet)................................................................. 166
11.5.6 Harrastukset-luokka (Harrastukset)............................................ 166
12. Jäsenrekisterin runko......................................................................................................... 167
12.1 Runko ilman kommentteja.................................................................................... 167
12.2 Valittava tietorakenne........................................................................................... 167
12.2.1 Taulukko.............................................................................................. 168
12.2.2 Linkitetty lista........................................................................................ 168
12.2.3 Sekarakenne......................................................................................... 169
12.2.4 Ohjelman runko.................................................................................... 170
12.3 Harrastukset mukaan........................................................................................... 170
12.3.1 Tiedot jäsenen yhteyteen....................................................................... 171
12.3.2 Relaatiomalli......................................................................................... 171
12.3.3 Ohjelman runko harrastusten kanssa...................................................... 173
13. Java–kielen taulukoista....................................................................................................... 175
13.1 Yksiulotteiset taulukot.......................................................................................... 175
13.1.1 Taulukon määrittely............................................................................... 175
13.1.2 Taulukon alkioihin viittaaminen indeksillä................................................ 175
13.1.3 Taulukon alustaminen............................................................................ 176
13.2 Merkkijonot........................................................................................................ 176
13.2.1 Merkkityyppi........................................................................................ 176
13.2.2 String.................................................................................................... 177
13.2.3 StringBuffer.......................................................................................... 177
13.3 Moniulotteiset taulukot......................................................................................... 177
13.3.1 Kiinteä esittely...................................................................................... 177
13.3.2 Yksiulotteisen taulukon käyttäminen moniulotteisena............................... 178
13.3.3 Taulukko taulukoista............................................................................. 178
13.3.4 Taulukko viitteistä................................................................................. 178
13.4 Komentorivin parametrit (argv)......................................................................... 179
14. Parametrin välityksestä ja osoittimista, kertaus.................................................................... 181
14.1 Miksi aliohjelmia käytetään................................................................................... 181
15. Kommentointi ja jakaminen osiin........................................................................................ 183
15.1 Kommentointi...................................................................................................... 183
15.1.1 Valmiin kommenttilohkon lukeminen...................................................... 183
15.1.2 Parametrilistan kommentointi................................................................. 183
15.1.3 Koodin kommentointi............................................................................ 183
15.2 Omat aliohjelmakirjastot....................................................................................... 184
15.2.1 Kirjaston testaus................................................................................... 184
15.3 Kerho-ohjelman jako osiin................................................................................... 184
16. Dynaaminen muistinkäyttö.................................................................................................. 187
16.1 Muistin käyttö...................................................................................................... 187
16.2 Dynaamisen muistin käyttö Javassa....................................................................... 188
16.2.1 new................................................................................................... 188
16.2.2 Olion tuhoaminen.................................................................................. 188
16.2.3 Taulukon luominen new []................................................................ 188
16.3 Dynaamiset taulukot............................................................................................. 189
16.4 Javan tietorakenneluokat ja algoritmeja................................................................. 190
16.4.1 vector-luokka................................................................................ 190
16.4.2 Iteraattori.............................................................................................. 191
16.4.3 ListArray.............................................................................................. 191
16.4.4 Algoritmit.............................................................................................. 192
16.5 Tietovirta parametrinä.......................................................................................... 193
17. Tiedostot........................................................................................................................... 195
17.1 Tiedostojen käsittely............................................................................................ 195
17.1.1 Lukeminen............................................................................................ 196
17.2 Tiedostojen käsittely Javan tietovirroilla................................................................ 196
17.2.1 Tiedoston avaaminen muodostajassa..................................................... 197
17.2.2 Tiedostosta lukeminen........................................................................... 198
17.2.3 Tiedoston lopun testaaminen.................................................................. 198
17.2.4 Tiedostoon kirjoittaminen...................................................................... 198
17.2.5 Tiedoston sulkeminen close.......................................... 199
17.3 Tiedoston yhdellä rivillä monta kenttää.................................................................. 200
17.3.1 Ongelma............................................................................................... 200
17.4 Merkkijonon paloittelu......................................................................................... 200
17.4.1 parse.............................................................................................. 201
17.4.2 erota.............................................................................................. 201
17.4.3 Esimerkki erota-funktion käytöstä..................................................... 202
17.4.4 Erota funktion toiminta vaihe vaiheelta.................................................... 202
17.4.5 Luvun erottaminen................................................................................. 204
17.5 Lukeminen ja paloittelu......................................................................................... 204
17.5.1 Olio joka lukee itsensä.......................................................................... 205
17.6 Esimerkki tiedoston lukemisesta........................................................................... 206
Hakemisto............................................................................................................................... 211
Tehtävät:
Tehtävä 2.1 Tulosteet..................................................................................................... 15
Tehtävä 2.2 Ketkä harrastavat?...................................................................................... 24
Tehtävä 2.3 Mikä on tilaa säästävin tallennusmuoto......................................................... 25
Tehtävä 3.1 Kielen lisääminen......................................................................................... 28
Tehtävä 3.2 Aliohjelmien käyttö...................................................................................... 31
Tehtävä 3.3 Erikoistapauksia.......................................................................................... 31
Tehtävä 3.4 Algoritmi muuttamiselle................................................................................ 31
Tehtävä 4.1 Kävelyohjeet............................................................................................... 34
Tehtävä 4.2 Muita lajittelualgoritmeja.............................................................................. 36
Tehtävä 4.3 Algoritmin kompleksisuus............................................................................ 36
Tehtävä 4.4 Lajittelujärjestys.......................................................................................... 36
Tehtävä 4.5 Kuplalajittelu............................................................................................... 36
Tehtävä 4.6 Loppuminen erikoistapauksessa................................................................... 37
Tehtävä 4.7 QuickSortin kompleksisuus.......................................................................... 37
Tehtävä 4.8 Lisäys oikealle paikalleen vaiko lisäys loppuun ja lajittelu?............................. 37
Tehtävä 4.9 Puolitushaku................................................................................................ 39
Tehtävä 4.10 Puolitushaun kompleksisuus......................................................................... 39
Tehtävä 4.11 Kumin paikkaus.......................................................................................... 39
Tehtävä 4.12 Sunnuntai–ilta.............................................................................................. 39
Tehtävä 4.13 Onkiminen................................................................................................... 39
Tehtävä 4.14 Järjestyksen kääntäminen päinvastaiseksi..................................................... 39
Tehtävä 5.1 Ajanlisäys.................................................................................................... 42
Tehtävä 5.2 Postimaksu.................................................................................................. 42
Tehtävä 5.3 Korvaaminen ehtolauseilla............................................................................ 42
Tehtävä 5.4 Uiminen....................................................................................................... 43
Tehtävä 5.5 Ynnää luvut 1–100...................................................................................... 43
Tehtävä 5.6 Vuokaavio.................................................................................................. 44
Tehtävä 5.7 Algoritmin parantaminen.............................................................................. 45
Tehtävä 5.8 Pöytätesti.................................................................................................... 45
Tehtävä 5.9 Lajittelun testaus.......................................................................................... 46
Tehtävä 5.10 Korttien poisto............................................................................................ 46
Tehtävä 5.11 Korttien poisto osoittimia käyttäen............................................................... 47
Tehtävä 5.12 Kaksiulotteisen taulukon indeksit.................................................................. 48
Tehtävä 5.13 Sijoitus 3–ulotteiseen taulukkoon................................................................. 49
Tehtävä 5.14 3–ulotteinen taulukko 1–ulotteiseksi............................................................. 49
Tehtävä 5.15 3–ulotteinen taulukko................................................................................... 50
Tehtävä 5.16 4–ulotteinen taulukko................................................................................... 50
Tehtävä 5.17 Sanojen muuttaminen................................................................................... 51
Tehtävä 5.18 Lihapullan paistaminen................................................................................. 52
Tehtävä 5.19 Kombinaatioiden lukumäärä......................................................................... 53
Tehtävä 5.20 BAL=kyllä?................................................................................................ 54
Tehtävä 5.21 Kuka valehtelee?......................................................................................... 54
Tehtävä 5.22 de Morganin kaava...................................................................................... 55
Tehtävä 5.23 Osittelulaki.................................................................................................. 55
Tehtävä 5.24 Ehtojen sieventäminen.................................................................................. 56
Tehtävä 5.25 Merkkijonot................................................................................................ 56
Tehtävä 5.26 Päivämäärät................................................................................................ 56
Tehtävä 7.1 Nimi ja osoite.............................................................................................. 66
Tehtävä 7.2 Terve maailma!............................................................................................ 73
Tehtävä 7.3 Nimi ja osoite vakioksi................................................................................ 74
Tehtävä 7.4 Tetraedri..................................................................................................... 74
Tehtävä 7.5 Apumetodit................................................................................................. 75
Tehtävä 8.1 Vakion korvaaminen.................................................................................... 80
Tehtävä 8.2 Avainsanat.................................................................................................. 81
Tehtävä 8.3 Muuttujan nimeäminen................................................................................. 81
Tehtävä 8.4 Muuttujien esittely........................................................................................ 82
Tehtävä 8.5 Oletuksen tulostaminen................................................................................ 85
Tehtävä 8.6 Muiden tyyppien lukeminen.......................................................................... 87
Tehtävä 8.7 Mittakaavan kysyminen............................................................................... 87
Tehtävä 8.8 Funktio ja osoitin......................................................................................... 95
Tehtävä 8.9 String vs. StringBuffer.................................................................................. 96
Tehtävä 8.10 Math-luokka............................................................................................... 97
Tehtävä 8.11 Funktiot...................................................................................................... 97
Tehtävä 8.12 Ympyrän ala ja pallon tilavuus...................................................................... 97
Tehtävä 8.13 Pääohjelma yhtenä funktiokutsuna................................................................ 97
Tehtävä 8.14 Päämenuun kerhon nimi............................................................................... 101
Tehtävä 8.15 Toisen asteen yhtälön juuri........................................................................... 101
Tehtävä 8.16 Toisen asteen polynomi, root_1............................................................... 101
Tehtävä 8.17 root_1 testaus............................................................................................. 101
Tehtävä 8.18 Toisiaan kutsuvat aliohjelmat........................................................................ 102
Tehtävä 8.19 Eri nimet...................................................................................................... 104
Tehtävä 8.20 Muotoilu?.................................................................................................... 105
Tehtävä 8.21 Tiedon lukeminen........................................................................................ 105
Tehtävä 8.22 Muuttujien näkyvyys.................................................................................... 107
Tehtävä 9.1 Tulostus...................................................................................................... 111
Tehtävä 9.2 Negatiivinen minuuttiasetus........................................................................... 117
Tehtävä 9.3 Tuntien tarkistus.......................................................................................... 117
Tehtävä 9.4 Päivämääräolio............................................................................................ 117
Tehtävä 9.5 Mitäs me tehtiin kun ei ollut kuormitusta?...................................................... 118
Tehtävä 9.6 Lisäys yhdellä.............................................................................................. 118
Tehtävä 9.7 Vain tuntien asettaminen............................................................................... 118
Tehtävä 9.8 Luokan muuttaminen.................................................................................... 119
Tehtävä 9.9 Sekuntien tulostus aina tai oletuksena........................................................... 119
Tehtävä 9.10 Miksi vielä yksi lisaa-kutsu?......................................................................... 125
Tehtävä 9.11 Ei turhaa lisaa-kutsua................................................................................... 125
Tehtävä 9.12 Yliluokan alustajan kutsu.............................................................................. 126
Tehtävä 9.13 Saantimetodi sekunneille.............................................................................. 127
Tehtävä 9.14 Saantimetodien käyttäminen......................................................................... 127
Tehtävä 9.15 minuutteina().................................................................................. 128
Tehtävä 9.16 equals toString avulla..................................................................... 134
Tehtävä 9.17 equals AikaSek-luokkaan.................................................................. 134
Tehtävä 9.18 AikaSek perimällä................................................................................... 134
Tehtävä 9.19 Vertailu....................................................................................................... 134
Tehtävä 9.20 Ensimmäinen melkein järkevä olio................................................................ 136
Tehtävä 10.1 vaihda......................................................................................................... 141
Tehtävä 10.2 abs.............................................................................................................. 141
Tehtävä 10.3 jarjesta2...................................................................................................... 141
Tehtävä 10.4 maksimi ja minimi........................................................................................ 141
Tehtävä 10.5 Loogiset/bittitason operaattorit..................................................................... 146
Tehtävä 10.6 Luku parilliseksi........................................................................................... 146
Tehtävä 10.7 else –osat pois............................................................................................. 151
Tehtävä 10.8 elset pois..................................................................................................... 151
Tehtävä 10.9 Lääni........................................................................................................... 151
Tehtävä 10.10 if–else......................................................................................................... 151
Tehtävä 10.11 valin_summa................................................................................................ 154
Tehtävä 10.12 +=.............................................................................................................. 155
Tehtävä 10.13 1+2+..+i..................................................................................................... 157
Tehtävä 10.14 Tarvitaanko sisäkkäisiä silmukoita?.............................................................. 159
Tehtävä 10.15 continuen korvaaminen................................................................................ 159
Tehtävä 10.16 Eri silmukoiden vertailu................................................................................ 159
Tehtävä 10.17 switch –> if................................................................................................. 160
Tehtävä 10.18 Päävalinta.................................................................................................... 160
Tehtävä 10.19 lääni, versio 2.............................................................................................. 161
Tehtävä 12.1 Lisäys......................................................................................................... 170
Tehtävä 12.2 Etsiminen..................................................................................................... 170
Tehtävä 12.3 Poisto......................................................................................................... 170
Tehtävä 12.4 Lajittelu....................................................................................................... 170
Tehtävä 12.5 Lisää harrastus............................................................................................ 171
Tehtävä 12.6 Mitä harrastaa............................................................................................. 171
Tehtävä 12.7 Kuka harrastaa............................................................................................ 171
Tehtävä 12.8 Poista harrastus........................................................................................... 171
Tehtävä 12.9 Jäsenen poistaminen.................................................................................... 171
Tehtävä 12.10 "Roskaharrastukset".................................................................................... 172
Tehtävä 12.11 Monta saman lajin harrastajaa...................................................................... 172
Tehtävä 13.1 Taulukon alkioiden summa........................................................................... 176
Tehtävä 13.2 Matriisit....................................................................................................... 177
Tehtävä 13.3 Matriisi 1–ulotteisena................................................................................... 178
Tehtävä 13.4 Transpoosi.................................................................................................. 179
Tehtävä 13.5 Palindromi................................................................................................... 180
Tehtävä 15.1 wildmat (opettavainen)................................................................................. 184
Tehtävä 17.1 Tiedoston lukujen summa............................................................................. 197
Tehtävä 17.2 Kommentit näytölle...................................................................................... 200
Tehtävä 17.3 Ohjelman "sekoaminen"............................................................................... 200
Tehtävä 17.4 Tietorakenne............................................................................................... 209
Tehtävä 17.5 Perintä........................................................................................................ 209
Tehtävä 17.6 Tunnistenumero........................................................................................... 209
Tehtävä 17.7 Mittakaava.................................................................................................. 209
Kuvat:
Kuva 5.1 Ehtolauseet.............................................................................................................. 42
Kuva 5.2 swicth–valintalause............................................................................................. 42
Kuva 5.3 do–silmukka ja do-while–silmukka................................................................... 43
Kuva 7.1 Ohjelman kääntäminen ja linkittäminen..................................................................... 67
Kuva 7.2 Ohjelman kääntäminen ja linkittäminen..................................................................... 67
Kuva 8.1 Olioviitteet............................................................................................................... 89
Kuva 8.2 Kaksi viitettä samaan olioon..................................................................................... 90
Kuva 9.1 Suojaustasot............................................................................................................ 114
Kuva 9.2 Aika perinnällä........................................................................................................ 123
Kuva 9.3 Musta laatikko........................................................................................................ 127
Kuva 12.1 Taulukko............................................................................................................... 168
Kuva 12.2 Javan taulukko...................................................................................................... 168
Kuva 12.3 Linkitetty lista........................................................................................................ 169
Kuva 12.4 Tietorakenne kun kerho tallettaa jäsenet................................................................. 170
Kuva 12.5 Harrastukset linkitettynä listana.............................................................................. 171
Kuva 12.6 Harrastukset relaation avulla.................................................................................. 172
Malliohjelmat:
kelmit.dat - ensimmäinen ehdotus tiedostoksi............................................................................ 11
kelmit.dat - sarakkeet linjaan.................................................................................................... 11
kelmit.dat - kerhon nimikin talteen............................................................................................ 19
kelmit.dat - yhteensopivuus muihin ohjlemiin............................................................................. 20
kelmit.opt - yleiset tiedot tänne................................................................................................. 20
kelmit.dat - harrasteet samalle riville......................................................................................... 23
kelmit.dat - harrasteet omalle riville........................................................................................... 23
kelmit.dat - relaatiokannan päätaulu.......................................................................................... 24
harrastu.dat - harrasteet relaation avulla.................................................................................... 24
kelmit.xml – kerho XML-muodossa......................................................................................... 24
java-alk\Hello.java - ensimmäinen Java ohjelma........................................................................ 65
java-alk\Hello2.java - malliohjelma........................................................................................... 68
java-alk\Hello3.java - tervehdys parametrina............................................................................ 71
java-alk\Hello7.java - tervehdys vakioksi................................................................................. 73
java-alk\Kuutio.java - monikulmion tiedot vakioksi................................................................... 74
java-alk\Kuutio4.java - monikulmion tulostus muotoillusti.......................................................... 74
java-muut\Matka.java - mittakaavamuunnos 1:200000 kartalta................................................. 80
java-muut\Syotto.java – kokonaisluvun lukeminen päätteeltä..................................................... 86
java-muut\Jonotesti.java - merkkijonoviitteet............................................................................ 88
java-muut\Matka_a1.java - ohjeet aliohjelmaksi....................................................................... 91
java-muut\Matka_a3.java - erilaisia funktioita........................................................................... 92
java-muut\Matka_a4.java - erilaisia tapoja kutsua funktiota...................................................... 94
java-muut\FunJaOlio.java - sivuvaikutuksellinen funktio............................................................ 95
java-muut\Paamenu.java - päämenun totetutus ja testi............................................................... 97
java-muut\Tulostustesti.java - tulostus näytölle ja tiedostoon...................................................... 100
java-muut\Parampaikka.java - parametrin paikka kutsussa ratkaisee......................................... 102
java-muut\Lokaali.java - lokaalien muuttujien näkyvyys............................................................. 103
java-muut\Aikalisa.java - yritys lisätä arvoja............................................................................. 104
java-muut\Alisotku.java - parametrin välitystä........................................................................... 106
java-muut\Alisotk2.java - parametrin välitystä........................................................................... 107
olioalk\Aikalis4.java - useita aika "muuttujia"............................................................................ 110
olioalk\Aika.java - kunnon olioksi............................................................................................ 111
olioalk\Aikatesti.java - testiluokka Aika-luokalle....................................................................... 114
olioalk\Aika.java - muodastaja alustamaan tiedot...................................................................... 115
olioalk\Aika2.java - lisätään oletusmuodostaja.......................................................................... 115
olioalk\Aika4.java - sisäinen tilan valvonta asetuksessa............................................................. 116
olioalk\Aika5.java - aliohjelma vastaan metodi.......................................................................... 118
olioalk\Aika5.java - rivinvaihto ehdolliseksi............................................................................... 120
olioalk\AikaSek7.java - laajentaminen koostamalla................................................................... 120
olioalk\AikaSek8.java - laajentaminen perimällä....................................................................... 122
olioalk\AikaSekB.java - tarkemmmin mietityt muodostajat........................................................ 125
olioalk\AikaB.java - tarkemmmin mietityt muodostajat.............................................................. 125
olioalk\AikaC.java - saantimetodit............................................................................................ 127
olioalk\AikaD.cpp - sisäinen toteutus minuutteina...................................................................... 128
olioalk\AikaSekB.java - esimerkki polymorfisesta taulukosta.................................................... 128
olioalk\AikaSek7.java - kömpelö esimerkki polymorfisesta taulukosta...................................... 129
olioalk\AikaRajapinta.java - malli kaikkien Aika-luokkien rajapinnasta...................................... 129
olioalk\AikaE.java - luokka joka toteuttaa rajapinnan............................................................... 130
olioalk\AikaE.java - luokka joka toteuttaa rajapinnan => polymorfismi...................................... 131
olioalk\AikaF.java - luokka joka toteuttaa Object.................................................................... 132
olioalk\Henkilo.java - 1. järkevä olio........................................................................................ 136
olioalk\Opiskelija.java - 1. järkevä olio.................................................................................... 137
java-silm\Ifsij2.java - esimerkki tahallisesta sijoituksesta ehdossa.............................................. 142
java-silm\P2_2.java - esimerkki 2. asteen yhtälön ratkaisemiseta............................................... 147
java-silm\P2_2l.java - karsittu versio 2. asteen yhtälöstä........................................................... 149
java-silm\P2_2n.java - normaalit tapaukset ensin ratkaisussa..................................................... 150
java-silm\P2_2r.java - else -osat pois....................................................................................... 150
java-silm\Postimaksu.java - esimerkki samanarvoisista ehtolauseista.......................................... 151
java-alk\Alkuluku.java - testataan onko luku alkuluku............................................................... 152
java-silm\Dowhile.java - lukujen lukeminen kunnes halutulla välillä............................................. 153
java-silm\Alkuluku2.java - alkulukutesti while-silmukalla........................................................... 154
java-silm\Valinsum.java - esimerkki for-silmukasta................................................................... 154
java-silm\Plusplus.java - esimerkki ei-yksikäsitteisestä ++ operaattorin käytöstä........................ 156
java-silm\Valinsum.java - useita alustuslauseita for-silmukassa................................................... 157
java-silm\Valinsum.java - C:mäinen silmukka............................................................................ 157
java-silm\Break.java - silmukan katkaisu keskeltä..................................................................... 157
java-silm\Break.java - ulomman silmukan katkaisu keskeltä...................................................... 158
java-silm\Continue.java - silmukan lopun ohittaminen................................................................ 159
menut_3\Naytto.java - päävalinta switch -lauseella................................................................... 160
java-silm\Switch.java - swicth, jossa break tahallaan jätetty pois............................................... 160
java-taul\Mat2.c - matriisi parametrina riviosoittimen avulla....................................................... 178
java-taul\Mat3.java - matriisi osoitintaulukon avulla................................................................... 179
java-taul\Argv.java - komentorivin parametrit........................................................................... 180
dyna\Taulukko.java -esimerkki dynaamisesta taulukosta........................................................... 189
dyna\VectorMalli.java – vector-luokka.................................................................................... 190
dyna\ArrayListMalli.java – ListArray-luokka............................................................................ 191
tiedosto\Tied_ka.java - Lukujen lukeminen tiedostosta............................................................. 197
tiedosto\Kertotaulu.java - Tiedostoon tulostaminen................................................................... 199
tiedosto\tuotteet.dat - esimerkkitiedosto................................................................................... 200
tiedosto\ErotaEsim.java - esimerkki erota-funktion käytöstä..................................................... 202
tiedosto\LueTuote.java - esimerkki tiedoston lukemisesta......................................................... 204
tiedosto\LueRek.java - esimerkki oliosta joka käsittelee tiedostoa............................................ 205
tiedosto\LueTRek.java - esimerkki tiedoston lukemisesta.......................................................... 207
--, 155
!
!, 143
looginen not, 55
!=, 142
%
%, 152
%=, 155
&
&, 145
&&, 143
looginen and, 55
&, bittitason AND, 145
&=, 155
*
*. ks. jokerimerkki
*/, 69
*=, 155
.
.C, 67
.EXE, 67
.java, 67
.LIB, 67
.OBJ, 67
/
/*, 69
/**, 70
/=, 155
;
;, 72
?
?. ks. jokerimerkki
^
^
looginen xor, 55
^,bittitason XOR, 145
^=, 155
{
{, 62
{ }, 71, 103
|
|, 84, 145
|, bittitason OR, 145
||, 84, 143
looginen or, 55
|=, 155
~
~,bittitason NOT, 145
+
++, 155
+=, 155
<
<, 142
<<,rullaus, 145
<<=, 155
<=, 142
=
=, 81, 142, 154
-=, 155
= =, 82
==, 142
>
>, 142
>=, 142
>>,rullaus, 145
>>=, 155
0
0, 142
1
1, 142
10-sormijärjestelmä, 7
1–ulotteinen taulukko, 45
2
2–asteen polynomi, 101
2-asteen yhtälö, 147
2–asteen yhtälö, 101
2-ulotteinen taulukko, 178
2–ulotteinen taulukko, 48
3
3–ulotteinen taulukko, 49
3x3 matriisi, 177
4
4–ulotteinen taulukko, 50
8
8086, 62
A
aakkosjärjestys, 34
abs, 96
acos, 96
ADA, 8, 60
aggregation, 120
AikaC.java
olioalk, 127
aikainen sidonta, 124
Aikalisa.java
olioalk, 110
algoritmi, 7, 33
algoritmin kompleksisuus, 36
algoritmin parantaminen, 37
algoritmin tarkentaminen, 37
aliohjelma, 34, 39, 52, 56, 91
alkion poisto, 47
alkuluku, 43
alustus, taulukko, 176
AND, 18, 55, 143
AND, bittitaso, 145
ANSI–C, 63
apinatesti, 16
APL, 61
app, 198
append, 198
argc, 179
args, 71
argumentit. ks.argv
argv, 179
asin, 96
assembler, 41, 62
atan, 96
atan2, 96
attribuutti, 111
automaattiset muuttujat, 188
avaaminen, tiedosto, 198
avustus, 17
B
BASIC, 8, 61
BEGIN, 62
binääritiedosto, 195
bittitason operaattorit, 145
block, 140
boolean expression shortcut, 144
Boolen algebra, 55
Borland Pascal, 62
Borland-C++, 68
BOTTOM-UP, 7, 22
break, 157, 161
bubble sort, 36
Budd, Timothy A., 1
BufferedReader, 83
byte, 78
C
C, 8, 60
C++, 60, 63
CAD, 6
case, 159
CASE, 68
catch, 83, 85
ceil, 96
char, 103, 176
child class, 123
class, 111
clone, 132
close, 199
constructor, 115
continue, 85, 159
cos, 96
D
de Morganin kaava, 55
declaration
esittely, 82
declare, 80
default, 160
default constructor, 115
definition
alustus, 82
delete, 74
Delphi, 11, 62
direktiivi, 72
do, 152
double, 78, 103
do-while, 152
do–while, 42
dynaaminen muuttuja, 187
dynaaminen taulukko, 189
E
ehto, 140
ehtojen sieventäminen, 56
ehtolause, 140
ehtolauseet, 41
else, 146
encapsulation, 114
equals, 132
erota, funktio, 201
erotaDouble, funktio, 201
erotaInt, funktio, 201
erotinmerkki, 10
esilisäys, 155
etsi pienin, 37
etsiminen, 169
etsimisalgoritmi, 46
evaluointi, 144
exp, 96
extands, 123
Extensible Markup Language, 24
F
false, 55
FALSE, 142
final, 73
find, 203
float, 78
floor, 96
for, 154, 156
FORTH, 61
Fortran, 8, 60
Fortran 77, 62
funktio, 91
G
garbage collection, 113
garbage-collection, 90
gc, 90, 113
globaali muuttuja, 105
graafinen käyttöliittymän, 11
GT, 77
H
haku, 38
haku järjestetystä joukosta, 38
hakuehto, 19, 21
hashCode, 132
heap, 89
Hello7.java
java-alk, 73
hiiri, 21
hopute, 11
HTML, 70
hybridikieli, 63
I
IEEEremainder, 96
if, 140
if, peräkkäiset, 151
if, sisäkkäiset, 146
if-else, 146
ikuinen silmukka, 161
ilmentymä, 163
immutable, 136
import, 69
indeksi, 45, 175
IndexOutOfBoundsException, 176
inheritance, 121
InputStreamReader, 83
insertion sort, 35
instance
esiintymä, 163
int, 70, 74, 78, 103
INTEGER, 78
interface, 127
IOException, 83
isäluokka, 123
is-a-sääntö, 121
isot ja pienet kirjaimet, 72
iteraattori, 191
J
JA. ks. AND
jakojäännös, 43
jälkilisäys, 155
järjestäminen, 35
järjestyksen kääntäminen, 39
jatkaminen, tiedosto, 198
Java Virtual Machine, 67
java, komento, 67
java.lang, 68
javac, 66
JavaDoc, 70
Java-virtuaalikone, 67
Jbuilder, 68
jokerimerkki, 13, 30
jono, 45
JVM, 67
K
k_pituudet, 175
kääntäminen, 66
kaksiulotteinen taulukko, 49
kapselointi, 111, 114
kasamuisti, 89
kävely, 34
käyttäjäystävällinen, 30
käyttöönotto, 8
kekomuisti, 89
kelmit.dat, 11
kerho, 9
keyword, 81
kirjoitin, 199
kokonaisluku, 78
kolmiulotteinen taulukko, 49
kombinaatiot, 53
komentorivin parametrit, 179
kommentti, 69, 183
kompleksisuus, 36
konstruktori, 115
koodi, 177
koordinaatisto, 48
koostaminen, 120
koottu lause, 140
korttipakka, 45
korvaaminen, 125
kotelointi, 114
kuormittaa, 102, 117
kuplalajittelu, 36
L
ladontaohjelma, 8
lajittelu, 34, 45, 169
lajittelu avaimen mukaan, 37
lapsiluokka, 123
laskeva, 36
late binding, 124
lausekieli, 6, 35, 39
lauseryhmä, 184
lausesulut, 71
lf, 120
line feed, 120
lineaarinen lista, 10, 168
linkitetty lista, 168
linkittäminen, 66
lisämäärittely, 117
lisäys, 169
lisäysoperaattori, --, 155
lisäysoperaattori, ++, 155
Lisp, 61
lista, 45, 168, 169
litereal, 80
log, 96
lohko, 140
lokaali muuttuja, 88, 103
lokaalit muuttujat, 188
long, 78
looginen lause, 141
loogiset operaatiot, 55
loppuvälilyönti, 11
lukeminen, 196
luokan esiintymä, 163
luokka, 111
luokkametodi, 91
luokkamuuttuja, 105
M
main, 70, 71, 97
main menu, 12
Math, 74, 82, 96
matriisi, 48, 178
max, 96
menu, 97
menu, 12
merkki, 176
merkkijono, 56, 176
message passing, 112
method, 111
metodi, 111
Microsoft, 68
min, 96
mittakaava, 77, 79
Mjonot.java, 201
Mjontot, 201
Modula-2, 8
Modula–2, 61
modulaarinen testaus, 86
modulitestaus, 70
monimuotoisuus, 124, 128
moniulotteinen taulukko, 48
moniulotteinen taulukko 1-ulotteisena, 178
moniulotteinen taulukko 1–ulotteisena, 48
moniulotteiset taulukot, 177
MS-DOS, 13, 180
muistinsiivous, 113
muodostaja, 115
mutable, 136
muuttuja, 78
dynaaminen. ks. dynaaminen muuttuja
muuttujan esittely, 78
muuttujat, 43
myöhäinen sidonta, 124
N
näkyvyysalue, 103
NetBeans, 68
new, 89
nollaus, 176
NOT, 55, 143, 145
nouseva, 36
null, 90
NumberFormatException, 85
O
object, 111
ohjelmaeditori, 20
ohjelman ajaminen, 66
oletusarvo, 13, 21, 31
oletusmuodostajaksi, 115
olio, 111, 163
OR, 18, 55, 143
OR, bittitaso, 145
osaongelma, 39
osoitin, 47
osoitintaulukko, 178
out, 72
overload, 102
overloading, 117
overriding, 125
P
pääohjelma, 93
päätöstaulu, 52
päävalikko, 12, 97
paista, 52
päivämäärät, 56
palanen, 21, 31
parametri, 52, 92
parametri, komentorivi, 179
parametri, useita, 100
parent class, 123
parseInt, 85
Pascal, 8, 59, 78
pätkiminen, 21
perään kirjoittaminen, tiedosto, 198
peräkkäishaku, 38
perintä, 112
perintää, 121
PI, 82
pienin, 37
pino, 45
poikkeus, 83
poista, 56
poisto, 31, 47, 169
polymorfismi, 112, 124, 128
polymorphism, 124
pow, 96
pöytätesti, 44, 93
printf, 74
println, 72
proto, 6
public, 70
puhelinluettelo, 38
puolipiste, 72
puolitushaku, 38
puu, 10
Q
QuickSort, 37
R
rajapinta, 127
rakentaja, 115
random, 96
read-only, 127
references, 87
rekisteröinti, 42
rekursio, 124
relaatiotietokantamalli, 23
repeat, 42
return, 74, 85, 95, 150
rint, 96
rivilista, 178
rivinvaihto, 11, 72
rivitalo, 48
rivityyppi, 48
roskien keruu, 113
roskienkeruu, 90
round, 96
rullaus, 145
ruutupaperi, 39
S
saantimetodi, 126
sanakirja, 27
sarakelista, 178
Savo, 28
scope, 103
sekarakenne, 50, 169
selailu, 18
selection sort, 36
shift, 145
short, 78
sidontajärjestys, 144
sijoitus, 82
sijoitus on lauseke, 142
sijoitusoperaattori, %=, 155
sijoitusoperaattori, &=, 155
sijoitusoperaattori, *=, 155
sijoitusoperaattori, /=, 155
sijoitusoperaattori, ^=, 155
sijoitusoperaattori, |=, 155
sijoitusoperaattori, +=, 155
sijoitusoperaattori, <<=, 155
sijoitusoperaattori, =, 154
sijoitusoperaattori, -=, 155
sijoitusoperaattori, >>=, 155
silmukat, 42
sin, 96
sormi, 47
sovelluskehitin, 6
sqrt, 96
sscanf, 201
standardikirjasto, 37, 91
static, 71
stdin, 195
stdout, 195
string
npos, 203
String, 71
StringBuffer, 74
subclass, 123
sulkeminen, 199
suora haku, 38
suoritusjärjestys, 144
super, 123
switch, 159
switch, break, 159
switch, case, 159
switch, default, 159
syntaksivirhe, 72
syrjäyttäminen, 125
System, 72
T
tabulointi, 72
TAI. ks. OR
tai, operaattori, 84
tallennus, 15
tan, 96
tapahtumaohjattu järjestelmä, 63
taulukko, 168
taulukko, alustaminen, 176
taulukko, alustus, 177
taulukko, dynaaminen, 189
taulukko, moniulotteinen, 177
taulukko, moniulotteinen 1-ulotteisena, 178
taulukko, nollaus, 176
taulukko, osoittimista, 178
taulukko, taulukoista, 178
taulukkolaskenta, 6, 8, 10
taulukot, 45
tekstieditori, 11
tekstinkäsittely, 6, 8
tekstitiedosto, 10, 66, 195
testipääohjelma, 97
TeX, 8
this, 118
tiedosto, 10, 195
tiedosto, avaaminen, 198
tiedosto, binääri, 195
tiedosto, jatkaminen, 198
tiedosto, lukeminen, 196
tiedosto, rivillä monta kenttää, 200
tiedosto, sulkeminen, 199
tiedosto, teksti, 195
tiedoston jatkaminen, 198
tietokanta, 6, 8
tietokantaohjelma, 22
tietokantaohjelmisto, 10
tietorakenne, 167
tietovirta parametrina, 193
toDegrees, 96
TOP-DOWN, 7, 22
toRadians, 96
toString, 132
totuustaulu, 52, 54
true, 55, 85
TRUE, 142
try, 85
tulkki, 27
tulostusjärjestys, 14
tuotteet.dat
tiedosto, 200
Turbo Pascal, 62
tyhjä, 72
tyhjä merkkijono, 12, 13
U
uiminen, 43
Unicode, 80
UNICODE, 177
UNIT, 62
UNIX, 63
uudelleenmääritys, 125
V
vaihda, 140
vaihtoehtojen lukumäärä, 53
vakio, 79, 80
vakioarvo, 74
valikko, 12
välilyönti, 72
valintalause, 42
välitön ali/yliluokka, 123
valmisohjelma, 6
VAR, 78
VBA, 102
Vector, 190
vektori, 39, 45
vertailu, 34
vertailuoperaattori, 142
viesti, 112
viitemuuttuja, 87
virtuaalikone, 67
Visual Basic, 11, 62
Visual-C, 68
void, 71, 95
vuokaavio, 42
W
while, 74, 85, 153
white space, 72
X
x y, 48
XML, 25
XOR, 55
XOR, bititaso, 145
Y
yksikkötestausta, 70
ylläpito, 8