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



Samankaltaiset tiedostot
Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Hakemistojen sisällöt säilötään linkitetyille listalle.

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Harjoitustyö. 1. Johdanto Tehtävä

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Toinen harjoitustyö. ASCII-grafiikkaa

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

Harjoitus 5 (viikko 48)

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Listarakenne (ArrayList-luokka)

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

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

Ohjelmoinnin perusteet Y Python

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

14. Hyvä ohjelmointitapa 14.1

Java-kielen perusteet

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmoinnin peruskurssi Y1

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Muuttujien roolit Kiintoarvo cin >> r;

16. Javan omat luokat 16.1

9. Periytyminen Javassa 9.1

7/20: Paketti kasassa ensimmäistä kertaa

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Ohjelmoinnin perusteet Y Python

18. Abstraktit tietotyypit 18.1

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet, kurssikoe

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Ohjelmoinnin perusteet Y Python

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

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sukupuu -ohjelma. Ossi Väre ( ) Joni Virtanen ( )

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

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

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

ITKP102 Ohjelmointi 1 (6 op)

9. Periytyminen Javassa 9.1

20. Javan omat luokat 20.1

ITKP102 Ohjelmointi 1 (6 op)

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

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

Java kahdessa tunnissa. Jyry Suvilehto

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

17. Javan omat luokat 17.1

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

Harjoitustyö. 1. Johdanto Tehtävä

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Harjoitus 3 (viikko 39)

Harjoitus 4 (viikko 47)

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

Ohjelmointi 2, välikoe

5. HelloWorld-ohjelma 5.1

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

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

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

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne

14. Poikkeukset 14.1

11. Javan valintarakenteet 11.1

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

Olio-ohjelmointi Syntaksikokoelma

17. Javan omat luokat 17.1

Jypelin käyttöohjeet» Ruutukentän luominen

Lyhyt kertaus osoittimista

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Ohjelmoinnin perusteet Y Python

13. Hyvä ohjelmointitapa (osa 1) 13.1

Taulukot. Jukka Harju, Jukka Juslin

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

Algoritmit 2. Luento 2 To Timo Männikkö

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3

Ohjelmoinnin perusteet Y Python

Java-kielen perusteet

15. Ohjelmoinnin tekniikkaa 15.1

7. Näytölle tulostaminen 7.1

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

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

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

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

Java-kielen perusteita

Poikkeustenkäsittely

Harjoitustyö: virtuaalikone

15. Ohjelmoinnin tekniikkaa 15.1

PALKKA-AINEISTON SIIRTOTIEDOSTO

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

14. Poikkeukset 14.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Transkriptio:

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

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

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

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

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ä. Olio-ohjelmoinnin perusteet Kevät 2015 Jorma Laurikkala 6

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