Sisällysluettelo:
Laajenna
-
Kutista
Esipuhe
1. Mitä ohjelmointi on?
2. Ensimmäinen C#-ohjelma
2.1 Ohjelman kirjoittaminen
2.2 Ohjelman kääntäminen ja ajaminen
2.3 Ohjelman rakenne
2.3.1 Virhetyypit
2.3.2 Kääntäjän virheilmoitusten tulkinta
2.3.3 Tyhjät merkit (White spaces)
2.4 Kommentointi
2.4.1 Dokumentointi
3. Algoritmit
3.1 Mikä on algoritmi?
3.2 Tarkentaminen
3.3 Yleistäminen
3.4 Harjoitus
3.5 Peräkkäisyys
4. Yksinkertainen graafinen C#-ohjelma
4.1 Mikä on kirjasto?
4.2 Jypeli-kirjasto
4.3 Esimerkki: Lumiukko
4.3.1 Ohjelman suoritus
4.3.2 Ohjelman oleellisemmat kohdat
4.4 Harjoitus
4.5 Kääntäminen ja luokkakirjastoihin viittaaminen
5. Lähdekoodista prosessorille
5.1 Kääntäminen
5.2 Suorittaminen
6. Aliohjelmat
6.1 Aliohjelman kutsuminen
6.2 Aliohjelman kirjoittaminen
6.3 Aliohjelmien dokumentointi
6.3.1 Huomautus
6.4 Aliohjelmat, metodit ja funktiot
7. Muuttujat
7.1 Muuttujan määrittely
7.2 Alkeistietotyypit
7.3 Arvon asettaminen muuttujaan
7.4 Muuttujan nimeäminen
7.4.1 C#:n varatut sanat
7.5 Muuttujien näkyvyys
7.6 Vakiot
7.7 Operaattorit
7.7.1 Aritmeettiset operaatiot
7.7.2 Vertailuoperaattorit
7.7.3 Arvonmuunto-operaattorit
7.7.4 Aritmeettisten operaatioiden suoritusjärjestys
7.8 Huomautuksia
7.8.1 Kokonaisluvun tallentaminen liukulukumuuttujaan
7.8.2 Lisäys- ja vähennysoperaattoreista
7.9 Esimerkki: Painoindeksi
8. Oliotietotyypit
8.1 Mitä oliot ovat?
8.2 Olion luominen
8.3 Oliotietotyyppien ja alkeistietotyyppien ero
8.4 Metodin kutsuminen
8.5 Metodin ja aliohjelman ero
8.6 Olion tuhoaminen ja roskienkeruu
8.7 Olioluokkien dokumentaatio
8.7.1 Konstruktorit
8.7.2 Harjoitus
8.7.3 Metodit
8.7.4 Huomautus: Luokkien dokumentaatioiden googlettaminen
8.8 Tyyppimuunnokset
9. Aliohjelman paluuarvo
9.1 Harjoitus
10. Visual Studio 2010
10.1 Asennus
10.2 Käyttö
10.2.1 Ensimmäinen käyttökerta
10.2.2 Projektit ja solutionit
10.2.3 Visual Studion perusnäkymä
10.2.4 Ohjelman kirjoittaminen
10.2.5 Ohjelman kääntäminen ja ajaminen
10.2.6 Referenssien asettaminen
10.3 Debuggaus
10.4 Hyödyllisiä ominaisuuksia
10.4.1 Syntaksivirheiden etsintä
10.4.2 Kooditäydennys, IntelliSense
10.4.3 Uudelleenmuotoilu
10.5 Lisätietoja Visual Studion käytöstä
11. ComTest
11.1 Käyttö
11.2 Liukulukujen testaaminen
12. Merkkijonot
12.1 Alustaminen
12.2 Hyödyllisiä metodeja ja ominaisuuksia
12.3 Muokattavat merkkijonot: StringBuilder
12.3.1 Muita StringBuilder-luokan hyödyllisiä metodeja
12.4 Huomautus: aritmeettinen + vs. merkkijonoja yhdistelevä +
12.5 Vinkki: näppärä tyyppimuunnos String-tyypiksi
12.6 Reaalilukujen muotoilu String.Format-metodilla
13. Ehtolauseet (Valintalauseet)
13.1 Mihin ehtolauseita tarvitaan?
13.2 if-rakenne: ”Jos aurinko paistaa, mene ulos.”
13.3 Vertailuoperaattorit
13.3.1 Huomautus: sijoitusoperaattori (=) ja vertailuoperaattori (==)
13.4 Esimerkki: yksinkertaisia if-lauseita
13.5 if-else -rakenne
13.5.1 Esimerkki: Pariton vai parillinen
13.6 Loogiset operaattorit
13.6.1 Operaattoreiden totuustaulut
13.6.2 Operaattoreiden käyttö
13.6.3 De Morganin lait
13.6.4 Osittelulaki
13.7 else if-rakenne
13.7.1 Esimerkki: Tenttiarvosanan laskeminen
13.7.2 Harjoitus
13.7.3 Harjoitus
13.8 switch-rakenne
13.8.1 Esimerkki: Arvosana kirjalliseksi
14. Olioiden ja alkeistietotyyppien erot
15. Taulukot
15.1 Taulukon luominen
15.2 Taulukon alkioon viittaaminen
15.3 Esimerkki: lumiukon pallot taulukkoon
15.4 Esimerkki: arvosana kirjalliseksi
15.5 Moniulotteiset taulukot
15.5.1 Harjoitus
15.6 Taulukon kopioiminen
15.7 Esimerkki: Moniulotteiset taulukot käytännössä
15.8 Taulukoiden täydennykset wikissä
16. Toistorakenteet (silmukat)
16.1 ”Syö niin kauan, kuin puuroa on lautasella”
16.2 while-silmukka
16.2.1 Huomautus: ikuinen silmukka
16.2.2 While-silmukka vuokaaviona
16.2.3 Esimerkki: Taulukon tulostaminen
16.2.4 Esimerkki: Monta palloa
16.3 do-while-silmukka
16.3.1 Esimerkki: nimen kysyminen käyttäjältä
16.4 for-silmukka
16.4.1 Huomautus: while ja for -silmukoiden yhtäläisyydet ja erot
16.4.2 Esimerkki: lumiukon pallot keltaiseksi
16.4.3 Harjoitus
16.4.4 Esimerkki: Keskiarvo-aliohjelma
16.4.5 Harjoitus
16.4.6 Esimerkki: Taulukon kääntäminen käänteiseen järjestykseen
16.4.7 Harjoitus
16.4.8 Esimerkki: arvosanan laskeminen taulukoilla
16.5 foreach-silmukka
16.5.1 Esimerkki: taulukon pallot keltaisiksi
16.6 Sisäkkäiset silmukat
16.7 Esimerkki: rivi, jolla eniten vapaata tilaa
16.8 Silmukan suorituksen kontrollointi break- ja continue-lauseilla
16.8.1 break
16.8.2 continue
16.9 Ohjelmointikielistä puuttuva silmukkarakenne
16.10 Yhteenveto
17. Merkkijonojen pilkkominen ja muokkaaminen
17.1 String.Split()
17.2 String.Trim()
17.3 Esimerkki: Merkkijonon pilkkominen ja muuttaminen kokonaisluvuiksi
18. Järjestäminen
19. Olion ulkonäön muuttaminen (Jypeli)
19.1 Väri
19.2 Koko
19.3 Tekstuuri
19.4 Olion muoto
20. Ohjainten lisääminen peliin (Jypeli)
20.1 Näppäimistö
20.2 Lopetuspainike ja näppäinohjepainike
20.3 Peliohjain
20.3.1 Analoginen ”tatti”
20.4 Hiiri
20.4.1 Näppäimet
20.4.2 Hiiren liike
20.4.3 Hiiren kuunteleminen vain tietyille peliolioille
21. Piirtoalusta (Jypeli)
21.1 Esimerkki: Punainen rasti
21.2 Esimerkki: Pyörivä jana
22. Rekursio
22.1 Sierpinskin kolmio
22.2 Harjoitus
23. Dynaamiset tietorakenteet
23.1 Rajapinnat
23.2 Listat (List<T>)
23.2.1 Tietorakenteen määrittäminen
23.2.2 Alkioiden lisääminen ja poistaminen
24. Poikkeukset
24.1 try-catch
24.2 finally-lohko
24.3 Yleistä
25. Tietojen lukeminen ulkoisesta lähteestä
25.1 Tekstin lukeminen tiedostosta
25.2 Tekstin lukeminen netistä
25.3 Satunnaisluvut
26. Lukujen esitys tietokoneessa
26.1 Lukujärjestelmät
26.2 Paikkajärjestelmät
26.3 Binääriluvut
26.3.1 Binääriluku 10-järjestelmän luvuksi
26.3.2 10-järjestelmän luku binääriluvuksi
26.4 Negatiiviset binääriluvut
26.4.1 Suora tulkinta
26.4.2 1-komplementti
26.4.3 2-komplementti
26.4.4 2-komplementin yhteenlasku
26.5 Lukujärjestelmien suhde toisiinsa
26.6 Liukuluku (floating-point)
26.6.1 Liukuluvun binääriesityksen muuttaminen 10-järjestelmään
26.6.2 10-järjestelmän luku liukuluvun binääriesitykseksi
26.6.3 Huomio: doublen lukualue
26.6.4 Liukulukujen tarkkuus
26.6.5 Intelin prosessorikaan ei ole aina osannut laskea liukulukuja oikein
27. ASCII-koodi
28. Syntaksin kuvaaminen
28.1 BNF
28.2 Laajennettu BNF (EBNF)
29. Jälkisanat
Liite: Sanasto
Liite: Yleisimmät virheilmoitukset ja niiden syyt
Tyyppiä tai nimiavaruutta ei löydy
Peli.Aliohjelma(): not all code paths return a value
Muuttujaa ei ole olemassa nykyisessä kontekstissa