Ohjelmointityö 3. Mikko Laamanen

Koko: px
Aloita esitys sivulta:

Download "Ohjelmointityö 3. Mikko Laamanen 185667"

Transkriptio

1 Ohjelmointityö 3 Mikko Laamanen

2 Sisällysluettelo Tehtävän määrittely ja ratkaisuperiaate... 1 Tehtävän määrittely... 1 Ratkaisuperiaate... 1 Ohjelman käyttöohje... 1 Syötteet ja tulosteet... 1 Ohjelman sisältämät tarkastukset ja virheilmoitukset... 2 Ohjelman rajoitukset... 2 Ajo-ohje... 3 Ohjelman toiminta... 3 Tietorakenteet... 3 Ohjelman rakennet... 3 Luokat, tietojäsenet ja metodit... 4 Joukkue-luokka... 4 Sarja-luokka... 5 Tiedostot-luokka... 6 Ottelu-luokka... 6 Lue-luokka... 6 Valikot-luokka... 7 Muutosohjeet... 7 Testaus... 8 Liitteet Liite 1: Tehtäväpaperi Liite 2: Projektisuunnitelma Liite 3: Ohjelmalistaus Valikot.java: Joukkue.java: Lue.java: Sarja.java: Tiedostot.java:... 43

3 Tehtävän määrittely ja ratkaisuperiaate Tehtävän määrittely Tehtävänä oli tehdä ohjelma, joka ylläpitää jääkiekkosarjan tulostaulukkoa kunkin pelikierroksen jälkeen. Pelikierrosten ei kuitenkaan välttämättä tarvitse olla täysiä kierroksia. Lisäksi piti tehdä ohjelma, jolla pystyy tarvittaessa korjaamaan aikaisemmin virheellisesti syötettyjä tietoja. Ohjelman pitää pystyä myös tulostamaan joukkueittain paremmuusjärjestyksessä oleva sarjataulukko. Ratkaisuperiaate Tehtävä on ratkaistu kokoamalla ohjelma useista osista (luokista) jotka kukin hoitavat omat osansa ja toimintonsa mahdollistaen tehtävän annossa määritellyt asiat. Esimerkiksi yksi ohjelman osista on nimeltään "Joukkue" ja se huolehtii kaikista joukkuetta koskevista tiedoista ja niiden tietojen käsittelystä. Näitä eri ohjelman osia käsitellään enemmän osiossa "Ohjelman rakenne". Ohjelman käyttöohje Syötteet ja tulosteet Kaikki ohjelman tarvitsemat syötteet syötetään ajon aikana, eli ohjelma ei tarvitse toimiakseen komentoriviparametreina annettavia syötteitä. Kaikkien syötteiden syöttö tapahtuu silloin kun ohjelma niitä pyytää. Syöte kirjoitetaan komentoriville ja painetaan enter näppäintä. Malliajo: Tervetuloa kayttamaan jaakiekkosarjan tulostaulukon yllapitoohjelmaa Paavalikko Jatka aikaisemman sarjataulukon kasittelya: 1 Aloita uuden sarjataulukon yllapito: 2 Lopeta: Valintasi: Uuden sarjataulukon luonti Montako joukkuetta osallistuu: 3 Anna 1. joukkueen nimi: testijoukkue1 1

4 Anna 2. joukkueen nimi: testijoukkue2 Anna 3. joukkueen nimi: testijoukkue3 Tallennetaanko tiedot? (k/e): k Anna tiedoston johon tiedot tallennetaan nimi (esim. sarja2010): testisarja Tiedostonimi on vapaa. Tallennetaan. Valintasi: Syota seuraava(1.) kierros: 1 Paavalikko: Paavalikko Jatka aikaisemman sarjataulukon kasittelya: 1 Aloita uuden sarjataulukon yllapito: 2 Lopeta: Valintasi: 0 Ohjelman suoritus loppui. Ohjelman toiminta on malliajon kaltaista koko ajan. Ohjelma huolehtii siitä, ettei käyttäjä syötä tietoja jotka eivät ole ohjelmalle kelpaavia. Ohjelman sisältämät tarkastukset ja virheilmoitukset Jokaisen ohjelmalle annetun lukusyötteen oikeellisuus tarkistetaan ja tarvittaessa syötteestä annetaan virheilmoitus ja pyydetään uutta syötettä. Merkkijono syötteitä ei sen sijaan ohjelmassa tarkisteta muulloin kuin tietojen tallennusta tai latausta suoritettaessa. Ohjelma tarkistaa näissä tapauksissa, että onko syötteenä annetun merkkijonon ja ohjelman lisäämän tiedostopäätteen nimistä tiedostoa olemassa. Jokaisesta lukusyötteestä tarkistetaan, että se todellakin on luku. Ohjelman kaikkien lukusyötteiden pitää myös olla kokonaislukuja. Tämän jälkeen tarkistetaan vielä että sen arvo on vähintään 0 ja enintään Lisäksi ohjelmassa voidaan tarkistaa, että syöte on muuten ohjelman suoritukselle kelpaava, eli esimerkiksi valikoissa naivigoitaessa hyväksytään vain ohjelman tarjoamia syötevaihtoehtoja. Ohjelman rajoitukset Ohjelman syötteitä on rajoitettu niin, että käyttäjä voisi ohjelman käytön kannalta antaa vain suhteellisen järkeviä syötteitä, vaikka lukusyötteiden yläraja on asetettu silti suhteellisen suureksi. 2

5 Ohjelman merkkijono syötteiden pituutta ei ole rajoitettu, vaan kaikki rajoitukset koskevat luku syötteitä. Kaikkien ohjelmaan syötettävien lukujen tulee olla joko yhtäsuuria tai suurempia kuin 0 ja suurin mahdollinen syötettävä luku on Lukusyötteiden koko on rajoitettu tuhanteen koska oletetusti ohjelmalla ei tarvita syöttää lähellekkään näin suuria lukuja. Tällä karsitaan mahdollisia virhesyötteitä. Valikoissa syötteet on kuitenkin rajoitettu juuri niiksi vaihtoehdoiksi joita ohjelma tarjoaa. Ajo-ohje Ohjelman lähdekoodi löytyy osoitteesta: cs.joensuu.fi/~mlaamane/ohjelmointityo/ Ohjelman api löytyy osoitteesta: cs.joensuu.fi/~mlaamane/ohjelmointityo/api/ Ohjelman kääntäminen lähdekoodista toiminnalliseen versioon tapahtuu antamalla komentorivillä komento: javac Valikot.java Valikot.java sisältää ohjelman pääohjelman ja sen kääntäminen kääntää myös muut ohjelman osat. Kun ohjelma on käännetty, sen voi suorittaa komentorivillä komennolla: java Valikot Ohjelman toimintaan ei tarvita parametrisyötteitä. Ohjelman toiminta Tietorakenteet Joukkue-luokka Luokassa käytetään linkitettyä listaa joukkue-olion pelaamien otteluiden tallentamiseen. Tiedostot-luokka Luokan metodit käsittelevät eli lataavat ja tallentavat olioita tiedostoihin ja tiedostoista oliotaulukkoina. Sarja-luokka Luokassa käytetään oliotaulukkoa sarjaan kuuluvien joukkueiden eli Joukkue-olioiden tallentamiseen. Sarja-luokka käyttää myös linkitettyä listaa kaikkien sarjassa pelattujen otteluiden eli Ottelu-olioiden tallentamiseen. Loput ohjelmassa käytettävistä tiedoista käsitellään lukuisissa paikallismuuttujissa. Ohjelman rakennet Ohjelma koostuu kuudesta luokasta jotka ja joiden tehtävät ovat: 3

6 Ottelu-luokasta luotu olio pitää sisällään tiedot kyseiseen otteluun osallistuneista joukkueista, sen aikana tehdyistä maaleista ja kierroksesta jonka aikana ottelu on pelattu. Sarja-luokasta luotu olio sisältää tiedon sarjaan osallistuvista joukkueista, jo pelatuista otteluista ja kierroksista, sekä tiedoston nimen johon sarja on mahdollisesti tallennettu. Tiedostot-luokan tarkoituksena on staattisesti tallentaa sarjoja tiedostoihin ja myös ladata jo aikaisemmin tallennettuja sarjoja. Joukkue-luokasta luotu olio sisältää tiedot yhdestä sarjaan osallistuvasta joukkueesta. Joukkueen tietoja ovat sen nimi, pelatut ottelut, otteluiden lukumäärä, voittojen-, tappioiden-, ja tasapelien lukumäärä, sekä tehtyjen- ja päästettyjen maalien lukumäärä. Näiden lisäksi joukkue olio sisältää myös joukkueen saamat pisteet eli sijoituksen sarjassa. Lue-luokka sisältää staattiset metodit lukujen sekä tekstin lukemiseen käyttäjältä. Lukujen lukemisessa varmistetaan syötteen olevan luku ja pyydetään käyttäjältä uutta lukua virheellisen syötteen sattuessa. Valikot-luokka sisältää toiminnot käyttäjän kanssa kommunikoimiseen. Luokka tulostaa kaikki valikot ja huolehtii syötteiden vastaan ottamisesta ja käsittelystä. Luokat, tietojäsenet ja metodit Joukkue-luokka Luokan attribuutit: private String nimi joukkueen nimi. private LinkedList<Ottelu> ottelut joukkueen pelaamat ottelut. private int ottelutlkm joukkueen pelaamien otteluiden lukumäärä. private int voitot joukkueen voittamien otteluiden lukumäärä. private int tasapelit joukkueen pelaamien otteluiden lukumäärä jotka ovat päättyneet tasapeliin. private int haviot joukkueen häviämien otteluiden lukumäärä. private int tehdytmaalit joukkueen tekemien maalien lukumäärä. private int paastetytmaalit joukkueen päästämien maalien lukumäärä. private int pisteet joukkueen pisteet sarjassa. Luokan metodit: public void paivitajoukkue()-metodi käy läpi kaikki joukkueen pelaamat pelit ja niiden pohjalta päivittää joukkueen tiedot, jotka ovat riippuvaisia pelatuista peleistä (esim. voitot ja häviöt). public boolean jopelattu(string joukkue, int kierros)-metodi tarkistaa, että onko joukkue pelannut jo ottelun parametrina annettua joukkuetta vastaan parametrina annettuna kierroksena. public String getnimi()-metodi joka palauttaa joukkueen nimen. public LinkedList<Ottelu> getottelut()-metodi joka palauttaa linkitetyn listan joukkueen jo pelaamista otteluista. public void tulostaottelut()-metodi joka tulostaa joukkueen pelaamat ottelut. 4

7 public int getottelutlkm()-metodi joka palauttaa joukkueen pelaamien otteluiden lukumäärän. public int getvoitot()-metodi joka palauttaa joukkueen voittojen lukumäärän. public int gethaviot()-metodi joka palauttaa joukkueen häviöiden lukumäärän. public int gettehdytmaalit()-metodi joka palauttaa joukkueen tekemien maalien lukumäärän. public int getpaastetytmaalit()-metodi joka palauttaa joukkueen päästämien maalien lukumäärän. public int getpisteet()-metodi joka palauttaa joukkueen pistemäärän. public String tostring()-metodi joka palauttaa joukkueen tiedot merkkijonoon kerättynä. Sarja-luokka Luokan attribuutit: private Joukkue[] joukkueet sarjaan osallistuvat joukkueet. private LinkedList<Ottelu> ottelut sarjassa pelatut ottelut. private String tiedosto tiedoston, johon sarjan tiedot on tallennettu, nimi. private int kierrokset sarjassa pelattujen kierrosten lukumäärä. Luokan metodit: public void lisaaottelu(ottelu ottelu)-metodi joka lisää parametrina syötetyn ottelun sarjan tietoihin. public void korjaaottelu(string joukkue1, String joukkue2, int kierros)-metodi tietyn ottelun korjaamiseen. Jos parametreina annettujen tietojen mukainen ottelu löytyy sarjasta, metodi poistaa sen ja aloittaa kyseisien tietojen pohjalta uuden ottelun syötön. public Ottelu getottelu(string joukkue1, String joukkue2, int kierros)-metodi joka hakee sarjasta ottelun joka tästää metodin saamiin parametreihin. public void Lajittele()-metodi joka lajittelee sarjan joukkueet paremmusjärjestykseen eli niin että eniten pisteitä omaava joukkue on ensimmäisenä. public void settiedosto(string tiedosto)- metodi asettaa sarjan tallennustiedoston nimeksi parametrina saamansa merkkijonon. public String gettiedosto()-metodi palauttaa tiedoston nimen johon sarja on tallennettu. public void setkierrokset(int kierros)-metodi joka asettaa parametrinaan saamansa kokonaisluvun sarjassa menneellään olevan kierroksen arvoksi. public int getkierrokset()-metodi palauttaa sarjassa menneillään olevan kierroksen. public Joukkue[] getjoukkueet()-metodi joka palauttaa taulukkona sarjaan osallistuvat joukkueet. public int joukkueetlkm()-metodi joka palauttaa sarjaan osallistuvien joukkueiden lukumäärän. public boolean joukkueloytyy(string joukkue)-metodi palauttaa tiedon siitä, että osallistuuko metodille parametrina annetun merkkijonon niminen joukkue sarjaan. public void tulostaottelut()-metodi joka tulosaa muotoillusti kaikki sarjassa pelatut ottelut. public void tulostasarja()-metodi tulostaa muotoillusti sarjataulukon. 5

8 Tiedostot-luokka Luokan attribuutit: Ei attribuutteja. Luokan metodit: public static boolean tallennus(sarja[] sarja)-staattinen metodi joka tallentaa sarjan tiedostoon joka käy ilmi sarjan sisältämistä tiedoista. public static boolean tallennus(sarja[] sarja, String tiedosto)-staattinen metodi joka tallentaa sarjan tiedostoon jonka nimi on annettu metodille parametrina. public static Sarja[] lataus(string tiedosto) throws Exception-staattinen metodi joka lataa sarjan tiedostosta jonka nimen metodi on saanut parametrinaan. Ottelu-luokka Luokan attribuutit: private Joukkue joukkue1 toinen otteluun osallistuvista joukkueista. private Joukkue joukkue2 toinen otteluun osallistuvista joukkueista. private Joukkue tasapeli tasapeli niminen joukkue joka palautetaan jos ottelu on päättynyt tasapeliin. private int j1maalit toisen joukkueen maalien lukumäärä. private int j2maalit toisen joukkueen maalien lukumäärä. private int kierros kierros jolla ottelu on pelattu. Luokan metodit: public Joukkue voittaja()-metodi joka palauttaa ottelun voittaneen joukkueen. public Joukkue getjoukkue1()-metodi joka palauttaa toisen ottelussa pelanneista joukkueista. public Joukkue getjoukkue2()-metodi joka palauttaa toisen ottelussa pelanneista joukkueista. public int getjoukkue1maalit()-metodi joka palauttaa toisen ottelussa pelanneen joukkueen ottelussa tekemät maalit. public int getjoukkue2maalit()-metodi joka palauttaa toisen ottelussa pelanneen joukkueen ottelussa tekemät maalit. public int getkierros()-metodi joka palauttaa kierroksen jolla ottelu on pelattu. public void tulostaottelu()-metodi joka tulostaa ottelun tiedot muotoillusti. Lue-luokka Luokan attribuutit: static Scanner skanneri Scanner-olio jonka avulla syötteitä luetaan komentoriviltä. Luokan metodit: public static String string()-metodi lukee käyttäjältä merkkijonon ja palauttaa sen sellaisenaan. public static int integer()-metodi lukee käyttäjältä merkkijonon josta se sitten yrittää parsia kokonaisluvun. Jos merkkijonosta saadaan kokonaisluku, palautetaan se 6

9 samantien. Jos merkkijonon parsiminen epäonnistuu, metodi kutsuu itseään rekursiivisesti kunnes käyttäjä antaa oikeanlaisen syötteen. Valikot-luokka Luokan attribuutit: private static Sarja sarja käsiteltävä Sarja-olio. private static Ottelu ottelu käsiteltävä Ottelu-olio. private static boolean tallennettu tieto siitä, että onko luotu sarja jo tallennettu. Luokan metodit: public static void paavalikko()-metodi piirtää päävalikon ja kutsuu valinta-metodia jossa suoritetaan valikolle sopivat kyselyt. public static int valikko1()-metodi piirtää valikon vanhan sarjataulukon lataamista varten ja kutsuu valinta-metodia jossa suoritetaan valikolle sopivat kyselyt. public static int valikko2()-metod piirtää uuden sarjataulukon luomiseen sopivan valikon ja kutsuu valinta-metodia jossa suoritetaan valikolle sopivat kyselyt. public static int valinta(int valinta)-metodi joka tuottaa parametrista riippuen erilaisia kyselyjä käyttäjälle ja jatkaa ohjelman suoritusta käyttäjän antamien syötteiden perusteella. public static void kierros(int kierros)-metodi joka pyytää käyttäjää syöttämään yhden kokonaisen kierroksen peli kerrallaan. public static void sarjantallennus(sarja sarja)-metodi joka käynnistää käsiteltävän sarjan tallennuksen. Tarvittaessa kysyy käyttäjältä tiedoston nimen johon sarja halutaan tallentaa. public static void ottelunsyotto()-metodi tuottaa yhden ottelun syöttämiseen tarkoitetun valikon jossa kaikki tarvittavat tiedot kysellään käyttäjältä. public static void ottelunsyotto(string nimi1, String nimi2, int kierros)-metodi tuottaa valikon jossa parametreina saatujen tietojen pohjalta luotuun otteluun kysellään käyttäjältä maalien määrät. public static void ottelunkorjaus()-metodi joka tuottaa ottelun korjaukseen tarvittavan valikon jossa kaikki tarvittavat tiedot kysellään käyttäjältä. public static void etsiottelu()-metodi tuottaa valikon jossa ottelun tunnistetiedot kysellään käyttäjältä ja sen jälkeen ottelun muut tiedot tulostetaan jos kyseinen ottelu käsiteltävästä sarjasta löytyy. public static void tulostakeskelle(string s)-metodi joka tulostaa parametrina saamansa merkkijonon keskitetysti Windowsin komentokehotteessa. public static void tulostaviiva()-metodi joka tulostaa 80 merkkiä pitkän viivan. public static void tulostaviiva(int pituus)-metodi joka tulostaa parametrinaan saamansa kokonaisluvun mittaisen viivan. public static String getviiva(int pituus)-metodi joka palauttaa parametrinaan saamansa kokonaisluvun mittaisen merkkijonon joka koostuu viiva-merkeistä ('-'). public static void main(string[] args)-metodi joka käynnistää koko ohjelman suorituksen. Tulostaa tervehdysviestin ja kutsuu paavalikko()-metodia. Muutosohjeet Ohjelma on harjoitustyö, eikä sitä ole tarkoitettu muutettavaksi. 7

10 Testaus Testeissä on pyritty suorittamaan kaikki ohjelman koodit vähintään kerrran. Osa ohjelman osista käydään testeissä kuitenkin useita kertoja läpi. Päävalikko Testin tarkoitus: Odotettu tulos: Saatu tulos: Testataan valikon toimintaa syötteellä 1 Siirrytään valikkoon jossa voidaan suorittaa aikaisemman sarjataulukon käsittelyä. Testataan valikon toimintaa syötteellä 2 Testataan valikon toimintaa syötteellä 0 Testataan jotain muuta syötettä kuin mitä ohjelma antaa vaihtoehdoiksi. Syöte: 3 Testataan jotain muuta syötettä kuin mitä ohjelma antaa vaihtoehdoiksi. Syöte A Siirrytään valikkoon jossa voidaan aloittaa uuden sarjataulukon ylläpito. Ohjelman suoritus lopetetaan. Ohjelma antaa ilmoituksen virheellisestä syötteestä ja pyytää syötettä uudelleen. Ohjelma antaa ilmoituksen virheellisestä syötteestä ja pyytää syötettä uudelleen. Uuden sarjataulukon luonti valikko, osallistuvien joukkueiden määrä. Testin tarkoitus: Odotettu tulos: Saatu tulos: Annetaan syötteeksi negatiivinen luku, jotta nähdään kuinka ohjelma reagoi epäloogiseen syötteeseen. Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää syöttämään syötteen uudelleen. Annetaan syötteeksi merkkijono, ei siis lukua kuten ohjelma tarvitsee. Syöte: Aaa3 Annetaan syötteeksi kokonaisluku, jonka pitäisi olla ohjelmalle kelpaava syöte. Syöte 1 Annetaan syötteeksi kokonaisluku, jonka pitäisi olla ohjelmalle kelpaava syöte. Syöte 2 Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää syöttämään syötteen uudelleen. Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää syöttämään syötteen uudelleen, koska sarjaan täytyy osallistua vähintään kaksi joukkuetta. Syöte on oikeanlainen, joten siirrytään ohjelman suorituksessa eteenpäin. Uuden sarjataulukon luonti valikko, osallistuvien joukkueiden nimet. Testin tarkoitus: Odotettu tulos: Saatu tulos: Annetaan syötteeksi Siirrytään kysymään seuraavan mikätahansa merkkijono. Syöte: joukkueen nimeä kunnes kaikki 8

11 joukkue1 joukkueet on nimetty. Tämän jälkeen siirrytään ohjelman suorituksessa eteenpäin. Uuden sarjataulukon luonti valikko, kysely että halutaanko syötetyt tiedot tallentaa. Testin tarkoitus: Odotettu tulos: Saatu tulos: Ohjelma tarjoaa syötteeksi Ohjelma kysyy tiedostolle kahta vaihtoehtoa joko k tai e. Syötteeksi annetaan k. nimeä johon tiedot halutaan tallentaa. Syötteeksi annetaan e. Siirrytään ohjelman suorituksessa eteenpäin Annetaan jokin muu kuin ohjelman antama syötevaihtoehto. Syöte: a. tallentamatta valittuja tietoja. Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää uutta syötettä. Uuden sarjataulukon luonti valikko, syötettyjen tietojen tallennus. Testin tarkoitus: Odotettu tulos: Saatu tulos: Annetaan ohjelmalle jokin tiedoston nimi jonka tiedetään olevan vapaana. Syöte: testitallennus Tiedoston tallennus onnistuu ja ohjelman suorituksessa siirrytään eteenpäin. Annetaan ohjelmalle jokin tiedoston nimi jonka tiedetään olevan varattu. Syöte: varattunimi Ohjelma ilmoittaa, että annetun niminen tiedosto on jo olemassa ja kysyy, että halutaanko sen yli kirjoittaa. Uuden sarjataulukon luonti valikko, syötettyjen tietojen tallennus, tiedoston ylikirjoitus kysymys. Testin tarkoitus: Odotettu tulos: Saatu tulos: Annetaan syötteeksi ohjelman Tiedoston yli kirjoitetaan ja antamista syötteistä ( k tai e ) syöte: k ohjelman suoritusta jatketaan Syöte: e Tiedoston yli ei kirjoiteta ja ohjelma pyytää uutta tiedoston nimeä johon tiedot voidaan tallentaa. Annetaan syötteeksi jokin muu kuin ohjelman antama syötevaihtoehto. Syöte 10 Ohjelma jatkaa kysymyksen kysymistä kunnes käyttäjä antaa jommankumman annetuista syötevaihtoehdoista. Uuden sarjataulukon luonti valikko, seuraavaksi tehtävä asia(paluu päävalikkoon tai seuraavan kierroksen syöttäminen). 9

12 Testin tarkoitus: Odotettu tulos: Saatu tulos: Testataan valikon toimintaa syöttämällä jokin muu syöte kuin ehdotettu(1 tai 0) syötevaihtoehto. Syöte: B Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää syötettä uudelleen. Annetaan oikeanlainen syöte. Syöte: 1 Annetaan oikeanlainen syöte. Syöte: 0 Siirrytään valikkoon jossa syötetään seuraavan kierroksen tiedot peli kerrallaan. Siirrytään päävalikkoon. Uuden sarjataulukon luonti valikko, seuraavan kierroksen syöttäminen. Testin tarkoitus: Odotettu tulos: Saatu tulos: Annetaan syötteeksi positiivisia kokonaislukuja. Kokeilu syöte: 1 Ohjelma kysyy kierroksen kaikkien pelien tulokset ja siirtyy suorituksessa eteenpäin. Annetaan syötteeksi jokin syöte joka ei voi olla tehtyjen maalien määrä, kuten A3 Annetaan syötteeksi vielä jokin toinen syöte joka ei voi olla tehtyjen maalien määrä, kuten -3 Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää syötettä uudestaan. Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää syötettä uudestaan. Kunkin syötetyn kierroksen jälkeen ohjelma tulostaa sarjataulukon ja tämän jälkeen kysyy, että haluaako käyttäjä tallentaa syötetyt tiedot. Tallennus kysely on sama kuin jo aikaisemmin testattu tallennus (syöte: k tai e ). Tämän jälkeen kysytään, että mitä seuraavaksi halutaan tehdä. Tämä on sama valikko kuin jo aikaisemmin testattu valikko. Viimeistään kun kaikki kierrokset on syötetty, palataan päävalikkoon. Aikaisemman sarjataulukon käsittelyn jatkaminen, tiedoston nimen kysely. Testin tarkoitus: Odotettu tulos: Saatu tulos: Annetaan tiedoston nimi jonka tiedetään sisältävän aikaisemmin tallennettuja tietoja. Ohjelma lataa tiedostosta aikaisemman sarjataulukon ja tulostaa sen tiedot. Tämän jälkeen tulostetaan valikko jossa kysytään, että mitä sarjataulukolle halutaan tehdä. Annetaan tiedoston nimi jonka tiedetään oikeasti puuttuvan. Annetaan syötteeksi 0. Joka on syöte jonka ohjelma ilmoittaa peruuttavan toiminnon. Ilmoitetaan, että kyseisen nimistä tiedostoa ei löytynyt ja pyydetään käyttäjää syöttämään tiedoston nimi uudelleen. Vanhan sarjataulukon lataus peruutetaan ja palataan päävalikkoon. 10

13 Aikaisemman sarjataulukon käsittelyn jatkaminen, kun tiedot on ladattu. Testin tarkoitus: Odotettu tulos: Saatu tulos: Testataan valikon toimintaa Tulostaa sarjan tilanteen ja syötteellä: 1 palaa takaisin samaan Testataan valikon toimintaa syötteellä: 2 Testataan valikon toimintaa syötteellä: 3 Testataan valikon toimintaa syötteellä: 4 Testataan valikon toimintaa syötteellä: 5 Testataan valikon toimintaa syötteellä: 0 Testataan valikon toimintaa syötteellä: C (ei kuulu ohjelman antamiin vaihtoehtoihin) Testataan valikon toimintaa syötteellä: -1 (ei kuulu ohjelman antamiin vaihtoehtoihin) valikkoon. Tulostaa kaikki sarjan ottelut niin että yhden joukkueen pelit näytetään kerrallaan. Palaa tulostuken jälkeen samaan valikkoon. Siirtyy kyselemään etsittävän ottelun tietoja, eli ottelun joukkueiden nimiä ja kierrosta jolla ottelu on pelattu. Jos ottelu löytyy, ohjelma tulostaa sen tiedot. Lopuksi ohjelma palaa takaisin samaan valikkoon. Siirtyy ottelun korjaus osioon jossa ohjelma kyselee halutun ottelun tiedot ja sen jälkeen tulostaa nykyiset tiedot. Tämän jälkeen ohjelman tulisi aloittaa uusien tietojen kysely käyttäjältä. Ohjelma tallentaa sarjan tiedot, oli niitä muutettu tai ei. Ohjelma myös ilmoittaa, että onnistuiko tallennus vai ei. Siirrytään takaisin päävalikkoon. Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää uutta syötettä. Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää uutta syötettä. Aikaisemman sarjataulukon käsittelyn jatkaminen, tietyn ottelun etsiminen joko tulostusta tai korjausta varten. Testin tarkoitus: Odotettu tulos: Saatu tulos: Testataan ohjelman toimintaa kun sille annetaan jokin joukkueen nimi joka ei kuulu käsiteltävään sarjaan. Syöte: Ohjelma ilmoittaa, että kyseisen nimistä joukkuetta ei löydy sarjasta ja pyytää käyttäjää syöttämään joukkueen nimen 11

14 joukkue4 kun sarjan joukkueet ovat joukkue1, joukkue2, joukkue3 Syötetään ohjelmalle joukkueen nimi jonka tiedetään osallistuvan kyseiseen sarjaan. Syöte: joukkue1 kun sarjan joukkueet ovat joukkue1, joukkue2, joukkue3 Testataan ohjelman toimintaa syötettäessä ottelun kierrosta. Syötteeksi annetaan positiivinen luku. Syöte: 1 Testataan ohjelman toimintaa syötettäessä ottelun kierrosta. Syötteeksi annetaan negatiivinen luku. Syöte: -1 Testataan ohjelman toimintaa syötettäessä ottelun kierrosta. Syötteeksi annetaan jotakin muuta kuin kokonaisluku. Syöte: D uudelleen. Kyselyä jatketaan kunnes ottelun molempiin joukkueisiin on saatu sarjassa olevien joukkueiden nimet. Ohjelma siirtyy suorituksessa eteenpäin eli kysyy toisen joukkueen nimeä ja sen saatuaan kysyy kierrosta jolla ottelu on pelattu. Ohjelma hakee syötettyjen tietojen mukaisen ottelun ja tulostaa sen. Jos ottelua ei löydy siitä ilmoitetaan käyttäjälle ja siirrytään takaisin valikkoon josta ottelun haku on käynnistetty. Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää käyttäjältä uutta syötettä. Ohjelma ilmoittaa virheellisestä syötteestä ja pyytää käyttäjältä uutta syötettä. Jos ladattuun sarjataulukkoon ei vielä ole tallennettu kaikkia sarjan kierroksia tai otteluja, on aikaisemman sarjataulukon käsittelyvalikko hiukan erilainen. Siinä on silloin kaksi ylimääräistä valikon kohtaa: 1. Syota seuraava(x.) kierros ja 2. Syota ottelu. Näiden jälkeen tulee jo aikaisemmin testatut kohdat: 3. Tulosta sarjan tilanne, 4. Tulosta kaikki ottelut, 5. Etsi yksi ottelu, 6. Korjaa ottelu, 7. Tallenna ja 0. Paavalikko. Testin tarkoitus: Odotettu tulos: Saatu tulos: Testataan valikon toimintaa antamalla syötteeksi 1 Ohjelma siirtyy osioon jossa syötetään kokonainen kierros kerrallaan, jonka toiminnallisuus on jo testattu ylempänä. Testataan valikon toimintaa antamalla syötteeksi 2 Testataan valikon toimintaa antamalla syötteeksi jokin muu syöte kuin ohjelman vaihtoehdoiksi antama. Syöte: 8 Testataan valikon toimintaa antamalla syötteeksi jokin muu Ohjelma siirtyy osioon jossa kysytään käyttäjältä syötettävän ottelun tiedot. Sama toiminnallisuus on testattu jo aikaisemmin. Ohjelma ilmoittaa, että syötteen tulee olla väliltä 0-7 ja pyytää syötettä uudestaan. Ohjelma ilmoittaa syötteen olevan virheellinen ja pyytää 12

15 syöte kuin ohjelman vaihtoehdoiksi antama. Syöte: E käyttäjältä uutta syötettä. 13

16 Liitteet Liite 1: Tehtäväpaperi Ohjelmointi 3 Tee ohjelma, joka ylläpitää jääkiekkosarjan tulostaulukkoa kunkin (ei välttämättä täyden) pelikierroksen jälkeen. Tee lisäksi ohjelma, jolla on mahdollista korjata virheet jotka edellisten kierrosten tuloksien kirjoituksessa on syntynyt. Ohjelmalla on voitava tulostaa joukkueittain paremmuusjärjestyksessä oleva sarjataulukko. 14

17 Liite 2: Projektisuunnitelma 15

18 16

19 17

20 Liite 3: Ohjelmalistaus Valikot.java: import java.io.; / Pääohjelma joka huolehtii valikoiden toiminnasta ja toimintojen toteutuksesta. Suurin osa ohjelman tulostuksista suoritetaan ja muotoillaan tässä Mikko v1.0 / public class Valikot { private static Sarja sarja; private static Ottelu ottelu; private static boolean tallennettu = false; / Piirtää päävalikon ja kutsuu valinta-metodia jossa kysytään, että mitä tehdään seuraavaksi. / public static void paavalikko(){ int syote = 0; int val; boolean onnistui = false; int paluuarvo = 10; do { System.out.println(""); tulostaviiva(); tulostakeskelle("paavalikko\n"); tulostaviiva(); val = valinta(0); while (val!= 0); / Piirtää valikon jossa ladataan vanha sarjataulukko. Kutsuu valinta-metodia jossa kysytään, että mitä tehdään Palauttaa aina 0, tämä tarvitaan vain ohjelman suorituksen kontrollointiin. / public static int valikko1() { String tiedosto; Sarja[] sarjataul; int val = 0; 18

21 boolean onnistui = false; tulostaviiva(); tulostakeskelle("vanhan sarjataulukon lataus\n"); tulostaviiva(); System.out.print("Anna aikaisemman sarjataulukon sisaltavan tiedoston nimi (peruuta: 0): "); tiedosto = Lue.string(); do { try { tiedosto = tiedosto + ".dat"; sarjataul = Tiedostot.lataus(tiedosto); sarja = sarjataul[0]; onnistui = true; sarja.tulostasarja(); catch ( Exception e) { if(tiedosto.equals("0.dat")) return 0; System.out.println("Tiedostoa ei loytynyt!\n"); System.out.print("Anna tiedoston nimi uudelleen: "); tiedosto = Lue.string(); System.out.println(""); while (!onnistui); do { if (sarja.getkierrokset() == 3) val = valinta(1); else if (sarja.getkierrokset() < 3) val = valinta(3); while (val!= 0); return 0; / Piirtää valikon jossa luodaan uusi sarjataulukko. Kutsuu valinta-metodia jossa kysytään, että mitä tehdään Palauttaa aina 0, tämä tarvitaan vain ohjelman suorituksen kontrollointiin. / public static int valikko2() { int kappaletta; String syote; String tiedosto; boolean tallennusonnistui; 19

22 tulostaviiva(); tulostakeskelle("uuden sarjataulukon luonti\n"); tulostaviiva(); do { System.out.print("Montako joukkuetta osallistuu: "); kappaletta = Lue.integer(); System.out.println(""); kaksi.\n"); while ( kappaletta < 2 ); if ( kappaletta == 0 ) { Lue.string(); return 0; else if ( kappaletta < 2 ) { System.out.println("Joukkueita tulee olla vahintaan Joukkue[] joukkueet = new Joukkue[kappaletta]; for ( int i = 0; i < kappaletta; i++) { String nimi; System.out.print("Anna " + (i+1) + ". joukkueen nimi: "); nimi = Lue.string(); joukkueet[i] = new Joukkue(nimi); sarja = new Sarja(joukkueet); Sarja[] sarjataul = new Sarja[1]; sarjataul[0] = sarja; do { System.out.print("\nTallennetaanko tiedot? (k/e): "); syote = Lue.string(); System.out.println(""); if(syote.equals("k") syote.equals("e")) { if (syote.equals("k")) { sarjantallennus(sarja); else { tallennettu = false; else { System.out.println("Syotteen tulee olla joko 'k' tai 'e'!"); while (!(syote.equals("k") syote.equals("e"))); if (valinta(2) == 1) kierros(1); 20

23 if(sarja.getkierrokset() == 1) if (valinta(2) == 1) kierros(2); if(sarja.getkierrokset() == 2) if (valinta(2) == 1) kierros(3); if(sarja.getkierrokset() == 3) System.out.println("Kaikki kierrokset syotetty, palataan paavalikkoon."); return 0; / Piirtää erilaisia valinta Haluttu Palauttaa tiedon valitusta valinnasta / public static int valinta(int valinta) { int syote = 0; if(valinta == 0) { // kutsuttu päävalikosta tulostakeskelle(getviiva(50)); tulostakeskelle(string.format("%-49s", "Jatka aikaisemman sarjataulukon kasittelya: ")+"1"); tulostakeskelle(string.format("%-49s", "Aloita uuden sarjataulukon yllapito: ")+"2"); tulostakeskelle(string.format("%-49s", "Lopeta: ")+"0"); tulostakeskelle(getviiva(50)); System.out.print("\n\nValintasi: "); do { syote = Lue.integer(); if(syote < 0 syote > 2) System.out.print("Syotteen tulee olla luku valilla 0-2.\nAnna valintasi uudelleen: "); while(syote < 0 syote > 2); if ( syote == 1 ) { valikko1(); else if ( syote == 2 ) { valikko2(); else if(valinta == 1) { // kutsuttu valikosta jossa käsitellään vanhaa sarjataulukkoa tulostakeskelle(getviiva(50)); tulostakeskelle(string.format("%-49s", "Tulosta sarjan tilanne: ")+"1"); 21

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

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

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

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

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

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

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Poikkeukset Poikkeuksella tarkoitetaan yllättävää ajonaikaista tilannetta, joka

Lisätiedot

Ohjelmoinnin perusteet, kurssikoe

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

Lisätiedot

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394)

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394) Ohjelmointityö 65 Tekstinmuotoilu ohjelma Dokumentaatio Aki Heikkinen (155394) 15.6.2007 Sisällysluettelo 1. Tehtävän määrittely ja ratkaisuperiaate... 1 1.1. Tehtävän määrittely... 1 1.2. Ratkaisuperiaate...

Lisätiedot

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

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

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai ) Tehtävä do while + Viikko 1 Tehtävä 27. Salasana (MOOC) Viikko 1 Tehtävä 28. Lämpötilat (MOOC) Tehdään ohjelma, joka kysyy käyttäjältä lukua. Luku kerrotaan aina seuraavalla käyttäjän antamalla luvulla

Lisätiedot

Poikkeustenkäsittely

Poikkeustenkäsittely 1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on

Lisätiedot

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

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

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

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

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

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

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

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

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

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

Lista luokan sisällä

Lista luokan sisällä Lista luokan sisällä Luokan sisällä on lista Joukkue-luokka, joka sisältää listän joukkueen pelaajista Pelaaja Joukkueen metodit, jotka käyttävät listaa Ohjelmaluokka Luokan sisällä on lista Tarkoitta

Lisätiedot

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

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Mitä poikkeuskäsittely tarkoittaa?

Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittely Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittelyluokkien hierakkia Poikkeuksen sieppaaminen Mihin järjestykseen try-catch-lauseen ExceptionType-poikkeukset laitetaan? Poikkeuksen

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

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

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

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

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

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

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

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

public static void main (String [] args)

public static void main (String [] args) HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,

Lisätiedot

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

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

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

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

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma. Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

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

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

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

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

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public) Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

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

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

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

Lisätiedot

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

Taulukoiden käsittely Javalla

Taulukoiden käsittely Javalla 1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen

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

OutputStream ja InputStream. Tietovirrat ja niiden suunnat. Tietovirtojen käyttö. FileInputStream esimerkki. DataOutputStream ja DataInputStream

OutputStream ja InputStream. Tietovirrat ja niiden suunnat. Tietovirtojen käyttö. FileInputStream esimerkki. DataOutputStream ja DataInputStream Tietovirrat ja niiden suunnat Output stream Koodi Tiedosto OutputStream ja InputStream OutputStream (abstrakti) FileOutputStream Tallennus tavuina ObjectOutputStream Olioiden tallennus FilterOutputStream

Lisätiedot

Luokan sisällä on lista

Luokan sisällä on lista 1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä

Lisätiedot

Ohjelmointi 2, välikoe

Ohjelmointi 2, välikoe Ohjelmointi 2, välikoe 21.3.2014 Vastaa neljään tehtävään kuudesta siten, että jokainen tehtävä tulee omalle konseptilleen. Mikäli vastaat useampaan kuin neljään tehtävään, pisteiden laskussa huomioidaan

Lisätiedot

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

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja voidaan

Lisätiedot

Javan GUI Scratchaajalle

Javan GUI Scratchaajalle Javan GUI Scratchaajalle Kertausta Javan perusteista Java-luokan muotoilu public class Kissa { private String nimi; public Kissa(String annettunimi) { this.nimi = annettunimi; yksi class = yksi hahmo =

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

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

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

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

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen Yksikkötestaus Kattava testaus Moduulitestaus Ohjelman testaus 1 Kattava testaus Testauksen perimmäinen tarkoitus on LÖYTÄÄ VIRHEITÄ Testaus pitäisi olla täydellinen: - Jokainen pyydetty arvo pitäisi testata

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

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

Olio-ohjelmointi Virhetilanteiden käsittely

Olio-ohjelmointi Virhetilanteiden käsittely Olio-ohjelmointi 2016 Virhetilanteiden käsittely Poikkeustilanteet n Java-järjestelmässä voidaan ottaa kiinni ohjelman suoritusaikana tapahtuvia virhetilanteita, joita ei saada kiinni tavanomaisilla ohjausrakenteilla

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

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Toistorakenne (while, do-while, for) 1 While- lause while-lauseen rakenne on seuraava: while (ehtolauseke) lause Kun ehtolausekkeen arvo on totta, lause suoritetaan. Lause suoritetaan

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Luokat ja oliot. Ville Sundberg

Luokat ja oliot. Ville Sundberg Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi

Lisätiedot

Periytyminen (inheritance)

Periytyminen (inheritance) 1 Periytyminen (inheritance) Mitä periytyminen on? Yli- ja aliluokka Konstruktorit Get- ja set-metodi Muut metodit tostring Yksinkertainen pääohjelma 1 Mitä periytyminen on? Periytymisen avulla olemassa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

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

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

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

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

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

YHTEYSSUHDE (assosiation)

YHTEYSSUHDE (assosiation) YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap Tietorakenneluokkia ja -rajapintoja Java tarjoaa laajan kokoelman tietorakennerajapintoja ja - luokkia. Aiemmin

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

Tietorakenteet (syksy 2013)

Tietorakenteet (syksy 2013) Tietorakenteet (syksy 2013) Harjoitus 1 (6.9.2013) Huom. Sinun on osallistuttava perjantain laskuharjoitustilaisuuteen ja tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. Näiden laskuharjoitusten

Lisätiedot

Harjoitus 4 (viikko 47)

Harjoitus 4 (viikko 47) Kaikki tämän harjoituksen tehtävät liittyvät joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Saa hyvän alun harjoitustyön tekoon, kun ratkaiset mahdollisimman monta tehtävää. Mikäli tehtävissä

Lisätiedot

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

Hakemistojen sisällöt säilötään linkitetyille listalle. 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ö

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet Metodit Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin return; -lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua Metodi voi palauttaa alkeistyypin tai olion Tällöin

Lisätiedot

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

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä. Tehtävä 1. Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä. #include /* mm. I/O-funktiot */ #include /* mm. EXIT_SUCCESS */ /*main-funktio,

Lisätiedot

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if 3 Lauseet Lue kirjasta s. 54-84 Tämän osan sisältö Ehdollinen lause if Looginen lauseke vertailut AND-operaattori &&, & OR-operaattori, NOT-operaattori! Valintalause switch Toistolauseet while for do while

Lisätiedot