Ohjelmointi 2, InSitu-luento 24.3.2009
Jakauma tehtävittäin

Aikojen jakauma tehtävittäin

Jakauma vastaajittain

Kysymykset
Ongelma:
kissa istuu puussa
istuu ja naukuu
kissa ja koira istuu
Monestikko mikäkin sana esiintyy?
-- 0) Oletko ymmärtänyt ongelman ja osaisitko itse vastata tuohon kysymykseen?
0: en tiedä
1: en
2: kyllä
|30|1|1|0|1|2;1
-- 1) Miten lasketaan sanat
0: en tiedä
1: "tukkimiehen" kirjanpidolla: otetaan sana ja lisätään sen sanan lkm
2: monimutkaisella algoritmillä
3: kirjain kerrallaan
4: otetaan ensimmäinen sana ja katsotaan monestiko se esiintyy jne...
|60|1|1|0|0|1;1
Piirrä:
kissa istuu puussa ja naukuu
1 2 1 1 1
Valitse tarvittavat luokat, järjestyksellä ei väliä, paina OK
-- 2) Tarvitaan luokat
0: en tiedä
1: Merkki
2: Sana
3: Sanat
4: Virke
5: Lause
6: Sivu
|45|1|7|0|0|23;1
Valitse oikeat vaihtoehdot, järjestyksellä ei väliä, paina OK
-- 3) Luokan Sana tehtäviin kuuluu
0: en tiedä
1: rivin jakaminen sanoiksi
2: kirjainten määrän laskeminen
3: tunnistaa onko tutkittava sana
4: etsiä tutkittava sana ja ilmoittaa sanalle laskurin lisäämisestä
5: laskurin ylläpito
6: tiedoston lukeminen
7: etsi pienin
8: poista pienin
|90|1|8|0|0|35;1
Valitse oikeat vaihtoehdot, järjestyksellä ei väliä, paina OK
-- 4) Luokan Sanat tehtäviin kuuluu
0: en tiedä
1: rivin jakaminen sanoiksi
2: kirjainten määrän laskeminen
3: tunnistaa onko tutkittava sana
4: etsiä tutkittava sana ja ilmoittaa sanalle laskurin lisäämisestä
5: laskurin ylläpito
6: tiedoston lukeminen
7: etsi pienin
8: poista pienin
|90|1|8|0|0|146;1
Valitse yksi
-- 5) Top down. Mikä kirjoitetaan (suunnitellaan) ensin.
0: en tiedä
1: Sana
2: Sanat
3: "lopullinen" pääohjelma
4: testipääohjelma Sana-luokalle
5: kirje joulupukille
|45|1|1|0|0|3;1
Valitse järjestyksessä. Paina OK!
-- 6) Valitse pääohjelman lauseet järjestyksessä
0: en tiedä
1: Sanat sanat;
2: Sana sana;
3: sana.lisaa(1);
4: sanat.lue_tiedosto("sanat.txt");
5: sana.oletko();
6: sana.nollaa();
7: sanat.tulosta(System.out);
8: sanat.etsi_pienin();
9: sanat = new Sanat();
|180|1|9|0|1|1947;1
Kirjoita:
Sanat sanat;
sanat = new Sanat();
sanat.lue_tiedosto("sanat.txt");
sanat.tulosta(System.out);
Valitse yksi
-- 7) Bottom up. Mikä testataan ensin.
0: en tiedä
1: Sana
2: Sanat
3: lopullinen pääohjelma
4: testiohjelma Sanat-luokalle
5: testiohjelma Sana-luokalle
|30|1|5|0|0|5;1
Valitse tarvittavat metodit, järjestyksellä ei väliä, paina OK
-- 8) Luokan Sana julkiset metodit (String sana)
0: en tiedä
1: oletko(sana)
2: aseta(sana)
3: konstruktori(sana)
4: kasittele_rivi(rivi)
5: lisaa()
6: lisaa(sana)
7: anna_rivi()
8: lue_tiedosto(tied_nimi)
9: sulje_tiedosto()
|60|1|9|0|0|135;1;;15;1;;36;1
Kirjoita testipääohjelma Sana:lle
Sana sana;
System.out.println(sana);
Valitse tarvittava määrä, järjestyksellä ei väliä
-- 9) Mitä mieltä testiohjelmasta tällaisenaan
0: en tiedä
1: hyvä
2: "kaatuu" kun ajetaan
3: tulostaa kissa
4: sana pitäisi alustaa
|45|1|9|0|0|4;1
-- 10) Mikä olisi hyvä alustus testiohjelmassa.
0: ei mitään
1: sana = "kissa";
2: sana = 0;
3: sana = new;
4: sana = new Sana();
5: sana = new Sana("kissa");
6: sana = new FileReader(System.out);
7: sana = new Sana[10];
8: sana = null;
9: sana = new StringBuffer("kissa");
|35|1|9|0|0|5;1
Lisää testipääohjelma:
Sana sana = new Sana("kissa");
System.out.println(sana);
sana.lisaa();
System.out.println(sana);
if ( sana.oletko("kissa") ) System.out.println("on kissa");
Valitse tarvittavat metodit, järjestyksellä ei väliä, paina OK
-- 11) Luokkaan Sana tarvitaan julkiset metodit (String s)
0: en tiedä
1: oletko(s)
2: aseta(s)
3: konstruktori(s)
4: kasittele_rivi(rivi)
5: lisaa()
6: toString()
7: anna_rivi()
8: lue_tiedosto(tied_nimi)
9: sulje_tiedosto()
|60|1|9|0|0|1356;1
Valitse tarvittavat, järjestyksellä ei väliä. Paina OK!
-- 12) Luokan Sana julkiset attribuutit
0: ei mitään
1: lkm
2: i
3: teksti
4: max_lkm
5: alkiot - taulukko
6: os - tietovirta johon tulostetaan
7: fi - tiedosto jota luetaan
|60|1|7|0|0|0;1
Valitse tarvittavat, järjestyksellä ei väliä. Paina OK!
-- 13) Luokan Sana attribuutit
0: ei mitään
1: lkm
2: i
3: teksti
4: max_lkm
5: alkiot - taulukko
6: os - tietovirta johon tulostetaan
7: fi - tiedosto jota luetaan
|60|1|7|0|0|13;1
Kirjoita attribuutit
lkm
teksti
Valitse järjestyksessä
-- 14) Valitse attribuuttien tyypit järjestyksessä
0: int
1: char
2: double
3: String
4: StringBuffer
5: Sana
6: Sana-taulukko
7: Sanat
8: Sanat-taulukko
|70|1|7|0|0|03;1
Kirjoita attribuutit
int lkm;
String teksti;
-- 15) Vielä lisättävä (valitse yksi)
0: en tiedä
1: ei mitään
2: private
3: protected
4: public
5: int
6: void
7: double
8: String
9: StringBuffer
|30|1|1|0|0|2;1
Lisää
private int lkm;
private String teksti;
Kirjoita:
__1__ Sana(_2_3_4)
-- 16) Sana-Muodostajan tyyppi ja parametrit (valitse järjestyksessä)
0: en tiedä
1: rivi
2: Sana
3: boolean
4: char
5: String
6: double
7: int
8: void
9: ei mitään
|60|1|4|0|0|95;1
Esittele
public Sana(String s) {
}
Valitse tarvittavat oikeassa järjestyksessä. Paina OK
-- 17) Sana-muodostajan sisältö
0: en tiedä
1: ei mitään
2: lkm = 0;
3: lkm = 1;
4: teksti = sana;
5: teksti = s;
6: lkm++;
7: i = 0;
8: i = 1;
|60|1|3|0|0|25;1;;35;1;;56;1;;5;1
Kirjoita
teksti = s;
Kirjoita
public _1_ oletko(_2_3_4_)
-- 18) oletko-metodin tyyppi ja parametrit (valitse järjestyksessä)
0: en tiedä
1: rivi
2: Sana
3: boolean
4: char
5: String
6: double
7: int
8: void
9: ei mitään
|90|1|3|0|1|35;1
Kirjoita
public boolean oletko(String s) {
return teksti.equalsIgnoreCase(s);
}
Kirjoita
public _1_ lisaa(_2_3_4_) {
}
-- 19) lisaa-metodin tyyppi ja parametrit järjestyksessä
0: en tiedä
1: rivi
2: Sana
3: boolean
4: char
5: String
6: double
7: int
8: void
9: ei mitään
|80|1|3|0|1|89;1;;79;1
Kirjoita
public void lisaa() {
}
-- 20) lisaa-metodin sisältö
0: en tiedä
1: ei mitään
2: lkm = 0;
3: lkm = 1;
4: teksti = sana;
5: teksti = s;
6: lkm++;
7: i = 0;
8: i = 1;
|60|1|3|0|0|6;1
Kirjoita
public void lisaa() {
lkm++;
}
public String toString() {
return teksti + " " + lkm;
}
Aja Sana-testi
-- 21) Testilähtöinen Bottom up. Mikä tehdään seuraavaksi
0: en tiedä
1: Sana
2: Sanat
3: lopullinen pääohjelma
4: testiohjelma Sanat-luokalle
5: testiohjelma Sana-luokalle
|40|1|1|0|0|4;1
Kirjoita:
public static void main(String[] args) {
Sanat sanat = new Sanat();
sanat.lisaa("kissa");
sanat.lisaa("kissa");
sanat.lisaa("koira");
sanat.tulosta(System.out);
sanat.kasitteleRivi("kissa, istuu kissa puussa");
sanat.tulosta(System.out);
}
Valitse tarvittavat metodit, järjestyksellä ei väliä, paina OK
-- 22) Testin toteuttamiseksi luokkaan Sanat tarvitaan julkiset metodit
0: en tiedä
1: oletko(sana)
2: aseta(sana)
3: konstruktori
4: kasitteleRivi(rivi)
5: lisaa(sana)
6: tulosta(tietovirta)
7: annaRivi()
8: lueTiedosto(tied_nimi)
9: suljeTiedosto()
|90|1|9|0|0|3456;1
Valitse tarvittavat, järjestyksellä ei väliä. Paina OK!
-- 23) Luokan Sanat julkiset attribuutit
0: ei mitään
1: lkm
2: i
3: teksti
4: max_lkm
5: alkiot - taulukko
6: os - tietovirta johon tulostetaan
7: fi - tiedosto jota luetaan
8: alkiot - kokoelma
|30|1|2|0|0|0;1
Valitse tarvittavat, järjestyksellä ei väliä. Paina OK!
-- 24) Luokan Sanat attribuutit
0: ei mitään
1: lkm
2: i
3: teksti
4: max_lkm
5: alkiot - taulukko
6: os - tietovirta johon tulostetaan
7: fi - tiedosto jota luetaan
8: alkiot - kokoelma
|90|1|2|0|0|15;1;;8;1
Kirjoita:
??? alkiot
-- 25) Valitse Sanat attribuuttien tyypit järjestyksessä
0: int
1: char
2: double
3: String
4: StringBuffer
5: Sana
6: Sana-taulukko
7: Sanat
8: Sanat-taulukko
9: Collection
|70|1|2|0|1|9;1
Kirjoita
Collection alkiot = new ArrayList();
-- 26) Itse alkiot taulukon oliot
0: ei tarvita mitään
1: pitää luoda erikseen silmukassa
2: riittää luoda aina kun uusi alkio lisätään
|45|1|1|0|0|2;1
Kirjoita testipääohjelma:
Sanat sanat = new Sanat();
sanat.lisaa("kissa");
sanat.lisaa("kissa");
sanat.lisaa("koira");
sanat.tulosta(System.out);
sanat.kasitteleRivi("kissa, istuu kissa puussa");
sanat.tulosta(System.out);
Kirjoita public _1_ lisaa(_2_,_3_,_4_) {
-- 27) Valitse Sanat lisaa metodin tyyppi ja parametrit järjestyksessä
0: int
1: char
2: double
3: String
4: StringBuffer
5: Sana
6: Sana-taulukko
7: Sanat
8: Sanat-taulukko
9: void
|60|0|4|0|1|93;1
Kirjoita
public void lisaa(String s) {
}
Ensin pitää etsiä onko sana jo valmiina.
-- 28) Luontevin etsintäsilmukka
0: en tiedä
1: for
2: while
3: do-while
4: goto
5: ikuinen silmukka + poistuminen keskeltä
6: rekursio
|30|1|2|0|0|1;1
Kirjoita
for (Sana sana : alkiot) {
if ( sana.oletko(s) ) {
sana.lisaa();
return;
}
}
Sana sana = new Sana(s);
sana.lisaa();
alkiot.add(sana);
Kirjoita
public _1_ kasitteleRivi(_2_, _3_, _4_) {
}
-- 29) Sanat.kasitteleRivi metodin tyyppi ja paremetrit järjestyksessä
0: int
1: char
2: double
3: String
4: StringBuffer
5: Sana
6: Sana-taulukko
7: Sanat
8: Sanat-taulukko
9: void
|60|0|4|0|1|93;1
Kirjoita
public void kasitteleRivi(String rivi) {
}
-- 30) Millä rivi jaetaan osiin
0: en tiedä
1: indexOf + substring
2: StringTokenizer
3: append
4: StringBuilder
|40|0|4|0|0|2;1
Kirjoita
public void kasitteleRivi(String rivi) {
String s;
StringTokenizer st = new StringTokenizer(rivi," ,();.:[]{}+-");
while ( st.hasMoreTokens() ) {
s = st.nextToken();
lisaa(s);
}
}
public void tulosta(OutputStream os) {
PrintStream out = Tiedosto.getPrintStream(os);
for (Sana sana : alkiot)
out.println(sana);
}
Testaa Sanat-luokkaa
Kirjoita:
public void lueTiedosto(String tied) throws IOException {
BufferedReader fi = Tiedosto.avaa_lukemista_varten(tied);
if ( fi == null ) throw new FileNotFoundException("Ei löydy: " + tied);
}
-- 31) lueTiedosto - millä silmukalla
0: en tiedä
1: for
2: while
3: do-while
4: goto
5: ikuinen silmukka + poistuminen keskeltä
6: rekursio
|40|0|1|0|0|2;1
Kirjoita:
String rivi;
while ( ( rivi = fi.readLine() ) != null ) {
kasitteleRivi(rivi);
}
-- 32) Miten fi.close()
0: ei saa kirjoittaa
1: saa kirjoitaa mutta ei ole pakko
2: on pakko kirjoittaa
3: kirjoitetaan vain jos output-tiedosto
4: kirjoitetaan vain jos tiedosto aukesi
5: on kirjoitettava finally lohkoon
|40|0|1|0|0|5;1
Kirjoita:
try {
String rivi;
while ( ( rivi = fi.readLine() ) != null ) {
kasitteleRivi(rivi);
}
} finally {
fi.close();
}
Testaa pääohjelma
-- 33) Mitä vielä puuttuu
0: ei mitään
1: automaattiset testit
2: käyttöliittymä
3: aikaa...
|30|0|1|0|0|1;1