Harjoitustyö. 1. Johdanto Tehtävä

Koko: px
Aloita esitys sivulta:

Download "Harjoitustyö. 1. Johdanto. 1.1. Tehtävä"

Transkriptio

1 1. Johdanto 1.1. Tehtävä Kaukana, monen valovuoden päässä täältä, sijaitsee planeetta, jolla on käynnistynyt alkeellinen elämä. Tehtävänäsi on toteuttaa Java-kielellä ohjelma, joka simuloi planeetan alkulimassa eläviä lötköjä. Lötköistä tunnetaan koko (> 0) ja kahdeksan merkin mittaimen perimä, joka esitetään suuraakkoston kirjaimilla A H. Lötköt ovat eriytyneet kahdeksi lajiksi, jotka ovat klimpit ja pläntit. Klimpille ominainen piirre on väri ja plänteille ominaista on muoto. Klimppi voi olla punainen tai sininen. Pläntti on joko soikea tai jotain muuta muotoa. Lötköt yksilöidään nollasta alkavan indeksiarvon avulla. Klimpit katsotaan keskenään vertailtaessa samoiksi, jos niiden värit ovat samat. Pläntit ovat samoja, jos ne ovat samanmuotoisia. Erilajiset lötköt ovat aina erilaisia. Kaikkia lötköjä voidaan vertailla keskenään niiden koon perusteella. Lötköt voivat liikkua alkulimassa paikasta toiseen. Paikat esitetään kaksiulotteisessa suorakulmaisessa koordinaatistossa. Lötköt majailevat aina koordinaatiston I-neljänneksessä, johon lasketaan tässä tehtävässä kuuluvaksi myös origo. Lötkön paikka (x, y) esitetään aina kokonaisluvuilla. Simulaation käyttäjä määrää koordinaattien suurimmat arvot x max ja y max, jolloin x [0, x max ] ja y [0, y max ]. Lötköjen elinalue on siten suorakulmion muotoinen osa alkulimaa. Jos valitaan x max = 5 ja y max = 3, lötköille sallittuja paikkoja ovat kuvassa 1 pisteellä esitetyt paikat. Yhdessä koordinaatiston paikassa (x, y) voi olla nolla, yksi tai useampia lötköjä. Lötköjen määrää tietyssä paikassa tai koko elinalueella ei ole rajoitettu. Kuva 1: Lötköille sallitut paikat, kun x- ja y-koordinaattien suurimmat arvot ovat 5 ja 3. Yksittäinen lötkö voidaan siirtää tiettyyn paikkaan ja kaikkia lötköjä voidaan käskeä liikkumaan satunnaisesti yhden paikan verran. Satunnaisessa liikkumisessa lötkö voi jäädä paikalleen tai siirtyä johonkin nykyisen paikan naapuripaikoista, mikäli paikka kuuluu elinalueeseen. Naapuripaikat ovat välittömästi nykyisen paikan (x, y) ympärillä olevat paikat (x, y + 1), (x + 1, y + 1), (x + 1, y), (x + 1, y - 1), (x, y - 1), (x - 1, y - 1), (x - 1, y) ja (x - 1, y + 1). Lötkön satunnaiset paikat tuotetaan apuluokan avulla (luku 4.5). Simulaatiossa voidaan listata kaikki alkuliman lötköt tai tietyssä paikassa sijaitsevat lötköt. Simulaattoria voidaan käskeä myös listaamaan indeksiarvolla valitun lötkön kanssa samanlaiset lötköt, joihin lasketaan myös valittu lötkö itse. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 1 / 17

2 Lötköt voivat lisääntyä, jos paikassa on sopivaa seuraa. Klimpit lisääntyvät suvullisesti. Paikassa olevista klimpeistä valitaan ensimmäinen samoiksi katsottavien klimppien pari. Tämä pari tuottaa yhden jälkeläisen. Jälkeläisen paino on vanhempien painojen keskiarvon kokonaisosa ja perimä koostuu ensimmäisen vanhemman neljästä ensimmäisestä ja toisen vanhemman neljästä viimeisestä perimämerkistä. Jälkeläisen väri eri kuin vanhempien väri. Jos vanhemmat ovat punaisia, niin jälkeläinen on sininen ja päinvastoin. Pläntit lisääntyvät suvuttomasti. Paikan suurin pläntti lisääntyy, jos paikassa ei ole jo samanlaista plänttiä. Lisääntyvä pläntti syväkopioi itsensä, jotta vanhempi ja jälkeläinen eivät jakaisi samaa perimää, puolittaa jälkeläisen painon siten, että jälkeläisen paino on osamäärän kokonaisosa, kun vanhemman paino jaetaan kahdella ja kääntää jälkeläisen perimän merkit. Lötköt on mahdollista säilöä tekstitiedostoon ja lukea siitä keskusmuistiin. Lötköt asetetaan lataamisen yhteydessä elinalueelta satunnaisesti valittuihin paikkoihin. Paikat tuotetaan apuluokkaa (luku 4.5) käyttäen. Apuluokan alustamiseen käytettävä siemenluku ([-99, 999]) ja elinalueen suurimmat x- ja y-koordinaattien arvot luetaan tiedostosta ja tallennetaan tiedostoon. Ohjelma loppuu käyttäjän antamalla komennolla Työn organisointi Harjoitustyö tehdään yhden hengen ryhmissä. Muiden kurssilaisten kanssa voi vaihtaa ideoita, mutta koodin kopiointi ei ole sallittua. Samoin esimerkiksi muualta kuin kurssin verkkosivulta löytyneen koodin kopiointi omaan ohjelmaan on kielletty Pakollisuus ja korvaavuudet Harjoitustyö on pakollinen. Ainoa poikkeus tähän sääntöön ovat harjoitustyön korvanneet opiskelijat. Harjoitustyön voi korvata A) muiden oppilaitosten opinnoilla, B) edellisellä Olio-ohjelmoinnin perusteet -kurssilla hyväksytyllä harjoitustyöllä tai C) edellisten kohtien tapaisella painavalla syyllä. Kohdan A perusteella on annettu kaikki pyydetyt korvaavuudet. Kohdan B perusteella annettavista harjoitustyökorvaavuuksista on tarkempia tietoja kurssin kotisivuilla. B-kohdan osalta on tärkeintä muistaa, että harjoitustyö korvautuu vain, jos ottaa yhteyttä kurssin vastuuopettajaan. Tähän mennessä tulleet yhteydenotot ja sopimukset on kirjattu ylös eikä uusia yhteydenottoja näiltä osin tarvita. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 2 / 17

3 2. Lötköjen säilöminen 2.1. Tietorakenne Ohjelman tietorakenteena käytetään luennoilla ja harjoituksissa käsitellystä LinkitettyLista-luokasta perittyä OmaLista-luokkaa (luku 4.3). Lötköt säilötään ohjelman rakenteesta riippuen joko yhdelle tai useammalle listalle. Harjoitustyö suositellaan ratkaistavaksi siten, että kaikki lötköt ovat yhdellä listalla. Ongelmallisin kohta tässä ratkaisussa on lötköjen lisääntyminen, jossa tarvitaan erilaisia apulistoja (luku 4.3). Eräs vaihtoehtoinen toteutus on liittää kuhunkin paikkaan erillinen lista, jossa on kyseisessä paikassa olevat lötköt. Tämä lähestymistapa on kuitenkin harjoitustyön määrittelyn puitteissa monimutkainen, koska useita listoja käytettäessä lötköt täytyy pitää jollain mekanismilla samassa järjestyksessä kuin malliratkaisussa, jossa käytetään yhtä listaa. Huomaa, että fi.uta.csjola.oope.lista-pakkauksen sisältöä ei saa muuttaa millään tavoin. Älä varsinkaan lisää lötköjen tietoja attribuuteiksi listan Solmu-luokkaan. Lötköjen on oltava solmujen tietoalkioina, jotta lista olisi edelleen yleiskäyttöinen. Lista-pakkaus on saatavilla kurssin kotisivujen Koodit-kohdasta. Javan API:n tietorakenteita (esimerkiksi ArrayList-luokka) saa käyttää vain pienissä avustavissa tehtävissä. Kysy neuvoa harjoitustyön ohjaajalta, mikäli olet epätietoinen tietorakenteiden käyttöön liittyvissä kysymyksissä Tekstitiedosto Harjoitustyössä tutustutaan laajemmin tiedostojen käsittelyyn. Tiedostojen avulla tietoja voidaan säilöä tietokoneen keskusmuistia pysyvämmin. Ohjelma ja sen tiedot ovat olemassa tietokoneen keskusmuistissa vain niin kauan kuin koneessa on virta päällä, mutta massamuistilaitteelle luoduissa tiedostoissa ohjelma ja tiedot ovat melko hyvässä tallessa seuraavaa käyttökertaa varten. Tiedoston sisältö jaetaan usein tietueiksi ja tietueet edelleen kentiksi. Kenttä sisältää yksittäisen tiedon, jonka esittämiseen käytetään yhtä tai useampaa merkkiä. Huomaa, että tiedostot ovat eri asia kuin tietokantajärjestelmä. Java tarjoaa valmiit toiminnot tiedostojen käsittelyyn, jolloin tiedostoja voidaan lukea ja kirjoittaa ilman erillistä ohjelmistoa. Tiedostot soveltuvat pienimuotoiseen ja nopeaan tietojenkäsittelyyn, kun taas tietokannat ovat omimmillaan suurten tietomäärien järjestelmällistä hallintaa vaativissa tehtävissä. Javan voi liittää myös tietokantaan. Tekstitiedostojen lukeminen ja tallentaminen on esitelty Lausekielinen ohjelmointi -kurssin luentomateriaalissa [1]. Aihetta käsiteltiin luennoilla nopeasti. Harjoitustyössä tarvittava tiedostojen käsittely onnistuu onneksi luentomateriaalin esimerkkejä suoraviivaisesti soveltamalla. Löydät tarvittaessa lisätietoja verkosta ja useimmista Java-kieltä käsittelevistä kirjoista. Esimerkiksi kurssikirjallisuuteen kuluvassa lähteessä [2] on annettu perusteellinen selvitys tiedostoista ja Javakielestä. Huomaa, että tuoreimmissa lähteissä tiedostoja käsitellään Javan uusimpien versioiden ( 1.5) mahdollistamin tavoin. Scanner-luokka on hyödyllinen myös tiedostonkäsittelyssä. (Katso neljännen viikkoharjoituksen kolmas tehtävä.) Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 3 / 17

4 Harjoitustyössä tiedostoon tallennetaan apuluokan siemenluku, lötköjen elinalueen rajat ja listan lötköjen tiedot. Tiedoston otsikkotietue koostuu kolmesta kentästä, joissa on siemenluku sekä x- ja y-koordinaattien maksimiarvot. Kukin lötkötietue sisältää omat kentät lötkön lajille, koolle, perimälle ja lajin omalle tiedolle. Lötköjen keskinäinen järjestys säilyy tiedostossa. Listan ensimmäisen lötkön tiedot muodostavat ensimmäisen lötkötietueen ja viimeisen lötkön tiedot tallentuvat viimeiseksi lötkötietueeksi. Lötkön tiedot tallennetaan lotkot.txt-nimiseen tiedostostoon. Tiedot esitetään siten, että yhdellä tiedoston rivillä on aina yksi tietue. Otsikkotietue on tiedoston ensimmäisellä rivillä. Tiedoston loput rivit sisältävät lötköjen tietueet. Otsikkotietueen kenttien arvot esitetään kokonaislukuina. Ohjelmassa näiden kenttien tiedot ovat int-tyyppisiä. Lötkötietueen kolme ensimmäistä kenttää ovat kaikille lötköille yhteisiä: 1. Lötkön laji. Tiedostossa jompikumpi merkkijonoista "Klimppi" tai "Plantti". Ohjelmassa lötköolion tyyppi. 2. Lötkön koko. Tiedostosta kokonaisluku, joka on ohjelmassa int-tyyppinen luku. 3. Lötkön perimä. Tiedostossa merkkijono, ohjelmassa StringBuildertyyppinen merkkijono. Lötkötietueen neljännen kentän sisältö riippuu lötkön lajista. Klimpin väri esitetään merkkijonona "P", jos kyseessä on punainen klimppi ja merkkijonona "S", jos klimppi on sininen. Väritieto esitetään ohjelmassa merkkityyppinä (char). Tieto siitä onko pläntti soikea vai ei on tiedostossa joko merkkijono "true" tai "false". Ohjelmassa tieto on boolean-tyyppinen. Arvo on tosi ("true" tai true), jos pläntin muoto on soikea. Kukin kenttä on kahdeksan merkin mittainen. Kentän arvo tallentuu kentän vasempaan reunaan ja kentän käyttämättä jäävä osuus täytetään arvon perään lisättävillä välilyönneillä. Jos lötkön laji on esimerkiksi "Klimppi", on lajin kentässä merkkijono "Klimppi ", jossa merkkijonon loppuun lisätty välilyönti tekee kentästä määrämittaisen. Kentät erotetaan toisistaan ja rivi päätetään yhdellä putkimerkillä (' '). Kuvassa 2 on esitetty tiedosto, jossa on otsikkotietojen lisäksi kolmen lötkön tiedot. Ensimmäisellä rivillä (tietueessa) määritellään, että siemenluku on 42 (ensimmäinen kenttä), suurin sallittu x-koordinaatti on 5 (toinen kenttä) ja suurin sallittu y-koordinaatti on 3 (kolmas kenttä). Toisella rivillä on klimppi, jonka koko on 10, perimä on "AAAAAAAA" ja jonka värin on punainen ('P'). Kolmannen rivin klimpin koko, perimä ja väri ovat 20, "BBBBBBBB" ja punainen ('P'). Viimeisellä rivillä on pläntti. Sen koko on 100 ja perimä "ABCDEFGH". Tämä pläntti ei ole soikea (false) Klimppi 10 AAAAAAAA P Klimppi 20 BBBBBBBB P Plantti 100 ABCDEFGH false Kuva 2: Tiedoston lotkot.txt sisältö. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 4 / 17

5 Testeissä käytettävien tiedostojen sisällön oletetaan olevan aina kunnossa. Tietoja on oikea määrä, ne ovat oikeassa järjestyksessä, oikean tyyppisiä ja arvoiltaan laillisia. Tiedostossa on aina otsikkotietue ja vähintään yksi lötkötietue. Kurssin kotisivuilla julkaistaan lisää esimerkkitiedostoja. Vinkki: Tietuerivin pilkkominen kentiksi onnistuu String-luokan split-metodilla [1]. Kentät voidaan muuttaa kokonaisluvuiksi ja totuusarvoiksi kääreluokkien metodeilla. Esimerkiksi koko saadaan int-tyyppiseksi arvoksi Integer-luokan parseint-metodilla. 3. Ohjelman toiminnot Ohjelmassa on oltava toiminnot, jotka mahdollistavat lötköjen lataamisen tiedostosta listalle, tietojen listaamisen (kaikki lötköt, samanlaiset lötköt tai tietty lötkö), lötköjen satunnaisen liikkumisen elinalueellaan, lötkön siirron tiettyyn paikkaan elinalueella, lötköjen lisääntymisen, lötköjen tallentamisen listalta tiedostoon ja ohjelman lopettamisen. Seuraavassa esitellään ohjelman toiminnallisuutta pienten esimerkkien avulla. Laajempia esimerkkiajoja julkaistaan kurssin kotisivujen Harjoitustyö-kohdassa Ohjelman käynnistäminen Ohjelman on käynnistyttävä komennolla: java Oope2015HT Näin ollen ohjelman pääluokan (sisältää main-metodin) on oltava aina nimeltään Oope2015HT ja pääluokan lähdekoodin on oltava Oope2015HT.java-tiedostossa. Ohjelma lataa käynnistymisen yhteydessä tiedot tiedostosta keskusmuistiin aivan kuin ohjelmalle olisi annettu latauskomento (luku 3.3) Käyttöliittymä Ohjelmalla on yksinkertainen tekstipohjainen käyttöliittymä. Ohjelman käynnistyessä tulostetaan kuvassa 3 esitetyllä tavalla kehystetty teksti sekä omalle rivilleen teksti "". Kehystämisessä käytetään reunamerkkinä asteriskia ('*') ja tekstin rivillä tekstin ja reunamerkin väliin tulostetaan yksi välilyönti. Tämän jälkeen jäädään odottamaan käyttäjän syötettä. ************ * ALKULIMA * ************ Kuva 3: Ohjelma käynnistyksen jälkeen. Ohjelmaa käytetään kirjoittamalla halutun toiminnon käynnistävä komento ja painamalla Enter-näppäintä. Komento ja sen mahdolliset parametrit erotetaan toisistaan yhdellä välilyönnillä. Kaikkien muiden kuin lopetuskomennon jälkeen Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 5 / 17

6 pyydetään uusi komento (tulostetaan "" ja odotetaan syötettä omalla rivillä). Ohjelma toimii siis hieman komentoikkunan tapaan. Kaikkien tulosteiden muoto on kiinnitetty, jotta ohjelmien automaattinen, tulosteiden vertailuun perustuva tarkistus olisi mahdollista (luku 7). Tarkistusta automatisoimalla pyritään siihen, että kurssin opettajille jää enemmän aikaa työn rakenteen ja ohjelmointitavan arviointiin. Ohjelma vastaa virheelliseen komentoon tulostamalla omalle rivilleen "Virhe!" ja pyytämällä uutta syötettä. Virheeksi katsotaan tuntematon komento. Tunnettu komento on virheellinen, jos sen parametrit ovat virheelliset. Parametreja voi olla väärä määrä, niiden tyyppi voi olla virheellinen tai niiden arvot voivat olla sallitun arvoalueen ulkopuolella. Komennot pitää lukea In-apuluokan avulla, jotta ohjelmien tehtävänannon mukainen käyttäytymisen olisi todennäköisempää. Harjoitustyössä käytetään apulaiset-nimiseen pakkaukseen sijoitettua versiota In-luokasta. Tämän pakkaus sisältää myös paikkoja tuottavan apuluokka (luku 4.5) ja on saatavilla kurssin kotisivujen Opetus Harjoitustyö -kohdan kautta Tietojen lukeminen tiedostosta Komento "lataa" lukee lotkot.txt-nimiseen tekstitiedostoon tallennetut otsikko- ja lötkötiedot. Siemenluvun avulla alustetaan apuluokka (luku 4.5), joka antaa lötköille satunnaiset paikat elinalueella. Koordinaattien maksimiarvoja tarvitaan paikkojen arvonnassa ja myöhemmin esimerkiksi yksittäisen lötkön liikuttelun yhteydessä. Komennolla ei ole parametreja. Listat täytetään aina siten, että lötköt ovat listallaan samassa järjestyksessä kuin tiedostossa. Tiedoston ensimmäinen lötkö on listan ensimmäisessä paikassa ja tiedoston viimeinen lötkö on listan viimeisessä paikassa. Lataus poistaa listalla mahdollisesti olevat aikaisemmat tiedot. Kuvassa 4 luetaan kuvassa 2 esitetyn tiedoston sisältämät tiedot keskusmuistiin. Kun apuluokka alustetaan siemenluvulla 42 ja x- ja y-koordinaattien arvot rajoitetaan väleille [0, 5] ja [0, 3], antaa apuluokka ensimmäiselle, toiselle ja kolmannelle lötkölle vastaavat (2, 0), (0, 0) ja (0, 3). Latauskomento toistettaessa apuluokka alustetaan uudelleen, jotta lötköille saadaan samat lähtöpaikat kuin edellisellä latauskerralla. Listalla olevia tietoja voidaan tulostaa näytölle antamalla "listaa"-komento. Tällä komennolla on nolla, yksi tai kaksi parametria. Komento tulostaa lötköt listansa järjestyksessä. Ensimmäinen tulostettava rivi sisältää tiedoston ensimmäisen rivin tapaan siemenluvun sekä x- ja y -koordinaattien suurimmat arvot omissa putlataa Kuva 4: Otsikko- ja lötkötietojen lukeminen tiedostosta Tietojen tulostaminen näytölle Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 6 / 17

7 ki+merkin (' ') erottamissa kentissään. Ainoa ero näytölle tulostettaessa on se, että kentät ovat kolmen merkin mittaisia. Kenttien loppu täytetään välilyönneillä tietokenttien tapaan (luku 2.2). Listalla oleva lötkö tulostetaan omalle rivilleen siten, että ensin tulostetaan listan paikan indeksiarvo, toiseksi putkimerkki (' '), kolmanneksi lötkön x-koordinaatti, neljänneksi putkimerkki, viidenneksi lötkön y-koordinaatti, kuudenneksi putkimerkki ja seitsemänneksi lötkö täsmälleen samassa muodossa kuin sen tiedot esitetään tiedostossa (luku 2.2). Indeksiarvo ja koordinaattiarvot tulostetaan otsikkotietojen tapaan kolmen merkin mittaisiin kenttiin. Listauskomennon parametriton versio tulostaa näytölle listan kaikki alkiot. Kuvassa 5 on listattu edellisessä luvussa ladatut tiedot Klimppi 10 AAAAAAAA P Klimppi 20 BBBBBBBB P Plantti 100 ABCDEFGH false Kuva 5: Kaikkien lötköjen tietojen tulostaminen näytölle. Ensimmäiseltä rivillä nähdään käytössä olevan siemenluku 42 ja koordinaattien maksimiarvot olevan x-akselilla 5 ja y-akselilla 3. Lopuilla riveillä annetaan lötköjen tiedot samassa järjestyksessä kuin tiedostossa. Esimerkiksi listan toisen lötkön rivi kertoo, että klimpin listaindeksi on yksi ja paikka origo (0, 0). Klimpin paino on 20, perimä "BBBBBBBB" ja väri punainen. Listauskomennon yksiparametrinen versio tulostaa indeksiarvolla yksilöidyn lötkön kanssa samanlaiset lötköt. Listaukseen otetaan mukaan myös lötkö, jonka vastineita haetaan. Samanlaiset lötköt tulostetaan samassa järjestyksessä kuin ne ovat listalla. Kuvassa 6 haetaan vastineet kullekin listan lötkölle. Punaiset klimpit ovat keskenään samankaltaiset, kun listan ainoalle pläntille ei ole vastinetta. Virheellinen indeksiarvo aiheuttaa virheilmoituksen. listaa Klimppi 10 AAAAAAAA P Klimppi 20 BBBBBBBB P listaa Klimppi 10 AAAAAAAA P Klimppi 20 BBBBBBBB P listaa Plantti 100 ABCDEFGH false listaa 3 Virhe! Kuva 6: Samanlaisten lötköjen tietojen tulostaminen näytölle. Kaksiparametrinen versio listaa annetussa paikassa olevat lötköt. Paikasta (0, 3) löytyy listan viimeinen lötkö, paikassa (1, 1) ei ole lötköjä ja paikka (6, 3) on elinalueen ulkopuolella (kuva 7). Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 7 / 17

8 listaa Plantti 100 ABCDEFGH false listaa 1 1 listaa 6 3 Virhe! Kuva 7: Tietyssä paikassa olevien lötköjen tietojen tulostaminen näytölle Lötköjen liikuttaminen Lötköjä voidaan liikuttaa paikasta toiseen komennolla "liiku". Ilman parametria annettuna komento liikuttaa satunnaisesti listan kaikkia lötköjä siten, että lötkö jää nykyiseen paikkaansa tai siirtyy johonkin nykyisen paikan naapureista. Naapuriin siirrytään vain, jos se on elinalueella. Uudet paikat tuotetaan apuluokan (luku 4.5) avulla. Apuluokka antaa aina elinalueeseen kuuluvia paikkoja. Komennon kolmiparametrinen versio siirtää indeksiarvolla yksilöidyn lötkön annettuun paikkaan, jos paikka kuuluu elinalueeseen. Lötköjen liikkuessa niiden keskinäinen järjestys säilyy. Kuvassa 8 lötköjä käsketään ensin vaeltamaan elinalueellaan satunnaisella tavalla. Lötköt siirtyvät nykyistä paikoistaan (2, 0), (0, 0) ja (0, 3) apuluokan määräämiin paikkoihin (3, 1), (0, 1) ja (1, 3). Tämän jälkeen ensimmäinen lötkö siirretään toisen lötkön kaveriksi paikkaan (0, 1). Plänttiä ei saada liikkumaan elinalueen ulkopuolella olevaan paikkaan (5, 4). liiku listaa Klimppi 10 AAAAAAAA P Klimppi 20 BBBBBBBB P Plantti 100 ABCDEFGH false liiku liiku Virhe! listaa Klimppi 10 AAAAAAAA P Klimppi 20 BBBBBBBB P Plantti 100 ABCDEFGH false Kuva 8: Lötköjen liikuttelua yhdessä tai erikseen Uusien lötköjen luominen Komento "luo" tuottaa nolla, yksi tai useampia uusia lötköjä riippuen siitä millaisia lötköjä kussakin paikassa on. Paikkoja haetaan listan alusta sen loppuun päin. Uudet lötköt lisätään listan loppuun syntymisjärjestyksessään. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 8 / 17

9 Listasta löydetään ensin paikka (0, 1), jossa on samanlaisten klimppien pari. Pari luo samaan paikkaan uuden klimpin (kuva 9). Jälkeläisen paino on vanhempien painojen keskiarvo sellaisenaan ( ) / 2 = 15, koska jako menee tasan. Perimäksi tulee parin ensimmäisen klimpin perimän alun "AAAA" ja parin toisen klimpin perimän lopun "BBBB" yhdiste. Väriksi valitaan sininen ('S'), koska vanhemmat ovat punaisia. Seuraavaksi löytyy paikka (1, 3), jonka pläntti muodostaa suoraan jälkeläisen, koska samankaltainen pläntti ei voi estää yksi paikassaan olevan pläntin lisääntymistä. Jako menee nytkin tasan ja uuden pläntin paino on siten suoraan osamäärä 100 / 2 = 50. Perimän merkit käännetään päinvastoin. Uusi klimppi on listan toiseksi viimeinen lötkö ja viimeisenä on uusi pläntti. luo listaa Klimppi 10 AAAAAAAA P Klimppi 20 BBBBBBBB P Plantti 100 ABCDEFGH false Klimppi 15 AAAABBBB S Plantti 50 HGFEDCBA false Kuva 9: Uusien lötköjen luominen Tietojen tallentaminen tiedostoon Otsikkotiedot ja listan sisältö tallennetaan parametrittomalla "tallenna"- komennolla lotkot.txt-tiedostoon. Vanha tiedosto korvataan uudella ilman varmistuskyselyjä. Kuvassa 10 on annettu esimerkki tallentamisesta. tallenna Kuva 10: Tietojen tallentaminen tiedostoon. Tallennusmuoto on kuvattu luvussa 2.2. Lötköt tallennetaan tiedostoon listan määräämässä järjestyksessä. Kuva 11 esittää tiedoston sisällön tallennuskomennon jälkeen Klimppi 10 AAAAAAAA P Klimppi 20 BBBBBBBB P Plantti 100 ABCDEFGH false Klimppi 15 AAAABBBB S Plantti 50 HGFEDCBA false Kuva 11: Tiedoston lotkot.txt uusi sisältö Ohjelman lopetus Ohjelmasta poistutaan parametrittomalla "lopeta"-komennolla (kuva 12). Komennon jälkeen tulostetaan lyhyet jäähyväiset ("Ohjelma lopetettu."-teksti). Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 9 / 17

10 lopeta Ohjelma lopetettu. Kuva 12: Ohjelman lopettaminen. 4. Koodista 4.1. Yleistä Ohjelma on jaettava kapseloituihin luokkiin, joiden sisältö puolestaan jaetaan järkevän mittaisiin metodeihin. Muistathan, että luokat rakennetaan tiedon ei toimintojen ympärille. Luokkametodeista koostuvat, esimerkiksi Math-luokan tapaiset apuluokat ovat poikkeus tähän sääntöön. Ohjelman toimintoja vastaavia luokkia (esimerkiksi Lataus ja Tallennus) ei saa tehdä, koska toiminnot eivät ole luokkia itsessään, vaan luokkien metodeja. Olio-ohjelmoinnissa vain keskeisimmät käsitteet mallinnetaan. Luokkia tarvitaan vain sen verran, että ohjelma saadaan toimimaan olioperustaisesti edellä määritellyllä tavalla. Toisaalta kullakin luokalla tulisi olla yksikäsitteinen vastuu. Luokkien lukumäärää ei saa pienentää antamalla luokalle useita sille kuulumattomia vastuita. Erityisesti käyttöliittymäluokan sisältöä on syytä pitää silmällä. Käyttöliittymä vastaa vain ihmisen ja koneen vuorovaikutuksesta ja näin ollen alkuliman ja lötköjen logiikasta vastaavaa koodi (varsinainen simulaatio) on kirjoitettava erilliseen luokkaansa. Samoin simulaatioluokan ja OmaLista-luokan vastuut on pidettävä selkeinä. OmaLista-luokan tehtävänä on säilöä tietoa ottamatta juuri kantaa tietojen sovellusalueeseen. Näin tässä luokassa tulee olla vain yleisiä sovellusalueesta riippumattomia metodeja. Esimerkiksi suurimman alkion hakeminen kuuluu OmaLista-luokkaan, kun taas uusien lötköjen luominen on simulaatioluokan vastuulla. Ohjelmassa olisi hyvä olla oma luokka paikalle, joka on harjoitustyössä keskeinen käsite. Noudata edelleen hyvää ohjelmointitapaa [3, 4]: Sisennä koodia johdonmukaisesti luettavuuden parantamiseksi. Kommentoi riittävästi ja oikeissa paikoissa (luku 5). Käytä vakioita. Pidä metodit järkevän mittaisia (metodin tulisi mahtua yhdelle A4-kokoiselle sivulle). Kirjoita attribuutteihin, metodeihin ja luokkiin yleisluonteiset kommentit (luku 5). Nimeä vakiot, muuttujat, attribuutit, metodit ja luokat järkevästi. Käytä attribuutteja harkiten [5]. Varaudu metodeissa virheellisiin parametrien arvoihin (erityisesti nullarvoinen viite), mikäli on todennäköistä, että metodille annetaan virheellisiä arvoja. Sijoita vain yksi luokka tai rajapinta yhteen lähdekooditiedostoon. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 10 / 17

11 Sisennä koodi välilyönnein. Älä käytä sisentämiseen tabulaattoria, jotta koodisi näkyisi samanlaisena myös ohjaajan editorissa. Välilyöntejä ja tabulaattorimerkkejä ei saa käyttää sekaisin, koska tällöin on varmaa etteivät sisennykset näy ajatellulla tavalla Lötköjen luokkahierarkia Periytyminen on harjoitustyössä keskeisessä asemassa. Periytymisessä samoja piirteitä sisältäville luokille tehdään yliluokka, jonne yhteiset piirteet siirretään. Harjoitustyötä ei saa toteuttaa siten, että kaikki lötköt esitetään yhtä luokkaa käyttäen. Ohjelmassa tulee olla abstrakti Lotko-luokka, jotta käytetään lötköjä mallintavan luokkahierarkian juuriluokkana sekä tästä luokasta perityt konkreettiset aliluokat Klimppi ja Plantti. Lotko-luokassa voi olla koon ja perimän lisäksi muita attribuutteja. Esimerkiksi lötkö ja sen paikka liittyvät sen verran kiinteästi yhteen, että lötköstä voi olla hyvin viite paikkaan tai päinvastoin. Huomaa kuitenkin, että luokkahierarkiassa ei saa olla attribuuttia luokan nimelle. Kirjoita juuriluokalle ja sen aliluokille parametrilliset rakentajat. Kutsu aliluokkien rakentajissa juuriluokan rakentajaa. Tee juurelle ja Plantti-luokalle kopiorakentaja, jolla syväkopioit pläntin sen lisääntymisen yhteydessä siten, että uudella plänttioliolla ja sen vanhemmalla on erilliset StringBuilder-tyyppiset osaoliot perimilleen. Lötkön merkkijonoesityksestä on paljon iloa. Korvaa siksi Object-luokan tostring-metodi Lotko-luokassa ja tämän luokan aliluokissa. Tee korvaus ketjuttaen : kutsu aliluokkien tostring-metodin korvauksissa Lotko-luokan versiota super-attribuutin avulla. Selvitä olion luokka Lotko-luokassa metaolion palveluiden avulla. Samojen lötköjen tunnistaminen (luvut 3.4 ja 3.6) toteutetaan Object-luokan equals-metodin avulla. Equals-metodin osalta riittää korvaus vain aliluokissa, koska lötköjen samanlaisuus päätellään pelkästään aliluokkien piirteiden avulla. Toteuta Comparable-rajapinnan compareto-metodi Lotko-luokassa siten, että metodissa vertaillaan lötköjä niiden koon perusteella. Käytä metodia paikan suurimman klimpin hakemiseen. Pohdi voisitko kirjoittaa Lotko-luokkaan abstraktit metodit sekä suvulliseen että suvuttomaan lisääntymiseen. Aliluokassa voi heittää UnsupportedOperationException-poikkeuksen, jos sen oliota käsketään lisääntymään tuntemattomalla tavalla. Esimerkiksi Klimppi-luokassa suvuttoman lisääntymisen metodi heittäisi heti sitä kutsuttaessa edellä mainitun poikkeuksen. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 11 / 17

12 4.3. OmaLista-luokka Säilö lötköt LinkitettyLista-luokasta perimääsi OmaLista-luokkaan. Huomaa, että LinkitettyLista-luokassa on suojatut lukuaksessorit paa- ja hanta-attribuuteille, jotta solmujen tehokkaampi käsittely on mahdollista myös aliluokassa. Kirjoita OmaLista-luokkaan ainakin yksi oma metodi. Muista, että lista-pakkauksen sisältöä (esimerkiksi Solmu-luokkaa) ei saa muuttaa. Lötköjen luomisessa tarvitaan todennäköisesti apulistoja, jos lötköt pidetään suositellulla tavalla yhdellä listalla. Apulistoilta asetetaan viitteitä lötkölistan lötköihin tai niiden paikkoihin. Esimerkiksi tietyssä paikassa oleviin lötköihin voidaan asettaa viitteet apulistalta. Samoin tietyssä paikassa oleviin klimppeihin ja pläntteihin voidaan myös asettaa viitteet apulistoilta. OmaLista-luokan metodit ovat hyödyllisiä erityisesti tällaisten apulistojen käsittelyssä varsinkin, jos paikka on mallinnettu omaan luokkaansa. Esimerkiksi uusien lötköjen luomista voisi valmistella apulistalla, jonka alkiot viittaavat lötköjen paikkoihin. Alla olevassa koodinpalasessa oletetaan, että paikka on lötkön osaolio ja että lötkö voi viitata paikkaansa lukuoperaation paikka avulla. // Asetetaan viitteet apulistalta lötköjen paikkoihin, jotta voi- // daan tunnistaa helpommin samassa paikassa olevat lötköt. OmaLista paikat = new OmaLista(); for (int i = 0; i < populaatio.koko(); i++) { // Yritetään selventää koodia apuviitteen avulla. Lotko lotko = (Lotko)populaatio.alkio(i); } // Lisätään lötkön paikka apulistalle. paikat.lisaaloppuun(lotko.paikka()); Koodin ajamisen jälkeen kuvan kahdeksan tilanteessa paikkaolioihin olisi viitteet sekä lötkölistalta että apulistalta (kuva 13). Paikat voitaisiin sitten käydä läpi apulistaa silmukoiden siten, että kunkin paikan käsittelyn jälkeen apulistalta poistetaan viitteet samoihin paikkoihin. Apuviitteiden lisääminen tai poisto ei vaikuta lötkölistaan millään tavalla "A...A" "B...B" "A...H" (0, 1) (0, 1) (1, 3) Kuva 13: Lötkölista ja sen apulista kaaviokuvana. Apulistan viitteet lötköjen paikkoihin on piirretty katkoviivoilla. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 12 / 17

13 Apulistoja voi käsitellä muun muassa metodilla, joka hakee listalta parametrina annetun alkion (Object) kanssa samat alkiot. Metodi palauttaa löydetyt alkiot esimerkiksi taulukossa tai toisessa OmaLista-tyyppisessä listassa. Metodin otsikko voisi olla seuraava: /** Hakee listalta equals-mielessä vastaavia alkioita. * haettava listalta haettava alkio. viitteet löydettyihin olioihin. Paluuarvo on null, * jos vastaavaa alkiota ei löydy, parametri on null-arvoinen * tai lista on tyhjä. */ public OmaLista hae(object haettava) Muita hyödyllisiä OmaLista-luokan metodeja ovat esimerkiksi suurimman alkion hakeminen (klimppien lisääntyminen) ja edellä mainittu samojen alkioiden poistaminen. Näitä metodeja on käsitelty kuudennen harjoituksen neljännessä ja viidennessä tehtävässä Koodin organisointi Main-metodin sisältävän ajoluokan tulee olla Oope2015HT.java-nimisessä lähdekooditiedostossa. Ajoluokassa ei saa olla pakkausmääreitä, jotta ohjelman automaattinen testaus WETO-järjestelmässä onnistuu. Ohjelman on käännyttävä suoraan ilman komentorivillä annettavia lisämääreitä komennolla javac Oope2015HT.java. Samoin ohjelman ajamisen on tapahduttava suoraan komennolla java Oope2015HT. Harjoitustyössä käytetään apulaiset-pakkaukseen sijoitettua In-luokkaa tietojen lukuun näppäimistöltä. Tähän pakkaukseen on liitetty myös Automaatti-luokka (luku 4.5), jota käytetään lötköjen paikkojen tuottamiseen latauksen (luku 3.3) ja liikkumisen (luku 3.5) yhteydessä. Apulaiset-pakkausta ja se luokkia ei saa muuttaa millään tavalla. Apulaiset-pakkauksen tulee olla ohjelman ajoluokan sisältävän hakemiston alihakemistona. Löydät apulaiset-pakkauksen kurssisivujen Opetus Harjoitustyö -kohdasta. Tee lötköjen luokkahierarkialle (Lotko-, Klimppi ja Plantti-luokat) oma pakkaus. Myös tämä pakkaus on ajoluokan sisältävän hakemiston alihakemisto. Voit tehdä halutessasi lisää pakkauksia. Nämäkin pakkaukset ovat ajoluokan hakemiston alihakemistoja. Käytä mahdollisimman vähän File-luokan palveluja, koska WETO-järjestelmän tietoturvamääritykset on säädetty tiukoiksi. WETO ei esimerkiksi hyväksy deletemetodia käyttävää koodia Automaatti-luokka Apulaiset-pakkaus (luku 4.4.) sisältää Automaatti-luokan, jota käytetään lötköjen paikkojen tuottamiseen. Luokalla on kolme julkista luokkametodia (luokan toinen kohta): Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 13 / 17

14 Alusta-metodi on tarkoitettu satunnaislukugeneraattorin alustamiseen. Anna tiedostosta luettu siemenluku metodin parametriksi latauksen (luku 3.3) yhteydessä ennen Automaatti-luokan muiden metodien kutsumista. AnnaPaikka-metodin kaksiparametrista versiota käytetään latauksessa (luku 3.3) arpomaan lötköille paikkoja kaikkialta niiden elinalueelta. Metodille annetaan parametreina tiedostosta luetut x- ja y-koordinaattien maksimiarvot. Metodin neliparametrinen versio on tarkoitettu kutsuttavaksi lötköjen satunnaisen liikuttelun (luku 3.5) yhteydessä. Tämä metodi saa parametrinaan lötkön nykyisen paikan ja x- ja y-arvojen ylärajat ja palauttaa joko jonkin elinalueeseen kuluvista naapuripaikoista tai lötkön nykyisen paikan. Molemmat versiot tuottavat poikkeuksen, jos satunnaislukugeneraattoria ei ole alustettu alusta-metodia kutsumalla. Metodeihin voi on syytä tutustua tarkemmin lukemalla metodien otsikot ja metodien yleiset kommentit. Molemmat metodit ovat static-määreellä esiteltyjä luokkametodeja, joita kutsutaan In- ja Math-luokkien metodien tapaan luokan nimen kautta. Esimerkiksi alusta-metodin kutsu voisi olla: Automaatti.alusta(siemenluku); Yllä siemenluku on tiedostosta luetun siemenluvun sisältävä muuttuja. Älä käytä muita menetelmiä paikkojen tuottamisen, jotta ohjelmasi toimii varmasti samalla tavoin kuin malliratkaisu. Älä muuta Automaatti-luokkaa millään tavalla. Älä kopioi luokan metodeja ohjelmaasi. 5. Dokumentointi Harjoitustyöstä kirjoitetaan dokumentti, jonka tulee sisältää seuraavat asiat: 1. Kansilehdellä tekijän nimi, opiskelijanumero ja sähköpostiosoite. Sivun keskellä tulisi olla suuremmalla fontilla dokumentin nimi. Kurssin kotisivuilla on annettu esimerkinomainen kansilehti. 2. Luokkakaavio ja sen lyhyt sanallinen kuvaus. 3. Omia ajatuksia. Esimerkiksi: Oliko työ helppo, sopiva tai vaikea? Miksi koit työn helpoksi, sopivaksi tai vaikeaksi? Mitä uutta opit? Oliko työstä mitään hyötyä tekijälleen? Paljonko aikaa käytit työhön? Dokumentin leipäteksti kirjoitetaan 12 pisteen fontilla ja yhdellä rivinvälillä. Valmiin tekstin lukeminen pariin otteeseen ei ole huonompi idea. Dokumentin kirjoitus tekstinkäsittelyohjelmalla sekä ohjelmasta löytyvän oikolukutoiminnon käyttäminen tekstin tarkistamiseen on myös suotavaa. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 14 / 17

15 Luokkakaavio piirretään UML-notaatiota käyttäen. Ohjelmaa ei tarvitse suunnitella UML:ia käyttäen. Riittää, että toteutettu ohjelma mallinnetaan UML:lla. Kussakin luokkasymbolissa esitetään luokan kaikki attribuutit ja julkiset metodit. Jos kaavion piirtoon käytetty työväline ei osaa piilottaa metodeja, niin kätketyt (private) metodit voi jättää näkyviin. Luokkakaaviossa esiintyvien luokkien väliset suhteet mallinnetaan luokkien välisinä suhteina. Piirrä periytymis- ja toteuttamissuhteiden lisäksi näkyviin luokkien väliset assosiaatiot. Jos jossakin itse kirjoitetussa luokassa A on attribuutti, jonka tyyppi on toinen oma luokka B, niin tätä attribuuttia ei esitetä luokan A laatikossa, vaan A- ja B- luokkien laatikoiden välisenä assosiaatioviivana. Anna kaikille assosiaatioille nimet, suunta sekä rooli ja kertautumiset. Piirrä luokkakaavioon myös luokkien väliset riippuvuussuhteet. Riippuvuussuhde on assosiaatiota heikompi suhde luokkien ilmentymien välisen hetkellisen yhteistyön ilmaisemiseen. Jos oma luokka C hyödyntää toisen oman luokan D palveluja ilman attribuuttia, niin luokkalaatikoiden välille voi piirtää nuolen (varsi katkoviivaa) luokasta C luokkaan D riippuvuussuhteen merkiksi. Vahvahermoiset kurssilaiset saavat Office- ja OpenOffice-ohjelmistoilla aikaiseksi siedettävän näköisiä luokkakaavioita. Kaavioiden tuotto on kuitenkin helpompaa erityisesti UML-kaavioiden piirtoon tehtyjä ohjelmistoja käyttäen. Dia (https://wiki.gnome.org/apps/dia) on ilmainen ohjelma, jolla voi piirtää vuo- ja ER-kaavioiden lisäksi myös UML-kaavioita. Jotkin ohjelmat osaavat muodostaa osan luokkakaaviosta automaattisesti lähdekoodin perusteella. Tällainen on UMLet-ohjelma, josta on kerrottu lisää kurssisivujen Opetus Harjoitustyö UML -kohdassa. Eclipse-kehitysympäristöön (http://www.eclipse.org/downloads/) on saatavilla takaisinmallinnuksen hallitsevia lisäosia. Koodi dokumentoidaan kirjoittamalla lyhyet yleisluonteiset Javadoc-kommentit jokaiselle attribuutille, metodille ja luokalle. Javadoc on Java-ympäristön tarjoama menetelmä koodin puoliautomaattiseen dokumentoimiseen. Javadockommentoinnista on annettu erilliset ohjeet kurssin verkkosivujen Opetus Harjoitustyö Javadoc -kohdassa. Huomaa, että rakentajia ja aksessoreita ei tarvitse kommentoida, mikäli ne ovat toiminnoiltaan tavanomaisia. Muista edelleen selittää metodien sisällä normaaliin tapaan metodien keskeiset ja vaikeaselkoiset osuudet tavanomaisia kommentteja käyttäen. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 15 / 17

16 6. Ohjaus Harjoitustyön pääasiallinen ohjaaja on mikroharjoitusryhmäsi vetäjä. Näet ryhmäsi WETO-järjestelmän Students-välilehdeltä. Kysy neuvoa sopivimmaksi katsomaltasi opettajalta, jos et ole valinnut ryhmää tai et ole käynyt alun perin valitsemassasi ryhmässä. Opettajat ovat tavattavissa kurssin kotisivuilla myöhemmin ilmoitettavina aikoina. Vastuuopettajaa voi käydä tapaamassa myös muina aikoina. Tapaamisaika kannattaa sopia etukäteen, jos haluaa varmistaa, että vastuuopettaja on paikalla huoneessaan. Pienemmät kysymykset kannattaa esittää ohjaajille sähköpostitse. Kysymyksiä ja niihin annettuja vastauksia kerätään kurssin verkkosivujen Harjoitustyö-kohtaan. Ennen kysymistä kannattaa siis tarkistaa kurssin verkkosivut vastaus voi hyvinkin olla jo sivuilla. Monet ongelmat selviävät myös tehtävänantoa lukemalla ja tutustumalla verkkosivuilta löytyviin esimerkkiajoihin. Yliopiston matematiikan, tilastotieteen ja tietojenkäsittelytieteiden opiskelijoiden ainejärjestö Luuppi järjestää omaa ohjaustaan koodipajan muodossa. Koodipajassa voi käydä, vaikka ei ole Luupin jäsen tai opiskelee jossakin muussa tutkintoohjelmassa. Kysyminen kannattaa erityisesti, kun on epävarma suuremman mittakaavan kysymyksissä. On pienempi vaiva selvittää epäselvä kohta ajoissa ohjaajan kanssa, kuin korjata valmista ohjelmaa jälkikäteen tehtävänantoa vastaavaksi. 7. Palautus ja tarkistus Ohjelma ja dokumentti täytyy palauttaa viimeistään torstaina klo WETO-järjestelmään. Tarkemmat palautusohjeet julkaistaan myöhemmin kurssin verkkosivuilla. WETO-järjestelmä tarkistaa harjoitustöiden toiminnallisuuden vertailemalla automaattisesti mallivastauksen ja opiskelijoiden ratkaisujen tulosteita. Tästä syystä edellä annettuja tulostemäärittelyjä on seurattava merkilleen. Automaattinen vertailu vähentää rutiininomaista testaustyötä, jolloin opettajille jää enemmän aikaa mielekkäämpään työhön eli ohjelman rakenteen ja tyylin tutkimiseen. Opiskelijat hyötyvät tästä perusteellisempien kommenttien muodossa. Lisäaikaa työn tekoon voi saada muutaman päivän hyvästä syystä. Lisäajasta on sovittava ohjaajan kanssa ajoissa eli viimeistään päivää tai paria ennen palautuksen takarajaa. Lisäaikana harjoitustyön ohjaaja ei välttämättä ole tavattavissa henkilökohtaisesti. Ennen palautusta on syytä varmistaa, että dokumentissa on mukana kaikki edellä mainitut kohdat. Lisäksi kannattaa tarkistaa, että ohjelma toimii varmasti oikein viimeisimpien muutostenkin jälkeen. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 16 / 17

17 8. Arvostelu Arvostelu perustuu ensisijaisesti ohjelman oikeellisuuteen: ohjelman on toimittava testeissä tehtävänannossa määritellyllä tavalla. Harjoitustyö voidaan joko hylätä tai hyväksyä, jolloin työ arvostellaan asteikolla 0 4 pistettä. Pisteet lisätään harjoitushyvityspisteiden tapaan tenttipisteisiin vain, mikäli tentistä on saanut vähintään vaaditut 12 pistettä. Maksimipisteet eli 4 pistettä voi saada vain, mikäli työ on palautettu ilman lisäaikaa. Tämän vaatimuksen osalta voidaan joustaa äärimmäisen hyvästä syystä, jollaisia ovat esimerkiksi pitkä ulkomaan matka tai kokopäivätöiden aiheuttamat ylitsepääsemättömät esteet. Ilman edellä mainittua todella hyvää syytä lisäajalle menneestä työstä voi saada korkeintaan 2 pistettä. Molemmissa tapauksissa täydet pisteet (4 tai 2 pistettä) saa vain, jos ohjelma toimii oikein sekä julkisissa että salaisissa testeissä. Huomaa, että salaisissa testeissä käytetään eri syötteitä kuin kotisivuilla annetuissa esimerkeissä. Ohjelman oikeellinen toiminta esimerkkien osalta ei takaa vielä salaisten testien läpäisyä. Toisaalta salaisten testien läpäisystä ei ole mitään toivoa, jos ohjelma ei toimi oikein julkisten testien osalta. Siksi on erittäin toivottavaa, että kaikki testaavat ohjelmansa perusteellisesti. Hylkäyksen perusteena voi olla tehtävänannon noudattamatta jättäminen, ohjelman toimimattomuus, harjoitustyön teossa kiellettyjen Javan ominaisuuksien käyttö, huono dokumentti, hyvän ohjelmointitavan noudattamatta jättäminen ja/tai plagiointi. Plagiointiin liittyy sanktio, joka koskee molempia opiskelijoita. (Toiselta opiskelijalta tämän tietämättä kopioidun koodin käyttö johtaa kopioijan koko kurssisuorituksen hylkäämiseen.) Hylätyn työn voi palauttaa korjattuna kerran tai pari. Korjausaikaa on pääsääntöisesti viikko työn hylkäyksestä. Pisteytys perustuu aina ensimmäiseen palautukseen. Korjauskierroksen kautta ei voi korottaa pistemääräänsä. Lähteet 1. J. Laurikkala, Lausekielinen ohjelmointi -kurssin luentorunko, luku 26, (Luettu viimeksi ) 2. H. Deitel ja P. Deitel, Java, How to Program, Prentice Hall. 3. J. Laurikkala, Lausekielinen ohjelmointi -kurssin luentorunko, luku 13, (Luettu viimeksi ) 4. J. Laurikkala, Lausekielinen ohjelmointi -kurssin luentorunko, luku 24, (Luettu viimeksi ) 5. J. Laurikkala, Olio-ohjelmoinnin perusteet -kurssin luentorunko, luku 4, (Luettu viimeksi ) Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 17 / 17

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva olioperustainen ohjelma Java-kielellä. Lötköt säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti

Lisätiedot

Harjoitustyö 1. 1. Johdanto. 2. Euroseteli

Harjoitustyö 1. 1. Johdanto. 2. Euroseteli Harjoitustyö. Johdanto.. Tehtävä Lausekielinen ohjelmointi (Laki) -kurssin ensimmäisessä harjoitustyössä on tehtävänä toteuttaa Java-kielellä ohjelma, joka tutkii euroseteleiden [, ] sarjanumeroja. Ohjelmalla

Lisätiedot

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät 2015. Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät 2015. Olio-ohjelmoinnin perusteet (5 op) Tavoitteena Kurssiesite Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto Vastuuopettaja Jorma Laurikkala, yliopistonlehtori. Luennot,

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

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,

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

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

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

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

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto Kurssiesite Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto Vastuuopettaja Jorma Laurikkala, yliopistonlehtori. Luennot,

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

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

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

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

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

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

2. Olio-ohjelmoinista lyhyesti 2.1

2. Olio-ohjelmoinista lyhyesti 2.1 2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin

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

Pakkauksen kokoaminen

Pakkauksen kokoaminen 13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen (package). Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa (import). Pakkaukset ja näkyvyys. 13.2 Pakkauksen kokoaminen

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

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

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

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

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

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi Syksy 2014. Tavoitteet ja keinot. Lausekielinen ohjelmointi (10 op)

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi Syksy 2014. Tavoitteet ja keinot. Lausekielinen ohjelmointi (10 op) Kurssiesite Lausekielinen ohjelmointi Syksy 2014 Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto Vastuuopettaja Jorma Laurikkala, lehtori. Luennot, mikroharjoitukset,

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Helsingin yliopisto WebOodi 1 OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Opetustapahtuman opiskelijalistan tulostaminen Ilmoittautuneista opiskelijoista

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

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat Microsoft Office 2010 löytyy tietokoneen käynnistävalikosta aivan kuin kaikki muutkin tietokoneelle asennetut ohjelmat. Microsoft kansion sisältä löytyy toimisto-ohjelmistopakettiin kuuluvat eri ohjelmat,

Lisätiedot

Tietokannan luominen:

Tietokannan luominen: Moodle 2 Tietokanta: Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia, linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat,

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

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio:

Sisällys. 19. Unified Modeling Language (UML) Johdanto. Johdanto. Johdanto. Luokkakaavio: Sisällys 9. Unified Modeling Language (UML) Perustuu Kai Koskimiehen Oliokirjaan ja aikaisempaan luentomateriaaliin. Johdanto. Luokkakaavio: Luokkasymboli, attribuutit ja metodit. Suhteet: Assosiaatiot:

Lisätiedot

Tehtävän lisääminen ja tärkeimmät asetukset

Tehtävän lisääminen ja tärkeimmät asetukset Tehtävä Moodlen Tehtävä-aktiviteetti on tarkoitettu erilaisten tehtävien antamiseen verkossa. Tehtävä-aktiviteettia ei ole tarkoitettu ainoastaan tehtävien palautukseen, kuten moni sen sellaiseksi mieltää,

Lisätiedot

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Helsingin yliopisto WebOodi 1 OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen Opetustapahtuman opiskelijalistan tulostaminen Ilmoittautuneista opiskelijoista

Lisätiedot

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013 Tehtävä 2.2. Tehtävä-työkalun avulla opiskelijat voivat palauttaa tehtäviä Moodleen opettajan arvioitaviksi. Palautettu tehtävä näkyy ainoastaan opettajalle, ei toisille opiskelijoille. Tehtävä-työkalun

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

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

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy 2015. Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy 2015. Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op) Kurssiesite Lausekielinen ohjelmointi I Syksy 2015 Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto Vastuuopettaja Jorma Laurikkala, yliopistonlehtori. Luennot,

Lisätiedot

Kurssiesite Lausekielinen ohjelmointi I Syksy 2015. Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Kurssiesite Lausekielinen ohjelmointi I Syksy 2015. Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto Kurssiesite Lausekielinen ohjelmointi I Syksy 2015 Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto Vastuuopettaja Jorma Laurikkala, yliopistonlehtori. Luennot,

Lisätiedot

Ohjelmoinnin perusteet, 1. välikoe

Ohjelmoinnin perusteet, 1. välikoe Ohjelmoinnin perusteet,. välikoe Nimi: Opiskelijanumero:.. 3. 4. Yhteensä Ohje: Ratkaise kaikki tehtävät. Lähdemateriaalia ja tietokonetta ei saa käyttää. Noudata ohjelmointitehtävissä Java-kielen vakiintuneita

Lisätiedot

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')

Lisätiedot

GeoGebra-harjoituksia malu-opettajille

GeoGebra-harjoituksia malu-opettajille GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon

Lisätiedot

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1 KSAO Liiketalous 1 Lomakkeet Lomake on asiakirja, joka sisältää täyttämistä ohjaavia tietoja tai merkintöjä. Wordin lomakekenttä-toiminnolla luodaan näytöllä täytettäviä lomakkeita tai tulostettavia lomakepohjia.

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

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus Sisällys 19. Olio-ohjelmointia Javalla Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit

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

Visma Approval Center. Versiosaate 1.3

Visma Approval Center. Versiosaate 1.3 Visma Approval Center Versiosaate 1.3 Visma Approval Center - Versiosaate 1.3 Kaikkia koskettavat kehitykset Muutokset käyttöliittymän välilehdissä Tarkastajat ja hyväksyjät näkevät ylävalikon jatkossa

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Opintojakso TT00AA11 Ohjelmoinnin jatko (Java) Tavoite Opiskelija ymmärtää olio-ohjelmoinnin problematiikan. Opiskelija osaa määritellä ja käyttää itse

Lisätiedot

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan

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

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.

Lisätiedot

Java-API, rajapinnat, poikkeukset, UML,...

Java-API, rajapinnat, poikkeukset, UML,... Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)

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

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

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

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

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot

JAKELUPISTE KÄYTTÖOHJE 2/6

JAKELUPISTE KÄYTTÖOHJE 2/6 käyttöohjeet JAKELUPISTE KÄYTTÖOHJE 2/6 1. Esittely JakeluPiste on helppo ja yksinkertainen ratkaisu tiedostojen lähettämiseen ja vastaanottamiseen. Olipa kyseessä tärkeä word dokumentti tai kokonainen

Lisätiedot

ASCII-taidetta. Intro: Python

ASCII-taidetta. Intro: Python Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

Asiointipalvelun ohje

Asiointipalvelun ohje Asiointipalvelun ohje Yleistä 1. Kirjautuminen 2. Yhteystiedot 3. Vastaustavan valinta 1. Yleistä 2. Palkkatietojen lataaminen tiedostosta 4. Lomake 1. Yleistä 2. Linkit ja vastaajan tiedot 3. Lomakekäsittely

Lisätiedot

Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen

Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen Asko Ikävalko, k0201291 22.2.2004 TP02S-D Ohjelmointi (C-kieli) Projektityö Työn valvoja: Olli Hämäläinen Asko Ikävalko LOPPURAPORTTI 1(11) Ratkaisun kuvaus Käytetyt tiedostot Tietuerakenteet Onnistuin

Lisätiedot

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen Tekstinkäsittely 1 Peruskäyttö Tavoitteet ja sisältö Tavoite Lyhyen asiakirjan kirjoitustaito Word-tekstinkäsittelyohjelmalla Sisältö Tekstinkäsittelyohjelman esittely Tekstinkäsittelyprosessi Tekstin

Lisätiedot

MOODLE TUTUKSI. Pirkko Vänttilä Oulun aikuiskoulutuskeskus 4.8.2008

MOODLE TUTUKSI. Pirkko Vänttilä Oulun aikuiskoulutuskeskus 4.8.2008 2008 MOODLE TUTUKSI Pirkko Vänttilä Oulun aikuiskoulutuskeskus 4.8.2008 SISÄLLYSLUETTELO 1. ALOITUSNÄKYMÄ... 4 2. TUTUSTUMINEN... 5 3. KESKUSTELUT... 8 4. VIESTIT... 10 5. CHATIT... 10 6. TIEDOSTOJA OMALTA

Lisätiedot

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu JÄRJESTELMÄN KÄYTTÖOHJE LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001

Lisätiedot

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015 Ohjelmointi II Erkki Pesonen Luennot ja harjoitukset Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015 1 Johdantoa kurssilla opiskeluun: oppimistavoitteet. 1. Tiedän mitä asioita kurssilla opiskellaan

Lisätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

Lisätiedot

19/20: Ikkuna olio-ohjelmoinnin maailmaan

19/20: Ikkuna olio-ohjelmoinnin maailmaan Ohjelmointi 1 / syksy 2007 19/20: Ikkuna olio-ohjelmoinnin maailmaan Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

STS Uuden Tapahtuma-dokumentin teko

STS Uuden Tapahtuma-dokumentin teko STS Uuden Tapahtuma-dokumentin teko Valitse vasemmasta reunasta kohta Sisällöt. Sisällöt-näkymä Valitse painike Lisää uusi Tapahtuma 1 Valitse kieleksi Suomi Välilehti 1. Perustiedot Musta reunus kieliversioneliön

Lisätiedot

Hallintaliittymän käyttöohje

Hallintaliittymän käyttöohje Hallintaliittymän käyttöohje 1. Yleisiä huomioita Hallintaliittymän käyttöä helpottavia yleisiä huomioita: - Käytä listanäkymien hakukentissä kentän vieressä olevaa hakunappia, älä enter-näppäintä. - Älä

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

https://njr.yap.fi/cgi-bin/soj2/dispat.exe

https://njr.yap.fi/cgi-bin/soj2/dispat.exe Jäsenrekisteriin kirjautuminen Avaa internet ja kirjoita selaimen osoitekenttään: https://njr.yap.fi/cgi-bin/soj2/dispat.exe Kirjoita käyttäjätunnus ja salasana, ja paina Sisäänkirjaus. Kirjauduttua avautuu

Lisätiedot

MITÄ JAVASCRIPT ON?...3

MITÄ JAVASCRIPT ON?...3 JavaScript MITÄ JAVASCRIPT ON?...3 YLEISTÄ JAVASCRIPTIN SYNTAKSISTA...3 KÄSKYSANAT JA MUUT VARATUT SANAT...3 MUUTTUJIEN, FUNKTIOIDEN JA LUOKKIEN NIMISSÄ...3 HTML-TAGEIHIN VIITTAAVISSA METODINIMISSÄ...3

Lisätiedot

17 BUDJETOINTI. Asiakaskohtainen Budjetti. 17.1 Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust. 17.1.1 Yleistä

17 BUDJETOINTI. Asiakaskohtainen Budjetti. 17.1 Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust. 17.1.1 Yleistä 17 Asiakaskohtainen Budjetti 17.1 Ylläpito-ohjelma 17.1.1 Yleistä BudgCust Ohjelmalla avataan järjestelmään asiakaskohtaisia budjetteja, jotka annetaan kuukausitasolla (oletus). 17.1.2 Parametrit Ohjelmaa

Lisätiedot

VeRan laboratoriotietojen siirtoformaatti

VeRan laboratoriotietojen siirtoformaatti FCG Finnish Consulting Group Oy VERA TOIMINTAOHJEET Rev./pvm 1.03 Hyväksytty 30.4.2010 Sisältö Käyttö Vastuuhenkilö VeRan tiedonsiirtoformaatti Laboratoriot, jotka toimittavat tulokset suoraan VeRaan.

Lisätiedot

Tiedonsiirrot Oodista Noppaan

Tiedonsiirrot Oodista Noppaan Noppa: noppa.aalto.fi WebOodi: oodi.aalto.fi Tiedonsiirrot Oodista Noppaan Versio 2.1 06/2011 Tämä ohje täydentää sekä Oodin että Noppa-kurssiportaalin normaaleja henkilökunnan ohjeita ja on tarkoitettu

Lisätiedot

Doodle helppoa aikatauluttamista

Doodle helppoa aikatauluttamista Doodle helppoa aikatauluttamista Kuinka käytän Doodlea? -vaiheittainen opas käyttöön ja aikataulukyselyn luomiseen http://www.doodle.com/ Doodle on ohjelma joka auttaa sinua aikatauluttamaan kokouksia

Lisätiedot

Ryhmäkirjeen hyödyntäminen

Ryhmäkirjeen hyödyntäminen Ryhmäkirjeen hyödyntäminen hannele.rajaniemi@jyu.fi konkkola@cc.jyu.fi Sisältö Joukkokirje-toiminnon (Wordin ja Excelin yhteiskäytön) periaatteet Excel tietolähteenä tutuksi (valmis harjoitustiedosto)

Lisätiedot

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Ohjelmiston testaus ja laatu. Testausmenetelmiä Ohjelmiston testaus ja laatu Testausmenetelmiä Testausmenetelmiä - 1 Testauksen menetelmien päälähestymistapoina ovat black-box testi testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset 815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Moodle opiskelijan opas. Verkko oppimisympäristön käyttö

Moodle opiskelijan opas. Verkko oppimisympäristön käyttö Moodle opiskelijan opas Verkko oppimisympäristön käyttö Marko Jarva 21.1.2009 Sisällysluettelo 1 Aloitusnäkymä... 3 1.1 Kirjautuminen... 3 2 Kurssin sivu... 4 2.1 Aiheet ja näkymä... 4 3 Omat tiedot...

Lisätiedot

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

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

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. MagicDraw-pikaohje Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia. Alkuvalmistelut Windows (sali TC205) 1) Kirjaudu sisään TTY:n intra-tunnuksella.

Lisätiedot

Versiohallinta ja Subversion. 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi

Versiohallinta ja Subversion. 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi Versiohallinta ja Subversion 26.9.2007 Maunu Tuomainen mttuomai@jyu.fi Versiohallinta yleisesti Ongelma: lähdekoodin ja muun materiaalin säilyttäminen siten, että: se on kaikkien saatavilla tuorein versio

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