Olio-ohjelmoinnin perusteita Java-kielellä

Koko: px
Aloita esitys sivulta:

Download "Olio-ohjelmoinnin perusteita Java-kielellä"

Transkriptio

1 Java perusteet Sivu 1(146) Sisältö Olio-ohjelmoinnin perusteita Java-kielellä Sisällysluettelo Olio-ohjelmoinnin perusteita Java-kielellä...1 Sisällysluettelo...1 Opintojakson sisältö pääkohdittain...8 Edeltävät opinnot...8 Opintojakson tavoitteet...8 Oppimateriaali...8 Opetusmuodot...9 Java-ohjelmoijan työvälineet...10 IDE-sovelluskehittimet...10 NetBeans Ikkunan osat...11 Asetukset...11 Projektin luonti...11 Luokan luominen...12 Avustavia toimintoja...12 Komentoriviargumentit...12 Uuden luokan määrittäminen käynnistäväksi eli pääluokaksi (main)...13 Virheiden jäljitys eli debuggaus...13 Ohjelma perusosat...14 Yleistä Java-kielestä...14 Yleiset ohjelman perusosat...14 Kielioppi eli syntaksi...14 Java-kielen oppimateriaali...15 Tunnisteet...15 Nimeämiskäytäntöjä...15 Varatut sanat...15 Kommentit...16 Esimerkkejä...16 Ohjelman perusosat, harjoituksia...17 Harjoitus Harjoitus Tieto muistissa...18 Muistipaikat...18 Tietotyypit...18 Bitit ja tavut...18 Luvut...19 Merkkitietotyyppi...20 Totuusarvotietotyyppi...20 Rakenteiset tietotyypit...20 Vakiot (literaalit)...20 Kokonaislukuvakiot...20 Liukulukuvakiot...21 Merkkivakiot...21 Merkkijonovakiot...22

2 Java perusteet Sivu 2(146) Sisältö Erikoismerkit...22 Missä vakioita on?...23 Nimetyt vakiot...23 Muuttujat...25 Muuttujien alustus...25 Tietomuodon muuntaminen (konversio)...25 Numeerisen tietotyypin konversio (cast-konversio, castaus )...26 Lukujen muotoilu...26 Esimerkkiohjelma ympyrän ala...26 Tieto muistissa, harjoituksia...28 Harjoitus Harjoitus Harjoitus Lausekkeet, operaattorit ja operandit...29 Lauseke...29 Operaattorit...29 Operandit...30 Sijoitusoperaattorit...30 Aritmeettiset operaattorit...30 Vertailuoperaattorit...31 Loogiset operaattorit...32 Muut operaattorit...32 Lausekkeet, operaattorit ja operandit, harjoituksia...33 Harjoitus Harjoitus Harjoitus Harjoitus Lauseet...34 Lause...34 Ohjausrakenteet...34 Peräkkäisrakenne...35 Valintarakenne...35 if-lause...35 switch -case -lausepari...36 Toistorakenne eli silmukat, loopit...36 Lukumääräinen toisto for...37 Alkuehtoinen toisto while...38 Loppuehtoinen toisto do-while...38 Lauselohkot...39 Hyppy- ja haarautumislauseet...39 Lauseet, harjoituksia...41 Harjoitus Harjoitus Harjoitus Harjoitus Harjoitus Harjoitus Olio-ohjelmoinnin perusteita...42 Mistä oliokielellä ohjelmoitu ohjelma koostuu?...42 Luokat ja oliot...42

3 Java perusteet Sivu 3(146) Sisältö Ominaisuudet ja muuttujat...43 Metodit...43 Valmiiden luokkien käyttäminen...43 Muodostimet...43 Viittaukset...44 Mikä viittaus (reference) on?...44 Viittaustyypit...44 Alustamaton viittaus...44 Viittausesimerkki...44 Missä oliot ovat?...45 Esimerkkiluokka Esimerkkiluokka Esimerkkiluokka Viittausten asettaminen...47 Merkkijono-olioiden sisällön vertailu...47 Luokat ja oliot, harjoituksia...49 Harjoitus 1: API-luokat...49 Harjoitus Harjoitus Harjoitus Lisäharjoitus Lisäharjoitus Merkkijonot...52 Merkkijonot Java-kielessä...52 String-luokka...52 Merkkijonojen yhdistely...53 Tärkeimpiä merkkijonometodeita...53 Merkkijonojen vertailusta...53 Konversiot...54 StringBuffer-luokka...54 Esimerkkiohjelma...54 Merkkijonot, harjoituksia...56 Harjoitus Harjoitus Harjoitus Tehtävä Tehtävä Tehtävä Lisätehtävä Lisäharjoitus Lisäharjoitus Taulukot...59 Rakenteisia tietotyyppejä...59 Taulukko...59 Taulukon määrittely ja alustus...59 Indeksit...60 Taulukkoesimerkki Taulukkoesimerkki Taulukon koko...61 Moniulotteiset taulukot...61

4 Java perusteet Sivu 4(146) Sisältö Taulukon kopioiminen...63 Taulukko argumenttina...64 Komentoriviargumentit taulukkona...64 Taulukot, harjoituksia...65 Harjoitus Tehtävä Tehtävä Tehtävä Tehtävä Harjoitus Tehtävä Tehtävä Tehtävä Harjoitus Harjoitus Harjoitus Lisäharjoitus Lisäharjoitus Vektorit ja muut kokoelmat...68 Mikä kokoelma on?...68 Listat ja joukot...68 Vector...69 Vektoriesimerkki Vektoriolion muodostaminen...70 Elementtien lisäys vektoriin...70 Vektorin olioiden lukumäärä...70 Onko olio vektorissa?...71 Tietyssä paikassa oleva olio...71 Elementin korvaaminen toisella...71 Elementtien järjestäminen...72 Binäärihaku...72 Viittausten tyhjentäminen...72 Vektoriesimerkki TreeMap luokka...74 TreeMap-esimerkki...74 Elementtien lisäys...76 Haku avaimella...76 Kokoelman läpikäynti...76 Elementin poistaminen...77 Kokoelmat, harjoituksia...78 Harjoitus Harjoitus Tehtävä Tehtävä Lisätehtävä Lisätehtävä Harjoitus Tehtävä Lisätehtävä Lisätehtävä

5 Java perusteet Sivu 5(146) Sisältö Lisäharjoitus Aliohjelmat...82 Ohjelman jakaminen osiin...82 Ohjelmamoduulit...82 Pääohjelma...82 Aliohjelma...83 Aliohjelmatyypit...83 Metodit...84 Metodin otsikko...84 Parametrit ja argumentit...84 Olio argumenttina...85 Argumenttien arvojen muuttaminen...86 Metodin runko...86 Metodien kutsuminen (käyttäminen)...87 Metodien käyttäminen proseduurien tavoin...87 Metodien järjestys lähdeohjelmassa...87 Esimerkki itse kirjoitetusta metodista...87 Aliohjelmat, harjoituksia...89 Harjoitus Harjoitus Harjoitus Lisäharjoitus Lisäharjoitus Poikkeukset...91 Mitä poikkeukset ovat?...91 Poikkeuskäsittelyn lauseet...91 Esimerkki poikkeuskäsittelystä...92 Joka tapauksessa suoritettavat lauseet (finally)...93 Poikkeukset, harjoituksia...94 Harjoitus Harjoitus Lisäharjoitus Luokat ja oliot...95 Luokka...95 Uuden luokan määrittely...95 Käytännön työohjeita...95 Luokan esittely...95 Luokan määrittely...96 Olio- ja luokkakohtaiset muuttujat...98 Oliokohtaiset muuttujat...98 Luokka(kohtaiset)muuttujat...99 Luokkakohtaiset vakiot...99 Muodostimet...99 Muodostimien määrittely Muodostimien käyttäminen Ylimääritys - Overloading methods Olio- ja luokkakohtaiset metodit Oliokohtaiset metodit Luokkakohtaiset metodit Tiedon kätkeminen eli kapselointi...102

6 Java perusteet Sivu 6(146) Sisältö Luku- ja kirjoitusmetodit Saantimetodit (lukumetodit) Asetusmetodit (kirjoitusmetodit) Metodien kutsuminen olioviittauksen avulla Esimerkkiohjelma Valmiit eli API luokat Luokat ja oliot, harjoituksia Harjoitus 1: API-luokat Harjoitus Harjoitus Harjoitus Lisäharjoitus Lisäharjoitus Pakkaukset Saanti- eli suojausmääreet Nimiavaruus Pakkauksen määrittely lähdeohjelmassa Nimetön pakkaus Luokkien sisällyttäminen käännökseen API-luokkien pakkaukset Mistä kääntäjä löytää pakkauksen? Classpath Luokkien hakujärjestys Periytyminen Perusteita Final-luokat Esimerkki luokan periytymisestä Object-luokka Mitä periytyy? Muodostimet Uudet jäsenet Ylikirjoittaminen eli peittäminen - Override Abstrakti luokka Sisäluokka (Inner Class) Liittymä (interface) Pysyvät oliot (Persistent objects) ja serialisointi Periytyminen, harjoituksia Harjoitus Harjoitus Harjoitus Harjoitus Liittymät (interface) Käyttötarkoitus Liittymän määrittely Liittymän käyttäminen Esimerkki API kirjastoon kuuluvan liittymän käytöstä Tiedostot ja sarjoittaminen Tiedostot Javassa Merkkivirrat Binäärivirrat...126

7 Java perusteet Sivu 7(146) Sisältö Puskurointi Näppäimistön lukeminen Perinteisten levytiedostojen käsittely Rivien lukeminen tekstitiedostosta Tietueiden käsittely tekstimuodossa Rivien kirjoittaminen tekstitiedostoon Java ja HTML HTML-esimerkki HTML-esimerkki Dynaamisen HTML-sivun esimerkki Perustietotyyppien lukeminen ja kirjoittaminen Esimerkki tekstitiedoston kopioinnista Olioiden sarjoittaminen Tiedoston loppumisen havaitseminen sarjoituksessa Oliotaulukon sarjoittaminen Tiedoston loppumisen testaaminen sarjoituksessa Tiedostot, harjoituksia Harjoitus Tehtävä Tehtävä Lisätehtävä Harjoitus Lisäharjoitus Tehtävä Tehtävä Tehtävä Tehtävä Java-ohjelmat tuotantokäytössä Sovelluksen jakelu JAR-tiedosto Manifest-tiedosto Mitä tiedostoja ja missä Luokan käynnistys Käynnistyksen helpottaminen Jakelun suunnittelu...146

8 Java perusteet Sivu 8(146) Sisältö Opintojakson sisältö pääkohdittain Johdanto tietojenkäsittelyyn Ohjelmistotuotanto Java-ohjelmoijan työvälineet Ohjelman perusosat Tieto muistissa Lausekkeet, operaattorit ja operandit Lauseet Olio-ohjelmoinnin perusteita Merkkijonot Taulukot Aliohjelmat Poikkeukset Luokat ja oliot Pakkaukset Periytyminen Liittymät Tiedostot ja sarjoittaminen Kokoelmat Java-ohjelmat tuotantokäytössä Edeltävät opinnot Tämän opintojakson menetyksellinen suorittaminen ei välttämättä edellytä perustietoja ohjelmoinnista, mutta jonkin ohjelmointikielen perusteiden ja olio-ohjelmoinnin peruskäsitteiden tuntemisesta on hyötyä. Opintojakson tavoitteet Opintojakson tavoitteena on antaa opiskelijalle perusvalmiudet ohjelmoinnin ymmärtämiseen ja osaamiseen. Toisena tavoitteena on antaa perusosaaminen Java-kielellä ohjelmointiin. Oppimateriaali The Java Tutorial on koostesivu Sun-yhtiön erilaisista Java-oppimateriaaleista, jossa linkki Learning the Java Language vie Javaperuskielen oppimateriaalisivustoon. Tästä oppimateriaalista käytetään tässä sivustossa myöhemmin nimitystä Sunin oppimateriaali. Jokaisen asiakokonaisuuden lopussa on tehtäviä ja kysymyksiä sekä niiden vastaukset. Näitä voi käyttää itseopiskelumateriaalina. Osoitteesta saat noudetuksi edellä mainitun dokumentaation omalle koneellesi, jollin Internet-yhteyttä ei tarvitse pitää koko ajan avoinna Javan API-luokkien (API = Application Programming Interface) dokumentaation kotisivu on Koska versiot vaihtuvat melko tiheästi, on sieltä linkit jokaiseen eri version dokumentaatioihin.

9 Java-artikkelisarja Suomenkielisiä oppikirjoja (tässä vain joitakin hyllystä poimintoja): Java perusteet Sivu 9(146) Sisältö Cay S. Horstmann & Gary Cornell: Inside Java 2, Oy Edita Ab IT Press, ISBN (syvällisiin yksityiskohtiin menevä kirja, jossa on myös vihjeitä C++- ja Visual Basic -ohjelmoijille) Juha Peltomäki - Pekka Malmirae: Java-ohjelmoinnin Peruskirja, Teknolit Oy, ISBN Mika Vesterholm - Jorma Kyyppö: Java Ohjelmointi Pro Training, Satku.fi, ISBN (erityisen hyvä tietokantaosuus) Nachimovsky - Myers: Inside Java ja XML, IT Press 2002, ISBN (järeä hajautettujen J2EE sovellusten rakennusopas) Niskanen - Kontio - Vuorimaa: Inside Enterprise Java, IT Press 2001, ISBN X (Koko skaala, alkaa perusteista ja päättyy J2EE hajautettuihin sovelluksiin) Loputon tietolähde on tietenkin Internet, josta kannattaa hakea sekä suomen- että englanninkielisillä hakusanoilla, esimerkiksi java free pdf tuottaa hyviä tuloksia. Opetusmuodot Opetusmuotona on aluksi kuhunkin aihekokonaisuuteen liittyvä lyhyt luento. Oppiminen tapahtuu kuitenkin pääasiassa harjoitusten avulla. Lisäksi opiskelijoita ohjataan hakemaan itsenäisesti lisätietoja, esimerkkejä ja sovelluksia opintojakson aiheisiin Internetistä. Oppimateriaalin tekijä: Matti Jaakkola, Lahden kauppaoppilaitos 2003, päivitys Koulutuskeskus Salpaus

10 Java-ohjelmoijan työvälineet Java perusteet Sivu 10(146) Työvälineet Java-ohjelmoijalla on valittavanaan joukko erilaisia ja eri tasoisia ohjelmointityövälineitä. Sunin perinteinen työvälineistö oli Java Developer's Kit eli JDK. Tämä välineistö koostuu joukosta erillisiä ohjelmia, jotka ovat komentoperustaisia. Java SE Development Kit tunnetaan nykyisin myös nimellä JDK (SE = standard edition). Java Runtime Environment (JRE) taas tarkoittaa loppukäyttäjän koneella välttämätöntä ajoympäristöä, joka sisältää mm. JVM eli java virtuaalikoneen. Tällä hetkellä (2007) Sun tarjoaa erilaisia kehitysalustoja mm: Java Platform, Enterprise Hajautetun komponenttipohjaisen kehitysalustan sisältävä Edition (Java EE) paketti. Web pohjaisten palveluiden tuki- ja kehityökalut (SDK). Java Platform, Standard Edition Ohjelmointiympäristö sovelluskehitykseen työasema- ja (Java SE) palvelinympäristöön. Toimii myös alustana Java Platform, Enterprise Edition (Java EE) ja Java Web Services palveluille. Lisäksi tarjolla on Java ME (Micro Edition) sulautettuja ympäristöjä kuten älykkäitä laitteita, kännyköitä ja automatisoituja kuljetuslaitteita (telematics) varten, Java Card Technology älykorttikäyttöön ja JavaFX nopeaan loppukäyttäjäsovellusten kehitykseen. Ajankohtaisen tilanteen välineiden osalta saa selville mm. osoitteista ja IDE-sovelluskehittimet Erillisten ohjelmoijan työvälineohjelmien sijaan useimmat ohjelmoijat käyttävät nykyisin yleensä ns. integroituja työvälineohjelmia, joissa on useita edellä mainittuja toimintoja samassa ohjelmassa keskitetysti käytettävissä. Näistä integroiduista ohjelmointiohjelmista käytetään lyhennettä IDE (Integrated Development Environment). Niitä nimitetään myös sovelluskehittimiksi, jolla nimityksellä tahdotaan korostaa niiden tehokuutta ja helppokäyttöisyyttä erillisiin työvälineohjelmiin nähden. Java-kielen IDE-sovelluskehittimiä on monenlaisia, joista osa ilmaisia ja osa maksullisia. Kaupallisia (maksullisia) IDE-välineitä on edelleenkin, vaikka open source lisenssioidut välineet ovat käytettyjä myös kaupallisessa tuotannossa. Ilmaisia open source lisenssiin perustuvia Java IDE sovelluskehittimiä ovat mm. Netbeans ja Eclipse. Lisätietoja osoitteista ja Lisää IDE kehittimiä vaikkapa linkkilistalta Hakukoneilla saa lisää osoitteita esim. hakusanoilla free java ide. Tämä materiaali perustuu ohjeiden osalta NetBeans versioon 5.5, mutta on sovellettavissa helposti mihin tahansa vastaavantyyppiseen editoriin.

11 Java perusteet Sivu 11(146) Työvälineet NetBeans 5.5 Ikkunan osat Ohjelman ikkuna jakautuu useampaan osaan. Kuvassa vasemmalla Projects ikkuna näyttää puurakenteena projektin osat. Suljettu alakohtia sisältävä haara (+) voidaan avata mm. hiirellä napsauttaen, avattu haara (-) sulkea samoin. Projects ikkunasta valitun moduulin sisällön yksityiskohtia nähdään alla olevasta Navigator ikkunasta. Varsinainen koodi näkyy oikealla puolella ikkunaa. Jokaisella koodimoduulilla on oma välilehti. Välilehden sulkeminen ei poista moduulia projektista. Ikkunan alareunaan sijoittuu mm. Output tai Watches ikkuna. Ikkunoiden sisällöt vaihtuvat eri tilanteissa, samoin useat ikkunat aukeavat automaattisesti. Asetukset Työkalut Asetukset valikosta voidaan säädellä ohjelman käyttäytymistä, mm. tekstin sisennysten (indentation) ja fonttien ja värien määrittelyt. Aluksi värit kannattaa pitää alkuperäisinä, fonttikokoa voi muuttaa haluttaessa. Muut asetukset kannattaa jättää aluksi oletusarvoihin, kunnes niiden merkitys avautuu. Projektin luonti File New Project komennolla käynnistyy wizard eli ohjattu toiminta, josta valitaan ensin projektin tyyppi. Vasemmalla on päätyyppi ja oikealla sen alakohdat. Itsenäinen Java sovellus saadaan General Java Application valinnalla. Toisessa vaiheessa määritellään projektin nimi, joka on samalla paketin (Package) nimi, sekä sijaintikansio johon NetBeans luo projektille oman alikansion. Lisäksi valitaan, onko projekti pääprojekti (käynnistyy itsenäisenä) sekä luodaanko ja minkä niminen pääluokka. Paketin nimen jäljessä on pääluokan nimi Main pisteellä erotettuna. Mielestäni se kannattaa vaihtaa ainakin aluksi, koska muuten pääluokka Main ja pääprojektin proseduuri main sekoittuvat

12 Java perusteet Sivu 12(146) Työvälineet aloittelijalla helposti keskenään. Huomaa: Projektin nimi kannattaa kirjoittaa isolla alkukirjaimella, automatiikka tekee siitä pienellä alkavan paketin nimen. Kirjoitusasu auttaa erottamaan milloin viitataan projektiin, milloin pakettiin. Luokkien nimet kirjoitetaan isolla alkukirjaimella vakiintuneen tavan mukaan. Luokan luominen Uuden luokan saa luotua napsauttamalla projektin tai pakkauksen nimeä hiiren 2. napilla. Pikavalikon New kohdassa on myös Java Class. Uudelle luokalle annetaan dialogissa olevat määritteet. Luokalle nimen kirjoittaminen riittää, jos napsautit pakkausta, projektin kohdalla myös pakkauksen nimi annettava. Aluksi sijoita kaikki luokat samaan pakkaukseen, kunnes Javan näkyvyyssäännöt tulevat tutuiksi. Muista: luokka isolla alkukirjaimella. Avustavia toimintoja Kehittyneemmässä käytössä kannattaa käyttää Refactor valikon apuvälineitä. Niillä voidaan mm: turvallisesti uudelleen nimetä eri kohteita luoda valitusta koodista uusi metodi (Extract method) muuttaa metodien parametrejä kapseloida eli piilottaa muuttujia ja luoda niille automaattisesti Get it ja Set it (Encapsulate Fields) siirtää muuttujia ja luokkia tasosta toiseen (Pull Push Move Convert ) luoda liittymiä ja kantaluokkia (Extract Interface + Superclass) poistaa kohteita turvallisesti Myös Source valikko sisältää avustavaa automatiikkaa: Metodin ylikirjoitus (Override ) Try-Catch lohkon luonti valinnan ympärille Sisennykset (Shift ) Kommenttilohkojen lisäys tai poisto Komentoriviargumentit Konsolisovelluksien testausta nopeuttaa parametrien syöttäminen etukäteen, jolloin ei IDE:stä tarvitse poistua. Tämä toiminto on NetBeans 5.5 IDE:ssä kohdassa File (projektin nimi) properties Run Arguments. Sovelluksen kehotteeseen voidaan vastaus antaa suoraan Input/Output ikkunaan komentorivi-ikkunan tavoin.

13 Java perusteet Sivu 13(146) Työvälineet Uuden luokan määrittäminen käynnistäväksi eli pääluokaksi (main) Projektia määriteltäessä joku luokka määritellään pääluokaksi, jolla sovellus käynnistetään. Haluttaessa voidaan jälkikäteen lisätty uusi luokka määritellä pääluokaksi seuraavasti: Lisää uuteen luokkaan main() proseduuri, pelkät otsikot ja tyhjät sulut riittävät, siis public static void main(string[] args) Napsauta hiiren 2. napilla projekti-ikkunasta projektia (kahvikuppi kuvake) ja pikavalikosta Properties Avaa Run haara valintaikkunan puurakenteesta vasemmalla ja kirjoita tai mieluummin hae browse painikkeella ja klikaten uuden pääluokan nimi, lopuksi OK. Virheiden jäljitys eli debuggaus Vähänkin monimutkaisemmassa koodissa virheiden jäljitystä voidaan helpottaa debuggaamalla koodia. NetBeans tekee sen käynnistettäessä sovellusta komennolla Run Debug Main Project. Vaiheet ovat usein seuraavat: 1. aseta keskeytyskohta (breakpoint) sille riville, jonka toimintaa haluat valvoa. Breakpoint asetetaan useimmissa editoreissa koodi-ikkunan vasemman reunan tai sarakkeen napsautuksella, jolloin rivi muuttuu värilliseksi, näin myös NetBeans ssa. 2. Suorita sovellus Run Debug Main Project (F5). Ajo keskeytyy keskeytyskohtaan odottamaan testaajan toimia. Rivin vasemmalla oleva nuoli osoittaa seuraavaksi suoritettavan rivin. Riveittäin voidaan sovellusta ajaa komennolla F7 tai F8. 3. Pysäytyksen ollessa päällä (ilmoitus tilarivillä), voidaan näkyvyysalueella olevien muuttujien arvoja vilkaista pysäyttämällä hiiri muuttujanimen päälle, jolloin työkaluvihje kertoo muuttujan tilan pienen viiveen jälkeen (kuvassa) 4. Hiukan järeämpiä keinoja on asettaa muuttujat pysyvään valvontaan New Watch komennolla tai manipuloimalla muuttujaa kesken suorituksen (Evaluate Expression) 5. Napsauttamalla vasenta saraketta uudelleen keskeytyskohta poistuu. Hiiren 2.napilla breakpoint merkistä saa pikavalikon, josta voi mm. asettaa ehdollisia keskeytyskohtia ja näyttää rivien numerot.

14 Ohjelma perusosat Java perusteet Sivu 14(146) Ohjelman perusosat Yleistä Java-kielestä Yleiset ohjelman perusosat Kielioppi eli syntaksi Tunnisteet Kommentit Yleistä Java-kielestä Java-ohjelmointikielen on kehittänyt Sun Microsystems Inc -niminen yhtiö, jonka tavaramerkkejä mm. Java ja JDK ovat. Java muistuttaa ulkoasultaan varsin paljon C++ -ohjelmointikieltä, joten tämän kielen osaamisesta on hyötyä Java-kielen opiskelussa. Yleiset ohjelman perusosat Tietokoneohjelma koostuu yleisistä, ohjelmointikielestä riippumattomista perusosista, joita ovat mm. tunnisteet kommentit tietotyypit vakiot muuttujat lausekkeet operaattorit operandit lauseet lohkot eli kootut lauseet aliohjelmat luokat ja oliot (olio-ohjelmoinnissa). Opiskelemme näitä ohjelmien perusosia tällä ja seuraavilla sivuilla. Tällä sivulla on kaksi ensimmäistä luettelon kohtaa: tunnisteet ja kommentit. Kielioppi eli syntaksi Kuten puhutuilla kielillä, myös ohjelmointikielillä on oma kielioppinsa (lauseoppinsa), jonka mukaisesti ohjelmointikielen kääntäjät kääntävät lähdekielistä ohjelmaa konekielelle. Kieliopista käytetään nimitystä syntaksi (syntax). Java-kielen kieliopista saat yleisen käsityksen yksinkertaisen esimerkkiohjelman avulla mm. osoitteesta

15 Java-kielen oppimateriaali Java perusteet Sivu 15(146) Ohjelman perusosat Sunin oppimateriaali: Trail: Learning the Java Language: Table of Contents -sivulla on Java-kielen oppimateriaalin sisällysluettelo, josta saat yleiskäsityksen Java-kielen pääkohdista. Tunnisteet Sunin oppimateriaali: Trail: Learning the Java Language Lesson: Language Basics Variable Names Tunnisteita (identifier) käytetään yksilöimään erilaisia ohjelman elementtejä, kuten muuttujia, olioita, metodeita ja luokkia. Tunniste on siis yksilöllinen nimi näille kielten elementeille. Monissa ohjelmointikielissä on samankaltaiset tunnisteiden säännöt: C-kielessä, C++ -kielessä ja Java-kielessä on kaikissa samat tunnisteiden nimeämissäännöt. nimi pitää alkaa englanninkielen kirjaimella (a - z) älä käytä muita kuin englanninkielen aakkosia ja numeroita nimissä, siis Ika ei Ikä nimi pitää kirjoittaa yhtenä sanana, jos halutaan kaksiosainen nimi, sanat kirjoitetaan kiinni toisiinsa tai yhdistellään alaviivalla, esimerkiksi PalkkaKausi tai Laske_Korko Java-, C- ja C++-kielissä isot ja pienet kirjaimet erotellaan toisistaan, siis PalkkaKausi on kääntäjän mielestä eri asia kuin Palkkakausi Muita oppimateriaalilinkkejä: Harjoituksia aiheeseen löytyy oppimateriaalin sivulta Questions and Exercises: Variables. Nimeämiskäytäntöjä Tunnisteiden nimeämisessä on syytä käyttää jotakin johdonmukaista tapaa. Ohjelmointiryhmällä tai jopa ohjelmointiyrityksellä saattaa olla oma standardi nimeämiseen. Sun-yhtiö, joka on Java-kielen kehittäjä, käyttää useasta sanasta koostuvassa tunnisteessa kirjoitustapaa, jossa ensimmäinen sana alkaa pienellä kirjaimella ja muut samat isoilla alkukirjaimilla, esimerkiksi paramstring ja getverticaltextposition. Eräs Java-kielen ohjelmointityyliopas on osoitteessa ja siinä on mm. nimeämissuosituksia. Varatut sanat Tunnisteina ei saa käyttää kielen syntaksiin kuuluvia sanoja tai merkintätapoja. Näistä ns. varatuista sanoista on ohjelmointioppaissa erilliset luettelot. Koska varatut sanat ovat yleensä englanninkielen sanoja, ei niistä ole suomalaiselle ohjelmoijalle yleensä suurtakaan harmia (ellei ohjelmoija käytä syystä tai toisesta englanninkielisiä tunnisteita).

16 Java perusteet Sivu 16(146) Ohjelman perusosat Java-kielen varatut sanat on lueteltu osoitteessa Kommentit Ihmisen ei ole aina ole helppoa saada selvää tietokoneohjelmista, varsinkaan toisen ihmisen kirjoittamasta ohjelmasta. Siksi hyvin kirjoitettu ohjelma on riittävästi kommentoitu. Kommentilla tarkoitetaan tietokoneohjelmassa sellaista ohjelman kohtaa, joka on tarkoitettu vain ihmisen luettavaksi. Ohjelmointikielen kääntäjä ohittaa kommentin. Eri ohjelmointikielissä on omat tapansa aloittaa ja päättää kommentti. C- C++- ja Java-kielessä on kaksi tapaa aloittaa kommentti: // rivin loppuosa on kommenttia /* tämä kommentti saattaa olla monirivinen ja se päättyy merkkeihin */ Kommentteja kannattaa sijoittaa lähdeohjelmaan kaikkiin epäselviin tai vaikeisiin paikkoihin. Lisäksi yleensä jokaisen lähdeohjelman alussa on kommenttirivejä, joissa kerrotaan mm. seuraavia seikkoja: sovelluksen nimi moduulin (lähdeohjelman) nimi ohjelmoijan nimi ohjelmointipäivämäärä Esimerkkejä /* * Sovellus: Esimerkkisovellus * Moduuli: Korko.java * Tehtävä: Koron laskeminen * Ohjelmoija: Matti Jaakkola * Päivämäärä: */ Esimerkissä on käytetty tähteä kommenttirivien alussa. Tämä auttaa lukijaa havaitsemaan kommenttilohkon rivit. Ohjelmointikielen kielioppi (syntaksi ei vaadi tähteä. Varsinainen kommentin alku ja loppu on merkitty esimerkkiin punaisella värillä. Usein kommentoidaan myös yksittäinen rivi. Tällöin helpointa on käyttää rivin loppuosan kommentointia // -merkeillä: int paaoma = 0; // Pääoma Linkki: Muista ohjelman perusosia käsittelemme seuraavilla sivuilla.

17 Java perusteet Sivu 17(146) Ohjelman perusosat, harjoituksia Ohjelman perusosat, harjoituksia Harjoitus 1 Mitkä seuraavista tunnisteista ovat Java-kielen tunnistesääntöjen mukaiset? Mikä on vialla, jos tunniste ei ole sääntöjen mukainen? 1. loppusumma 2. Ikäryhmä 3. yks hinta 4. 4kausi 5. x 6. laske_tulos 7. piirrä-kuva 8. this Nimeä mielestäsi sopivilla tunnisteilla seuraavat asiat: 1. välisumma 2. kuukauden palkat 3. pienin luku 4. hae osaston nimi 5. laske henkilön palkka 6. tuotteen yksikköhinta 7. henkilötunnus Harjoitus 2 1. Vastaa omin sanoin seuraaviin kysymyksiin: 2. Mihin tunnisteita käytetään? 3. Mihin kommentteja käytetään? 4. Mitä ovat varatut sanat? 5. Montako varattua sanaa on Java2 -kielessä? 6. Mitä tarkoitetaan syntaksilla?

18 Tieto muistissa Java perusteet Sivu 18(146) Tieto muistissa Muistipaikat Tietotyypit Vakiot Muuttujat Tietomuodon muuntaminen (konversio) Lukujen muotoilu Muistipaikat Sunin oppimateriaali: Trail: Learning the Java Language Lesson: Language Basics Expressions, Statements, and Blocks Kun ihminen käsittelee tietoja lomakkeiden avulla, varataan kullekin tiedolle tietty paikka. Lomakkeella saattaa olla paikka henkilötunnukselle, nimelle, osoitteelle, puhelinnumerolle jne. Tiedolla on siis paikka, johon se merkitään eli tiedolle on varattu muistipaikka lomakkeelle. Ohjelmissa käsiteltäville tiedolle (kuten muuttujille ja olioille) täytyy varata myös muistitilaa, johon tieto sijoitetaan. Tiedon varaus tehdään määrittelemällä ohjelmaan muuttujia, vakioita ja olioita. Näiden määrittelyä käsitellään myöhemmin tässä sivustossa. Tietotyypit Sunin oppimateriaali: Trail: Learning the Java Language Lesson: Language Basics Expressions, Statements, and Blocks Ihminen osaa käsitellä tietoja eri muodoissaan, kuten tekstinä, lukuina, kuvina tai äänenä. Tietokoneohjelmakin osaa käsitellä erimuotoisia tietoja. Tietokoneen ja ihmisen tapa käsitellä ja tallettaa tietoja on hyvin toisistaan poikkeava. Ihminen käsittelee tekstiä, lukuja ja kuvia näköaistillaan ja ääniä kuuloaistillaan. Kukaan ei lähemmin tiedä, miten ihminen näitä säilyttää muistissaan. Bitit ja tavut Tietokone osaa käsitellä periaatteessa vain ykkösiä ja nollia. Binäärinen lukujärjestelmä koostuu näistä merkeistä. Sana bi tarkoittaa juuri kahta. Yksi bitti on pienin tietokoneen tietoyksikkö. Bitin arvo voi siis olla nolla tai yksi. Jonkin asian päällä tai pois oleminen voidaan esittää bitillä (valo palaa lampussa tai ei pala).

19 Java perusteet Sivu 19(146) Tieto muistissa Useamman kuin kahden vaihtoehdon esittämiseen tarvitaankin sitten useita bittejä. Niinpä 8 bittiä muodostaakin tavun (byte), joka on bitistä seuraava suurempi määrä tietoa tietokoneessa. Muun muassa tietokoneen muisti ilmoitetaan tavuina (nykyisin miljoonina tavuina eli megatavuina). Mikro- ja minitietokoneissa usein käytetty ns. ASCII-koodijärjestelmä käyttää 7 tai 8 bittiä eri merkkien esittämiseen. Kahdeksalla bitillä voidaan esittää 256 vaihtoehtoa (luvut 0-255). ASCIIkoodijärjestelmässä kullekin merkille on varattu tietty luku. Näin tietokone näkee merkitkin vain järjestyslukuina. Luvut Tietokone oli alun perin automaattinen laskukone (englanniksi computer). Siksi tietokoneelle on oleellista pystyä käsittelemään erilaisia lukuja. Kun ihminen käsittelee lukuja, hän voi käsitellä sekaisin kokonaislukuja ja desimaalilukuja (jopa murtolukuja). Tietokone ei tähän ilman muuta kykene, vaan tietokoneessa pitää olla erikseen tietotyypit eri lukutyyppejä varten, koska eri tyypit varaavat muistia eri tavoilla.. Niinpä ohjelmoija joutuu usein ratkaisemaan, minkä kokoisia lukuja ohjelmassa tullaan käsittelemään ja varaamaan tämän mukaisia muuttujia ja vakioita ohjelmaansa. Kokonaisluvut Yksinkertaisinta on käsitellä pelkästään kokonaislukuja. Näiden aritmetiikassa tietokone käyttää binäärilukuaritmetiikkaa, jossa siis lasketaan pelkästään nollilla ja ykkösillä. Esimerkki kokonaislukulaskennasta: Liukuluvut Kokonaislukujen lisäksi tietokone pystyy laskemaan liukuluvuilla (reaaliluvuilla). Näissä laskutoimituksissa on aina tietty määrä merkitseviä numeroita, koska liukuluvut ovat vain likiarvoja. Liukuluvuissa voidaan käyttää desimaaleja. Englanninkielisissä maissa käytetään desimaalierottimena pistettä, ei pilkkua. Siksi myös eri tietokonekielissä yleensä käytetään desimaalipistettä. Esimerkki liukulukulaskennasta: 12.5 * 12.5 * Linkkejä Java-kielen tietotyyppeihin: Tietomuodoille on eri ohjelmointikielissä varattu nimitykset (=varattuja sanoja). Lukutyyppien sekakäyttö Ohjelmissa erilaisia lukutietotyyppejä voidaan käyttää myös samassa lausekkeessa: 7 * 7 *

20 Java perusteet Sivu 20(146) Tieto muistissa Tämän lausekkeen lopputulostyyppi on liukulukutyyppi, koska se on mutkikkaampi kuin kokonaislukutyyppi. Hyvä nyrkkisääntö on: suurimman muistimäärän tarvitseva tieto on lausekkeen lopputuloksen tietotyyppi. Merkkitietotyyppi Yksittäisten merkkien käsittelyyn on Java-kielessä char-tietotyyppi. Tämä on tyyppi, joka vie tilaa kaksi tavua (16 bittiä), koska Java-kielen merkkityyppi on ns. Unicode-järjestelmän mukainen (siis ei käytä ASCII-koodeja, kuten C- ja C++ -kielet). Unicode-järjestelmän kooditaulukot löytyvät osoitteesta Totuusarvotietotyyppi Monissa tilanteissa riittää kaksi mahdollisuutta: jokin asia voi olla totta tai ei totta. Tällaista tietotyyppiä nimitetään totuusarvo- eli Boolean-tietotyypiksi (Boolean data type), jolla voi olla kaksi arvoa true (tosi) false (epätosi) C-kielen tavoin numeerinen lauseke voidaan tulkita lausekkeissa Boolean arvona: nolla false, kaikki nollasta poikkeavat: true. Rakenteiset tietotyypit Rakenteisiksi tietotyypeiksi nimitetään perustietotyypeistä koostettuja tietotyyppejä, kuten merkkijonoja ja taulukoita. Ne on toteutettu Java-kielessä luokkina ja käsittelemme niitä myöhemmin. Vakiot (literaalit) Sunin oppimateriaali: Trail: Learning the Java Language Lesson: Language Basics Expressions, Statements, and Blocks Vakiot esittävät pysyvää tietoa ohjelmissa. Vakioita voi käyttää lausekkeissa ja muuttujien asetuslauseissa. Kokonaislukuvakiot Erilaisia lukuvakioita olemme nähneet jo tämän sivun alkupuolella. Kokonaislukuvakiossa voi myös olla etumerkki + tai -. Seuraavasta taulukosta näet, miten eripituisia kokonaislukuvakioita esitetään Tietotyyppi Loppumerkki Koko tavuina Esimerkki byte Muoto muistissa (väli tässä vain helpottaa lukemista)

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

KAAVAT. Sisällysluettelo

KAAVAT. Sisällysluettelo Excel 2013 Kaavat Sisällysluettelo KAAVAT KAAVAT... 1 Kaavan tekeminen... 2 Kaavan tekeminen osoittamalla... 2 Kaavan kopioiminen... 3 Kaavan kirjoittaminen... 3 Summa-funktion lisääminen... 4 Suorat eli

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

Lisätiedot

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

Lisätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä Anne Benson/Tanja Bergius Opintojakson ict1td002 käyttöön Sivu 1 / 13 Eclipse 3.2 pikku opas versio 1.0 Ohjeen sisältö: Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Lisätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if--lauseet. Orpo. Valintaa toisin: switch-lause. 11.2 Valintarakenteet Valintarakenteilla ilmaistaan formaalisti, kuinka algoritmin suoritus voi haarautua

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public) Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

13. Hyvä ohjelmointitapa (osa 1) 13.1

13. Hyvä ohjelmointitapa (osa 1) 13.1 13. Hyvä ohjelmointitapa (osa 1) 13.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen tarvitaan ylläpitoa. Jotta koodin muuttaminen on mahdollista, on sen oltava myös muidenkin kuin

Lisätiedot

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva Sisällys 6. Muuttujat ja Java Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

6. Muuttujat ja Java 6.1

6. Muuttujat ja Java 6.1 6. Muuttujat ja Java 6.1 Sisällys Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit: Kokonais- ja liukuluvut, merkit, totuusarvot. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0 CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit. 3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen

Lisätiedot

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

5/20: Algoritmirakenteita III

5/20: Algoritmirakenteita III Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. PHP-kielen perusteet Käytä lähteenä PHP:n virallista manuaalia http://www.php.net/docs.php tai http://www.hudzilla.org/php (siirry Paul Hudsonin verkkokirjaan). Lisää materiaalia suomeksi esimerkiksi ohjelmointiputkan

Lisätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

Lisätiedot