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

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

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

dogs worlds_ugliest_dog.jpg

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

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Toinen harjoitustyö. ASCII-grafiikkaa

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

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

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

Harjoitus 5 (viikko 48)

Harjoitustyö. 1. Johdanto Tehtävä

Ohjelmoinnin jatkokurssi, kurssikoe

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

4. Luokan testaus ja käyttö olion kautta 4.1

5. HelloWorld-ohjelma 5.1

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

Luento 3. Timo Savola. 7. huhtikuuta 2006

Harjoitus 5 (viikko 41)

Pakkauksen kokoaminen

14. Poikkeukset 14.1

Harjoitus 2 (viikko 45)

Komentotulkki. Kysymyksiä

Ohjelmoinnin perusteet Y Python

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

Luento 4. Timo Savola. 21. huhtikuuta 2006

Metropolia Ammattikorkeakoulu

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

7/20: Paketti kasassa ensimmäistä kertaa

7. Oliot ja viitteet 7.1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Julkaiseminen verkossa

Harjoitus 3 (viikko 39)

Harjoitus 4 (viikko 47)

Mikä yhteyssuhde on?

Pakkauksen kokoaminen

Ohjelmoinnin perusteet Y Python

Ohjelmistojen mallintaminen viikon 4 laskareiden mallivastauksia

Harjoitustyö. 1. Johdanto Tehtävä

20. Javan omat luokat 20.1

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

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

Harjoitus 6 (viikko 42)

Javan perusteita. Janne Käki

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

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

18. Abstraktit tietotyypit 18.1

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat

17. Javan omat luokat 17.1

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

Testitapaukset - Siirtoprotokolla

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

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

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Mitä on periytyminen?

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

12. Näppäimistöltä lukeminen 12.1

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

Luento 2. Timo Savola. 31. maaliskuuta 2006

1 Tehtävän kuvaus ja analysointi

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Java kahdessa tunnissa. Jyry Suvilehto

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

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

Olio-ohjelmointi Javalla

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

14. Poikkeukset 14.1

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

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Harjoitustyö. 1. Johdanto Tehtävä

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

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

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

16. Javan omat luokat 16.1

17. Javan omat luokat 17.1

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

9. Periytyminen Javassa 9.1

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

15. Ohjelmoinnin tekniikkaa 15.1

Ohjelmoinnin peruskurssien laaja oppimäärä

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (TIEA2.1)

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

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

Android ohjelmointi Tunti 5. SQLite, Cursor, Intent ja ADB

Listarakenne (ArrayList-luokka)

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät Olio-ohjelmoinnin perusteet (eli Oope) Laajuus

Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät 2018

Ohjelmoinnin perusteet Y Python

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

[Jnix näyttökoe. o ei ole sallittua käyttää mitään verkkolevyjakoa tai mitään siihen rinnastettavaa järjestelmdä.

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Transkriptio:

Harjoitustyö 1

Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ tehdään pääosin itse. Ideoita voi vaihtaa koodia ei. Henkilökohtaista ohjausta mikroluokissa. Ohjaajilta voi kysyä sähköpostilla. Palautus WETO-järjestelmään noin kahden kuukauden kuluttua. Testaus automaattisesti julkisilla ja salaisilla testeillä. Palautustakarajaksi on vahvistunut perjantai 21.4. 28.4. Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 2

Harjoitustyö Perjantaina 24.3. on välipalautuspiste, johon mennessä täytyy palauttaa WETOon harjoitustyön Javalla toteutettu luokkahierarkia ja suunnitelma työn rakenteesta (luokat, rajapinnat ja näiden väliset suhteet) UML-luokkakaaviona. WETO auttaa opettajaa tarkistamalla koodia automaattisesti. Tarkka tehtävänanto julki tällä viikolla. Varaa työlle aikaa, aloita ajoissa ja tee työtä säännöllisesti. Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 3

Komentoikkuna Komentoikkunassa vuorovaikutetaan käyttöjärjestelmän kanssa tekstuaalisesti komentoja kirjoittamalla. Moni komento liittyy tiedostojärjestelmään. Esimerkiksi cd-komennolla voidaan vaihtaa hakemistoa. Tiedostojärjestelmä on organisoitu hakemistopuuksi. Hakemisto (kansio) voi sisältää tiedostoja ja muita hakemistoja. pics cats ceiling_cat.gif dangerous_kitten.jpg / temp memo_backup.txt dogs worlds_ugliest_dog.jpg Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 4

Luokista Tiedostojärjestelmän sisältöä mallinnetaan konkreettisilla Tiedosto- ja Hakemisto-luokilla. Tiedostolle on ominaista sen koko tavuina (int, 0). Hakemistolla on lista, josta on viitteet hakemiston sisältämiin tiedostoihin ja muihin hakemistoihin. Lisäksi hakemistosta on viite ylihakemistoon. (Juurihakemiston ylihakemistoviite on null-arvoinen.) Keskinäisillä viitteillä yhdistetyt oliot muodostavat hakemistopuun. Puussa voidaan liikkua ylös ja alas viitteitä seuraamalla. Edellisen kalvon hakemistopuu viitteiden yhdistäminä olioina. Soikot ovat hakemisto-olioita ja suorakaiteet tiedosto-olioita. cats ceiling_cat.gif pics / dogs dangerous_kitten.jpg temp null memo_backup.txt worlds_ugliest_dog.jpg Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 5

Luokista Tee Tiedosto- ja Hakemisto-aliluokille abstrakti Tieto-yliluokka, jossa on yhteinen tieto eli nimi (StringBuilder). Kapseloi luokat ja korvaa luokissa tostring-metodi ketjuttaen. Korvaa yliluokassa equals-metodi ja toteuta siinä Comparablerajapinta. Vertailu tapahtuu String-luokan metodeilla. Tee kopiorakentajat Tiedosto- ja Tieto-luokille. Nimi syväkopioidaan. Hakemisto-luokan on toteutettava opettajan antama rajapinta. Sijoita luokkahierarkia tiedot-nimiseen pakkaukseen. Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 6

Luokista Peri LinkitettyLista-luokasta OmaLista-luokka. Listaan on kirjoitettava ainakin opettajan antamassa rajapinnassa määritellyt uudet listaoperaatiot. Operaatioiden on oltava puhtaita : niissä ei saa esiintyä Tieto-tyyppiä. Esimerkiksi alkion lisäys siten, että alkioiden välille muodostuu kasvava järjestys. Hakemisto-luokalla on OmaLista-tyyppinen attribuutti. Listan viitteet liittävät hakemiston sisällön (tiedostot ja alihakemistot) hakemistoon. Tee omat luokat komentojen tulkille ja käyttöliittymälle ja tee erillinen main-metodin sisältävä ajoluokka. Tulkkiluokka toteuttaa komennot hakemistopuuta käsittelemällä. Luokassa on Hakemisto-tyyppinen attribuutti hakemistopuun juurelle. Kaikki käyttäjän antamat tiedot luetaan käyttöliittymässä. Käyttöliittymässä tehdään valtaosa tulostuksista. Pääsilmukan luonteva paikka on käyttöliittymän luokka. Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 7

Tulkin komennot md: luo parametrina annetulla nimellä alihakemiston nykyiseen hakemistoon, jos samannimistä alihakemisto ei jo ole. mf: luo annetun nimisen ja kokoisen tiedoston nykyiseen hakemistoon, jos samannimistä tiedostoa ei jo ole. cd: asettaa työhakemistoksi joko yli- tai alihakemiston, jos voidaan siirtyä. Ylihakemistoon viitataan kahdella pisteellä. Ilman parametria palataan juureen. ls: listaa näytölle annetun nimisen tiedoston tai hakemiston tiedot, jos listauksen kohde löytyy nykyisestä hakemistosta. Listaa nykyisen hakemiston sisällön, jos parametria ei anneta. find: listaa hakemiston rekursiivisesti esijärjestyksessä. rm: poistaa varmistamatta tiedoston tai hakemiston, jos sellainen on nykyhakemistossa. Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 8

Tulkin komennot cp: kopioi tiedoston annetun nimiseksi uudeksi tiedostoksi, jos nimellä löydetään tiedosto nykyhakemistosta ja hakemistossa ei ole vielä uuden nimistä tiedostoa. mv: nimeää tiedoston annetun nimiseksi uudeksi tiedostoksi, jos nimellä löydetään tiedosto nykyhakemistosta ja hakemistossa ei ole vielä uuden nimistä tiedostoa. exit: lopetaa ohjelman. Muuta: Komentokehotteessa näkyy nykyhakemiston polku. Pienet ja isot kirjaimet katsotaan eri merkeiksi. Nimissä sallitaan vain tietyt merkit. Kaikkiin virheisiin reagoidaan tulostamalla merkkijono Error!. Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 9

Esimerkkiajo Welcome to SOS. />md pics />cd pics /pics/>md cats /pics/>cd cats /pics/cats/>mf ceiling_cat.gif 3677 /pics/cats/>mf dangerous_kiten.jpg 13432 /pics/cats/>mv dangerous_kiten.jpg dangerous_kitten.jpg /pics/cats/>ls ceiling_cat.gif 3677 dangerous_kitten.jpg 13432 /pics/cats/>cd.. /pics/>md dogs /pics/>cd dogs /pics/dogs/>mf world's_ugliest_dog.jpg 118088 Error! /pics/dogs/>mf worlds_ugliest_dog.jpg 118088 Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 10

Esimerkkiajo /pics/dogs/>cd />ls pics/ 2 />md temp />cd temp /temp/>mf memo.txt 42 /temp/>cp memo.txt memo_backup.txt /temp/>ls memo.txt memo.txt 42 /temp/>ls memo_buk.txt Error! /temp/>ls memo_backup.txt memo_backup.txt 42 /temp/>rm memo.txt /temp/>cd.. Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 11

Esimerkkiajo />find /pics/ 2 /pics/cats/ 2 /pics/cats/ceiling_cat.gif 3677 /pics/cats/dangerous_kitten.jpg 13432 /pics/dogs/ 1 /pics/dogs/worlds_ugliest_dog.jpg 118088 /temp/ 1 /temp/memo_backup.txt 42 />exit Shell terminated. Olio-ohjelmoinnin perusteet Kevät 2017 Jorma Laurikkala 12