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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1 Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,

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

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

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

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

Ohjelmoinnin perusteet Y Python

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

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

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0 CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

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

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

KOHDELUOKAN MÄÄRITTELY

KOHDELUOKAN MÄÄRITTELY KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona

Lisätiedot

58131 Tietorakenteet ja algoritmit (syksy 2015)

58131 Tietorakenteet ja algoritmit (syksy 2015) 58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen

Lisätiedot

2. Olio-ohjelmoinista lyhyesti 2.1

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

Lisätiedot

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

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

Rinnakkaisohjelmointi, Syksy 2006

Rinnakkaisohjelmointi, Syksy 2006 Rinnakkaisohjelmointi, Syksy 2006 17.12.2006 Opintopiiri WTF Mika Holmström Paula Kemppi Janne Piippo Lasse Lukkari Javan semaforit 1. Menetelmän käyttötarkoitus ja sovellusalue Semaforin idea kehitettiin

Lisätiedot

Vahva koostumussuhde (Composition)

Vahva koostumussuhde (Composition) Vahva koostumussuhde (Composition) - Mitä vahva koostumsusuhde tarkoittaa? - Vahva koostumussuhde vs. yhteyssuhde - Miten toteutan vahvan koostumussuhteen? - Muodostimet - Set ja get-metodit - tostring-metodi

Lisätiedot

Toiminta ennen ensimmäistä ottelua (1/2)

Toiminta ennen ensimmäistä ottelua (1/2) Toiminta ennen ensimmäistä ottelua (1/2) Kotijoukkue kirjautuu järjestelmään omalla joukkuekoodillaan Joukkue- /seuratunnus -kohdasta. Kirjoita joukkueesi tunnus siihen ja paina Kirjaudu -kohdasta. Tunnukset

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Yleistä Tehtävä: Tee Javalla LineBreaker-ohjelma tekstirivin sovittamiseen tekstialueelle riviä katkomalla. Lausekielinen ohjelmointi II -kurssin pakollinen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Ohjeita LINDOn ja LINGOn käyttöön

Ohjeita LINDOn ja LINGOn käyttöön Ohjeita LINDOn ja LINGOn käyttöön LINDOn tärkeimmät komennot ovat com (command), joka tuloaa käytettävissä olevat komennot ruudulle, ja help, jonka avulla saa tietoa eri komennoia. Vaaukset kursiivilla

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

PALLOVERKKO SÄHKÖINEN OTTELUPÖYTÄKIRJA

PALLOVERKKO SÄHKÖINEN OTTELUPÖYTÄKIRJA PALLOVERKKO SÄHKÖINEN OTTELUPÖYTÄKIRJA 30.6.2011 KÄYTTÄJÄTUNNUKSEN TILAAMINEN LÖYTYY SIVUN ALAREUNASTA TUNNUSTEN TILAAMINEN: JOTTA PÄÄSEE KIRJAUTUMAAN JÄRJESTELMÄÄN TULOSPALVELUVASTAAVANA, PITÄÄ OLLA TUNNUKSET

Lisätiedot

Java ja grafiikka. Ville Sundberg 12.12.2007

Java ja grafiikka. Ville Sundberg 12.12.2007 Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class

Lisätiedot

Goalkeeper Game Statistics (v12) käyttöohjeet

Goalkeeper Game Statistics (v12) käyttöohjeet 1 Goalkeeper Game Statistics (v12) käyttöohjeet Oikeudet Goalkeeper game statistics v12 ohjelman tekijänoikeudet ovat pysyvästi tekijällä (Markku Aalto, Vantaa, markku.aalto@finhockey.fi), ellei niitä

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Luokan muodostimet (Constructors)

Luokan muodostimet (Constructors) Mikä on muodostin? Luokan muodostimet (Constructors) Millaisia muodostimia on? Oletusmuodostin (Default Constructor) Parametrillinen muodostin Kopiointimuodostin (Copy Constructor) this-muuttuja Miten

Lisätiedot

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

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

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

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

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

OHJ2k12 välikoe

OHJ2k12 välikoe OHJ2k12 välikoe 23.3.2012 Vastaa neljään tehtävään kuudesta, siten että jokainen tehtävä OMALLE konseptilleen. Mikäli vastaat useampaan tehtävään, pisteiden laskussa huomioidaan neljä heikointa tehtävää.

Lisätiedot

private TreeMap nimella; private TreeMap numerolla;

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla; Tietorakenteet, laskuharjoitus 7, ratkaisuja 1. Opiskelijarekisteri-luokka saadaan toteutetuksi käyttämällä kahta tasapainotettua binäärihakupuuta. Toisen binäärihakupuun avaimina pidetään opiskelijoiden

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Harjoitustyö (TKO_2023)

Harjoitustyö (TKO_2023) Harjoitustyö (TKO_2023) Jyri Lehtonen (72039) (alkuperäinen 29.1.2008) päivitetty: 8.2.2008 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee Java-appletti, joka kysyy käyttäjältä asioita Java-kielestä.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

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

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

Lisätiedot

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI:

Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti NIMI: ITKP102 Ohjelmointi 1 C# 13.6.2014 1 / 5 Ohjelmointi 1 C#, kevät 2014, 2. uusintatentti Tentaattori Antti-Jussi Lakanen Valitse neljä tehtävää ja vastaa niihin. Keväällä 2014 kurssin tehneille lasketaan

Lisätiedot

Toiminta ennen ensimmäistä ottelua (1/2)

Toiminta ennen ensimmäistä ottelua (1/2) Toiminta ennen ensimmäistä ottelua (1/2) Kotijoukkue kirjautuu järjestelmään omalla joukkuekoodillaan Joukkue- /seuratunnus -kohdasta. Kirjoita joukkueesi tunnus siihen ja paina Kirjaudu -kohdasta. Tunnukset

Lisätiedot

EURA 2007 EU:N RAKENNERAHASTOJEN HALLINTAJÄRJESTELMÄ. Projektin toteuttajan yhteystietojen ylläpito ja salasanan vaihtaminen

EURA 2007 EU:N RAKENNERAHASTOJEN HALLINTAJÄRJESTELMÄ. Projektin toteuttajan yhteystietojen ylläpito ja salasanan vaihtaminen EURA 2007 EU:N RAKENNERAHASTOJEN HALLINTAJÄRJESTELMÄ Projektin toteuttajan yhteystietojen ylläpito ja salasanan vaihtaminen Käyttöohje projektien toteuttajille SISÄLLYSLUETTELO 1 Yleistä järjestelmästä...3

Lisätiedot

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on. Datatähti 2015 A: Omenat Aikaraja: 2 s Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on. Uolevi haluaa saada mahdollisimman monta omenaa, mutta

Lisätiedot

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

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

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Tietorakenteet, laskuharjoitus 7,

Tietorakenteet, laskuharjoitus 7, Tietorakenteet, laskuharjoitus 7, 14.-19.3. 1. "Tira meets software engineering, osa 1" Lue luentomonisteen kalvot 233-236. Toteuta luokka Opiskelijarekisteri joka tarjoaa seuraavat palvelut: opiskelijoiden

Lisätiedot

PALLOVERKKO SÄHKÖINEN OTTELUPÖYTÄKIRJA

PALLOVERKKO SÄHKÖINEN OTTELUPÖYTÄKIRJA PALLOVERKKO SÄHKÖINEN OTTELUPÖYTÄKIRJA 12.12.2012 KÄYTTÄJÄTUNNUKSEN TILAAMINEN TILAA TUNNUKSET SEURASI PÄÄKÄYTTÄJÄLTÄ. KIRJAUTUMINEN PALLOVERKKOON POLKU KIRJAUTUMISEEEN PALLOLIITON ETUSIVULTA : SEURAPALVELUT-

Lisätiedot