1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla c) Kirjoitetaan i silmukat ja ehtolauseet d) Tehdään hyvä aliohjelma ongelman ratkaisemiseksi 1. Mitä tehdään ensiksi? a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla c) Kirjoitetaan i silmukat ja ehtolauseet d) Tehdään hyvä aliohjelma ongelman ratkaisemiseksi 2. Voiko pääohjelma toimia näillä muuttujien tyypeillä? a) Kyllä b) Ei c) Vain, jos aliohjelma tehdään riittävän hyvin 2. Voiko pääohjelma toimia näillä muuttujien tyypeillä? a) Kyllä b) Ei c) Vain, jos aliohjelma tehdään riittävän hyvin 3. Miksi? (voi valita monta) a) Funktio voi palauttaa vain yhden arvon b) String luokan olioita ei voi muuttaa c) Numero 3 ei ole String d) Jotkin näistä muuttujien nimistä eivät ole laillisia 1
3. Miksi? (voi valita monta) a) Funktio voi palauttaa vain yhden arvon b) String luokan olioita ei voi muuttaa c) Numero 3 ei ole String d) Jotkin näistä muuttujien nimistä eivät ole laillisia 4. Minkä muuttujien tyyppi pitää vaihtaa (voi valita monta) a) jono b) jonon3ekaavokaalia c) maara d) vokaalit 4. Minkä muuttujien tyyppi pitää vaihtaa (voi valita monta) a) jono b) jonon3ekaavokaalia c) maara d) vokaalit 5. Mikä on oikea tyyppi muuttujalle jono? 5. Mikä on oikea tyyppi muuttujalle jono? 6. Mitä tulee XX YY paikalle (ennen tyyppiä) a) public void b) Static void c) public static d) public bool e) private static f) void String g) public string h) public StringBuilder 2
6. Mitä tulee XX YY paikalle (ennen tyyppiä) a) public void b) Static void c) public static d) public bool e) private static f) void String g) public string h) public StringBuilder 7. Mikä on funktion palauttama tyyppi? 7. Mikä on funktion palauttama tyyppi? 8. Mikä on ensimmäisen parametrin tyyppi 8. Mikä on ensimmäisen parametrin tyyppi 9. Mikä on toisen parametrin tyyppi 3
9. Mikä on toisen parametrin tyyppi 10. Mikä nimi toiselle parametrille (tehdään yleiskäyttöinen aliohjelma!) a) vokaalit b) poistettava c) poistettavamerkki d) siirrettavat e) jono f) vokaali 10. Mikä nimi toiselle parametrille (tehdään yleiskäyttöinen aliohjelma!) a) vokaalit b) poistettava c) poistettavamerkki d) siirrettavat e) jono f) vokaali 11. Mikä on kolmannen parametrin tyyppi 11. Mikä on kolmannen parametrin tyyppi 12. Mitä tästä aliohjelmasta pitäisi julkisesti kommentoida? a) Käytetty algoritmi b) Mitä funktio/aliohjelma tekee c) Parametrien käyttötarkoitus d) Aliohjelman versionumero e) Tekijä f) Oikeuksien omistaja 4
12. Mitä tästä aliohjelmasta pitäisi julkisesti kommentoida? a) Käytetty algoritmi b) Mitä funktio/aliohjelma tekee c) Parametrien käyttötarkoitus d) Aliohjelman versionumero e) Tekijä f) Oikeuksien omistaja Lisäksi: Käyttöesimerkit pitäisi kirjoittaa myös, ei valitettavasti saatu tälle kurssille tehtyä menetelmää käyttöesimerkkien hyödyntämiseen testauksessa 13. Mitä seuraavaksi kirjoitetaan? a) for(int i=0; i<jono.length; i++) b) while(i<jono.length) {} c) if(jono.length == 0) {} d) return ; e) try{} catch() {} f) for(int i=0; i<siirrettavat.length; i++) 13. Mitä seuraavaksi kirjoitetaan? a) for(int i=0; i<jono.length; i++) b) while(i<jono.length) {} c) if(jono.length == 0) {} d) return ; // Pidetään aliohjelma syntaktisesti toimivana! 14. Mitä tästä seuraavaksi? a) Kirjoitetaan silmukat b) Aliohjelman parametrien alustus c) Mietitään aliohjelman käyttötapaukset ja niiden tulokset kynällä ja paperilla d) If(jono.Length == 0) e) If(siirrettavat.Length == 0) e) try{} catch() {} f) for(int i=0; i<siirrettavat.length; i++) 14. Mitä tästä seuraavaksi? a) Kirjoitetaan silmukat b) Aliohjelman parametrien alustus // Parametrit on aina alustettu c) Mietitään i aliohjelman l käyttötapaukset k kynällä ja paperilla d) If(jono.Length == 0) e) If(siirrettavat.Length == 0) 15. Mitä seuraavaksi? a) Millä silmukalla on paras mennä jono lävitse b) Millä silmukalla on paras mennä merkit joukko läpi c) Algoritmi ongelman ratkaisuun d) Montako vokaalia on suomen kielessä e) Lähdetäänkö syömään vai ei 5
15. Mitä seuraavaksi? a) Millä silmukalla on paras mennä jono lävitse b) Millä silmukalla on paras mennä merkit joukko läpi c) Algoritmi ongelman ratkaisuun // Silmukka selviää liää sitten algoritmin i perusteella! d) Montako vokaalia on suomen kielessä e) Lähdetäänkö syömään vai ei 16. Mikä algoritmeista toimisi riittävän monesti suoritettuna a) Otetaan seuraava siirrettavat joukon kirjain ja poistetaan jonosta kaikki vastaavat b) Kaksi sisäkkäistä silmukkaa c) Otetaan seuraava jonon kirjain i ja jos se on siirrettavat joukossa, niin poistetaan kirjain joukosta d) Lasketaan montako samaa kirjainta on kummassakin jonossa 16. Mikä algoritmeista toimisi riittävän monesti suoritettuna a) Otetaan seuraava siirrettavat joukon kirjain ja poistetaan jonosta kaikki vastaava b) Kaksi sisäkkäistä silmukkaa c) Otetaan seuraava jonon kirjain i ja jos se on siirrettavat joukossa, niin poistetaan kirjain joukosta // tuottaa alkuperäisen jonon mukaisen järjestyksen (määritelmäkysymys tietysti..), tässä nämä testitapaukset ovat tärkeässä roolissa d) Lasketaan montako samaa kirjainta on kummassakin jonossa 17. Jos jonosta poistetaan kirjain, niin saako sillä kertaa siirtyä seuraavaan paikkaan jos jonoa mennään indeksin avulla? a) Ei b) Ehkä c) Kyllä d) Tietysti e) Ei ole mitään väliä 17. Jos jonosta poistetaan kirjain, niin saako sillä kertaa siirtyä seuraavaan paikkaan jos jonoa mennään indeksin avulla? a) Ei b) Ehkä c) Kyllä d) Tietysti e) Ei ole mitään väliä 18. Silmukaksi? a) for b) while c) do while d) foreach 6
18. Silmukaksi? a) for // ei lähdetä kikkailemaan indeksin kanssa! b) while // ks. edellisen kysymyksen päätös c) do while // on mahdollista ettei silmukkaa tarvi mennä kertaakaan, jos jono on tyhjä thjä d) foreach 19. While silmukan ehto a) i < jono.length b) lkm < maara c) i < jono.length && lkm < maara d) i < jono.length lkm < maara 19. While silmukan ehto a) i < jono.length b) lkm < maara c) i < jono.length && lkm < maara d) i < jono.length lkm < maara 20. Mikä tyyppi 20. Mikä tyyppi 21. Mikä tyyppi tulosjonolle? 7
21. Mikä tyyppi tulosjonolle? 22. Miten katsotaan onko saatu merkki joukossa siirrettavat? a) For silmukka b) if(siirrettavat.indexof(merkki) >= 0) c) if(siirrettavat[0] == merkki) d) if(siirrettavat[i] == merkki) e) if(siirrettavat[0 Length] <= merkki) 22. Miten katsotaan onko saatu merkki joukossa siirrettavat? a) For silmukka b) if(siirrettavat.indexof(merkki) >= 0) // Jos löytyy jostakin paikasta, niin sen indeksi on positiivinen c) if(siirrettavat[0] == merkki) d) if(siirrettavat[i] == merkki) 23. Miten poistetaan merkki jonomuuttujasta? a) jono.delete(i); b) jono.removechar(i); c) jono.removeindex(i); d) RemoveFrom(jono, i); e) jono.remove(i, 1); e) if(siirrettavat[0 Length] <= merkki) 23. Miten poistetaan merkki jonomuuttujasta? a) jono.delete(i); b) jono.removechar(i); c) jono.removeindex(i); d) RemoveFrom(jono, i); e) jono.remove(i, 1); 24. Miten nyt lisätään merkki tulosjonoon? a) tulos += merkki; b) tulos.add(merkki); c) tulos = tulos.append(merkki); d) tulos = Append(merkki); e) tulos.append(merkki, i); f) tulos.append(merkki); g) tulos = new StringBuilder(tulos + merkki); 8
24. Miten nyt lisätään merkki tulosjonoon? a) tulos += merkki; b) tulos.add(merkki); c) tulos = tulos.append(merkki); d) tulos = Append(merkki); e) tulos.append(merkki, i); f) tulos.append(merkki); g) tulos = new StringBuilder(tulos + merkki); 25. Mitä muuta pitää tehdä, kun merkki on löytynyt? (voi valita monta) a) i = i+1; b) i++; c) lkm++; d) tulos = ; e) jono = ; f) return i; g) return jono; h) return tulos; 25. Mitä muuta pitää tehdä, kun merkki on löytynyt? (voi valita monta) a) i = i+1; b) i++; c) lkm++; d) tulos = ; e) jono = ; f) return i; g) return jono; h) return tulos; 26. Merkkiä ei löytynyt, mitä tehdään? (voi valita monta) a) i = i+1; b) i++; c) lkm++; d) tulos = ; e) jono = ; f) return i; g) return jono; h) return tulos; 26. Merkkiä ei löytynyt, mitä tehdään? (voi valita monta) a) i = i+1; b) i++; c) lkm++; d) tulos = ; e) jono = ; f) return i; g) return jono; h) return tulos; 27. Kun kaikki merkit on käyty läpi, seuraavaksi tehdään a) return i; b) return jono; c) return tulos; d) return tulos.tostring(); e) return lkm; 9
27. Kun kaikki merkit on käyty läpi, seuraavaksi tehdään a) return i; b) return jono; c) return tulos; // ei voi palauttaa StringBuilderia, ild i kun pitäisi i palauttaa String d) return tulos.tostring(); e) return lkm; 10