Harjoitustyö 1. Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala2 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva.

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

18. Abstraktit tietotyypit
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
JavaScript (c) Irja & Reino Aarinen, 2007
16. Javan omat luokat.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Java-perusteet Kari Kujansuu
2.8.3 Abstraktit tietotyypit
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
Taulukot Jukka Juslin © Jukka Juslin 2006.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
22. Taulukot.
Rakenteinen ohjelmointi
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
13. Pakkaukset.
Perintä. Yleistä Olio-ohjelmoinnin menetelmä muodostaa uusia luokkia aiemmin määriteltyjen luokkien avulla Luokka saa automaattisesti käyttöönsä kaikki.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
9. Periytyminen Javassa.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
String-vertailusta ja Scannerin käytöstä (1/2)
Tietotyypit Tietotyyppi määrittää muuttujan sisältämän datan luonnetta, muistista tarvittavaa tilaa ja sitä, millaisia operaatioita siihen voidaan kohdistaa.
20. Javan omat luokat.
HelloWorld-ohjelma. 5.2 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
Johdatus ohjelmointiin – C kielen peruselementit Tutkijayliopettaja Manne Hannula Opetusharjoittelu (ohjaava opettaja Jukka Jauhiainen)
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
11. Rajapinnat Sisällys Mitä rajapinnat ovat? Kuinka ne määritellään ja otetaan käyttöön? Moniperiytyminen rajapintojen avulla. Varoituksen.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
8. Periytyminen Sisällys Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö.
15. Ohjelmoinnin tekniikkaa
MapInfon tiedostot TAB – Tiedosto, jonka avulla tietokanta avataan MapInfossa. Tiedostossa tietoja kentistä ja koordinaattijärjestelmästä. DAT, XLS. TXT.
16. Javan omat luokat Sisällys Johdanto. Object -luokka: − toString -, equals -, clone - ja getClass -metodit. Comparable -rajapinta: − compareTo.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö.
Toinen harjoitustyö Sokkelon ratkaiseminen oikean käden säännöllä.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö.
15. Ohjelmoinnin tekniikkaa Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi.
String-vertailusta ja Scannerin käytöstä (1/2)
Harjoitustyö.
Tentti.
18. Testaus.
11. Rajapinnat.
7. Hyvä ohjelmointitapa..
Toinen harjoitustyö ASCII-grafiikkaa.
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
5. HelloWorld-ohjelma.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö
7. Näytölle tulostaminen
19. Tietovirrat.
14. Hyvä ohjelmointitapa.
11. Javan valintarakenteet
13. Pakkaukset.
8. Periytyminen.
16. Javan omat luokat.
Harjoitustyö.
15. Ohjelmoinnin tekniikkaa
Tentti.
7. Näytölle tulostaminen
13. Pakkaukset.
4. Luokan testaus ja käyttö olion kautta
2. Olio-ohjelmoinnin perusteita
eli oliotiedostojen käsittely
Esityksen transkriptio:

Harjoitustyö 1

Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala2 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 yhden hengen ryhmissä. − Ideoita voi vaihtaa – koodia ei. Henkilökohtaista ohjausta tarjolla mikroluokissa. Sähköpostilla voi edelleen kysyä. Palautus WETO-järjestelmään noin kuukauden kuluttua. − Testaus automaattisesti julkisilla ja salaisilla testeillä. Tarkka tehtävänanto julki tällä viikolla. Aloita ajoissa ja tee työtä säännöllisesti. − Vuonna 2014 harjoitustyön käytettiin aikaa keskimäärin 40 tuntia.

Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala3 Luokista Alkulimassa liikkuu klimppejä ja plänttejä, jotka molemmat ovat lötköjä. − Koko ( int, > 0) ja perimä ( StringBuilder ) on kaikille lötköille yhteisiä tietoja. − Perimä koostuu kahdeksasta isosta kirjaimesta A–H. − Klimpeistä tunnetaan väri ( char ), joka on joko punainen (′P′) tai sininen (′S′). − Plänteistä tiedetään ovatko ne soikeita ( true ) vai ei ( false ). Kirjoita luokkahierarkia, jossa on abstrakti juuriluokka Lotko sekä konkreettiset aliluokat Klimppi ja Plantti. − Korvaa Object -luokan toString - ja equals -metodit. − Klimpit ovat samoja, jos niiden väri on sama. − Pläntit ovat samoja, jos molemmat joko ovat tai eivät ole soikioita. − Selvitä olion tyyppi metaolion avulla Lotko -luokassa. (Älä tee tyypille attribuuttia.) − Toteuta Comparable -rajapinnan compareTo -metodi hierarkian juuriluokassa siten, että metodissa vertaillaan lötköjen kokoja. Peri LinkitettyLista -luokasta OmaLista -luokka. − Sijoita omaan listaa uusia listaoperaatioita. Esimerkiksi suurimman alkion haku.

Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala4 Luokista Lötkö voi liikkua alkulimassa paikasta toiseen. − Paikat ovat suorakulmaisen koordinaatiston I-neljänneksen koordinaatteja ( x, y ), missä x ja y ovat aina kokonaislukuja ja x ja y voivat olla nolla. − Käyttäjä määrää koordinaattien suurimmat arvot x max ja y max, jolloin x  [0, x max ] ja y  [0, y max ]. − Liikkuminen voi tapahtua suoraan tiettyyn paikkaan tai satunnaisesti. Satunnaisessa liikkumisessa uuden paikan antaa apuluokka. Lötköt voivat lisääntyä, jos paikassa on sopivaa seuraa. − Klimpit lisääntyvät suvullisesti. Paikassa olevista klimpeistä valitaan ensimmäinen equals -mielessä samojen klimppien pari, joka tuottaa yhden jälkeläisen. Jälkeläisen paino on vanhempien painojen keskiarvon kokonaisosa, perimä koostuu ensimmäisen vanhemman 1.–4. ja toisen vanhemman 5.–8. perimämerkeistä ja väri eri kuin vanhempien väri. − Pläntit lisääntyvät suvuttomasti. Jos paikassa ei ole equals -mielessä samaa plänttiä, valitaan lisääntymään paikan suurin pläntti. Pläntti syväkopioi itsensä, puolittaa jälkeläisen painon ja kääntää perimän merkit.

Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala5 Simulaattorin komennot lataa : luo uuden listan ja lataa lötköt listalle tiedostosta. Tiedostosta luetaan myös siemenluku ja x - ja y -koordinaattien maksimiarvot. Lötköille arvotaan paikat siemenluvulla alustetun apuluokan avulla. listaa : tulostaa lötkölistan sisällön näytölle listan alusta loppuun. listaa i : tulostaa listan indeksiin liittyvän lötkön ja sitä equals -mielessä vastaavat lötköt listan järjestyksessä näytölle. listaa x y : tulostaa paikan ( x, y ) lötköt näytölle listan järjestyksessä. liiku : listan kaikki lötköt yrittävät liikkua satunnaisesti yhden paikan verran. Uudet paikat tuotetaan apuluokan avulla. liiku i x y : siirtää listan indeksiin liittyvän lötkön paikkaan ( x, y ). luo : käynnistää lötköjen lisääntymisen. tallenna : tallentaa listan lötköt tiedostoon. Tiedostoon tallennetaan myös siemenluku ja x - ja y -koordinaattien maksimiarvot. lopeta : lopettaa ohjelman.

Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala6 Lötköjen tiedosto Tiedot tallennetaan tekstitiedostoon lotkot. txt. Ensimmäisellä rivillä siemenluku ja x - ja y -koordinaattien maksimiarvot. Muilla riveillä yhden lötkön tiedot per yksi rivi. − Rivin alussa lötkön luokan nimi ( Klimppi tai Plantti ). − Seuraavaksi koko ja perimä sekä luokan oma tieto. Kaikki tiedot erotetaan toisistaan putkimerkillä ja rivit päättyvät putkimerkkiin. Kullekin tiedolle on varattu tilaa kahdeksan merkkiä.

7 Lötköjen tiedosto 42 |5 |3 | Klimppi |10 |AAAAAAAA|P | Klimppi |20 |BBBBBBBB|P | Plantti |100 |ABCDEFGH|false | 1. rivi: siemenluku (42), suurin sallittu x -koordinaatti (5) ja suurin sallittu y -koordinaatti (3). 2. rivi: 10 yksikön kokoinen klimppi, jonka perimä on ″AAAAAAAA″ ja väri on punainen ′P′. 3. rivi: 20 yksikön kokoinen klimppi, jonka perimä on ″BBBBBBBB″ ja väri on punainen ′P′. 4. rivi: pläntti, jonka koko on 100, perimä on ″ABCDEFGH″ ja joka ei ole soikiomainen. Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala7