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 ifelse –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


 


E:\kurssit\ohj2\moniste\esipuhe1.htm

E:\kurssit\ohj2\moniste\johdant1.htmE:\kurssit\ohj2\moniste\ohsuun1.htm

E:\kurssit\ohj2\moniste\tulksuu1.htm

E:\kurssit\ohj2\moniste\algosuu1.htm

E:\kurssit\ohj2\moniste\algorak1.htm

E:\kurssit\ohj2\moniste\kielet1.htm

E:\kurssit\ohj2\moniste\java-al1.htm

E:\kurssit\ohj2\moniste\java-muu1.htm

E:\kurssit\ohj2\moniste\olioalk1.htm

E:\kurssit\ohj2\moniste\java-sil1.htmE:\kurssit\ohj2\moniste\oliosuu1.htm

E:\kurssit\ohj2\moniste\ohjrunk1.htm

E:\kurssit\ohj2\moniste\java-tau1.htm

E:\kurssit\ohj2\moniste\param1.htm

E:\kurssit\ohj2\moniste\komloh1.htm

E:\kurssit\ohj2\moniste\dyna1.htm

E:\kurssit\ohj2\moniste\tiedost1.htm

Hakemisto


 

--, 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