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, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

17. Ohjelmoinnin tekniikkaa 17.1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

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

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

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

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

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

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

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

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

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Ohjelmointi 1 C#, kevät 2013, 2. tentti ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla

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

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

Lisätiedot

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014 PHP-kielen perusteet 3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. Heredoc on ominaisuus PHP-koodaamisessa, jolla voidaan kirjoittaa pitkiä tekstejä

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

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

4. Lausekielinen ohjelmointi 4.1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Sisällys. 15. Lohkot. Lohkot. Lohkot

Sisällys. 15. Lohkot. Lohkot. Lohkot Sisällys 15. Lohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.1 15.2 Lohkot Aaltosulkeet

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut

Lisätiedot

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

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. boolean- ja char-tyypit. 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. boolean- ja char-tyypit. Tyyppien yhteensopivuus. Viitetietotyypit ja merkkijonotietotyyppi

Lisätiedot

Ohjelmoinnin perusteet, kurssikoe

Ohjelmoinnin perusteet, kurssikoe Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

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

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

Lisätiedot

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

Ohjelmointi 1 C#, kevät 2013,

Ohjelmointi 1 C#, kevät 2013, Ohjelmointi 1 C#, kevät 2013, 19.4.2013 (English versions of the questions can be requested from the supervisor. Englanninkieliset kysymykset saa pyytämällä tentin valvojalta.) Tentti (yliopisto opiskelijat)

Lisätiedot

C++ Ohjelmoijan käsikirja. Johdanto

C++ Ohjelmoijan käsikirja. Johdanto Johdanto C++ Ohjelmoijan käsikirja Johdanto Tervetuloa Inside C++-kirjan pariin. Tämä on opaskirja standardi C++:n käyttöön. Käsittelemme kirjassa kaikki syntaksin, kieliopin, olio-ohjelmoinnin ja standardikirjastojen

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Taulukot, silmukat ja muut joka koodin pikku veijarit

Taulukot, silmukat ja muut joka koodin pikku veijarit Taulukot, silmukat ja muut joka koodin pikku veijarit Janne Käki 7.9.6 MERKKI liikenne jono METRI para laku MOGARI ATRI psyki buutti ESINE pelottelu ellistäminen runsauden kuono TUNTI SARVI kusi assistentti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 23.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 23.2.2009 1 / 44 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta

Lisätiedot

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Syntaksilomake (22.4.2007) C-kielen standardikirjaston funktioita gets(merkkijono); scanf("formaatti", &muuttuja1,..., &muuttujan); sscanf(merkkijono,

Lisätiedot

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

Muuttujat ja kontrolli. Ville Sundberg

Muuttujat ja kontrolli. Ville Sundberg Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee

Lisätiedot

Digitaalisen median tekniikat JavaScript Harri Laine 1

Digitaalisen median tekniikat JavaScript Harri Laine 1 Digitaalisen median tekniikat JavaScript 5.4.2004 Harri Laine 1 JavaScript ent. LiveScript (Netscape), muunnelma JScript (Microsoft) yhteensopivat yksinkertaisissa asioissa, aiemmin yhteensopimattomat

Lisätiedot

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki PERL TIE-20306 Principles of Programming Languages Ryhmä 4: Joonas Lång & Jasmin Laitamäki 1. Johdanto Perl on ohjelmointikielten perhe, johon kuuluu Perl 5 ja Perl 6. Kielet ovat kuitenkin erilliset ohjelmointikielet

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

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

Operaattorin ylikuormitus ja käyttäjän muunnokset

Operaattorin ylikuormitus ja käyttäjän muunnokset 13 Operaattorin ylikuormitus ja käyttäjän muunnokset Luvussa 7, "Ominaisuudet, taulukot ja indeksoijat," opit, miten luokan yhteydessä käytetään ohjelmallisesti []-operaattoria, jolloin objektia voidaan

Lisätiedot

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

Lisätiedot