wiki:k2015/demo/vinkkeja10
Last modified 3 years ago Last modified on 2015-02-13 11:02:57

Demot » Demo 10, Vinkkeja

Merkkien laskeminen

Tässä ei välttämättä tarvita yhtään luokkaa (eli ei suoraan kannata kopioida luentojen sanojen määrän laskemista). Tiedoston merkkien laskemiseksi riittää ihan int-taulukko, jossa kukin taulukon paikka edustaa tietyn kirjaimen esiintymien lukumäärää. Kirjaimen saa "indeksiksi" suoraan:

  int paikka = rivi.charAt(i);

Kun kaikki rivit on tällä tavalla käyty läpi, niin sitten tulostetaan kuinka paljon mihinkäkin paikkaan kertyi. Indeksi saadaan tulostamista varten kirjaimeksi:

 char c = (char)i;

Tiedostojen ja System.in/out testaaminen

Testaamisen vinkeiksi kannattaa katsoa:

  • d9:Toisto2.java
    • esimerkki miten syötteeseen (System.in, kysy) saadaan testissä tietoa (si)
    • esimerkki miten verrataan syntynyttä tiedostoa testissä merkkijonoon
    • tuossa so on vain sitä varten ettei näyttöön turhaan tulostu mitään)
  • d5:AstiaPeli.java
    • esimerkki miten syötteeseen (System.in, kysy) saadaan testissä tietoa (si)
    • esimerkki miten tulostetta (System.out) voidaan verrata (so)

Huomaa, että jos ohjelmasi kysyy käyttäjältä jotakin ja sitten tulostaa näyttöön, on tulosteessa myös nuo käyttäjän kysymykset. Toisto2.java:ssa noista ei välitetty, koska kiinnosti vain se tiedostoon tulostunut asia. Tehtävässä 1 ei ole tätä ongelmaa, mutta tehtävässä 2 ensin kysytään ja sitten tulostetaan. Tällöin tulosteesta pitää testissä odottaa myös sitä käyttäjälle annettua kysymystä.

Clone

Piirrä ensin kuva ongelmasta itsellesi! Tee taulukon kopiointi samoin kuin deom9:n Taulukko.javassa (ks clone tuossa tiedostossa). Alkiot pitää muistaa kanssa kloonata. Jos käyttää rajattua geneerisyyttä ja demo 9:n mallivastauksen Int-luokkaa, saa alkion kloonin

  TYPE kopio = (TYPE)alkiot[i].clone();

muuten tämä kohta on vaikea tehdä. Ei kannata lähetä myöskään netissä usein ehdotettuhin merkkijonohässäköihin!

Linkitetty lista

  • ÄLÄ käytä oppilaiden määrä hyväksesi mihinkään! Se ei kuulu linkitetyn listan periaatteisiin!