Tällä sivulla ovat kurssikokeen 9.6. tehtävät ratkaisuineen. Tehtävät voi usein ratkaista monella eri tavalla, jotka saattavat poiketa paljonkin malliratkaisuista.
Tee ohjelma, joka tulostaa kokonaisluvut 1–100. Mutta jos luku on jaollinen 3:lla, ohjelman tulee tulostaa sen tilalla "Fizz", ja jos luku on jaollinen 5:llä, ohjelman tulee tulostaa sen tilalla "Buzz". Jos luku on jaollinen sekä 3:lla että 5:llä, ohjelman tulee tulostaa sen tilalla "FizzBuzz".
Ohjelmasi tulostuksen tulisi alkaa seuraavasti:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 ...
public class FizzBuzz { public static void main(String[] args) { for (int i = 1; i <= 100; i++) { if (i % 3 != 0 && i % 5 != 0) { System.out.print(i); } if (i % 3 == 0) { System.out.print("Fizz"); } if (i % 5 == 0) { System.out.print("Buzz"); } System.out.println(); } } }
Tee ohjelma, joka tulostaa luvuista 0 ja 1 muodostuvan "shakkiruudukon" seuraavien esimerkkien mukaisesti. Ohjelma kysyy ensin käyttäjältä ruudukon koon.
Esimerkki 1
Anna koko: 5 01010 10101 01010 10101 01010
Esimerkki 2
Anna koko: 8 01010101 10101010 01010101 10101010 01010101 10101010 01010101 10101010
import java.util.*; public class Shakkiruudukko { private static Scanner input = new Scanner(System.in); public static void main(String[] args) { System.out.print("Anna koko: "); int koko = Integer.parseInt(input.nextLine()); for (int i = 0; i < koko; i++) { for (int j = 0; j < koko; j++) { System.out.print((i + j) % 2); } System.out.println(); } } }
Tee metodi keskiarvo
,
jolle annetaan taulukko lukuja ja
joka palauttaa lukujen keskiarvon.
Metodin rungon tulisi olla seuraava:
public static double keskiarvo(int[] luvu) { ... }
Seuraava koodi testaa metodin toimintaa:
int[] data = {3, 2, 8, 8, 1}; System.out.println(keskiarvo(data));
Koodin tulostuksen tulisi olla seuraava:
4.4
public static double keskiarvo(int[] luvut) { int summa = 0; for (int i = 0; i < luvut.length; i++) { summa += luvut[i]; } return (double)summa / luvut.length; }
Tee metodi hassuTulostus
,
jolle annetaan parametrina positiivinen kokonaisluku n
.
Sitten metodi tulostaa samalle riville luvut
1, n, 2, n - 1, 3, jne. keskikohtaan asti.
Esimerkit selventävät, kuinka metodin on tarkoitus toimia.
Metodin rungon tulisi olla seuraava:
public static void hassuTulostus(int luku) { ... }
Seuraava koodi testaa metodin toimintaa:
hassuTulostus(5); hassuTulostus(8); hassuTulostus(11);
Koodin tulostuksen tulisi olla seuraava:
1 5 2 4 3 1 8 2 7 3 6 4 5 1 11 2 10 3 9 4 8 5 7 6
public static void hassuTulostus(int luku) { int ala = 1; int yla = luku; while (ala < yla) { System.out.print(ala + " " + yla + " "); ala++; yla--; } if (ala == yla) { System.out.print(ala); } System.out.println(); }
Selosta lyhyesti, kuinka peräkkäishaku ja binäärihaku toimivat. Mainitse molemmista algoritmeista jokin hyvä ja jokin huono puoli.
Peräkkäishaku käy taulukon kaikki alkiot läpi alusta loppuun. Jos jossain kohdassa on haettava alkio, algoritmi pysähtyy. Jos algoritmi pääsee taulukon loppuun, haettavaa alkiota ei ole taulukossa.
Binäärihaku olettaa, että taulukko on järjestyksessä. Se tarkistaa ensin taulukon keskellä olevan alkion ja siirtyy vasempaan tai oikeaan osaan sen mukaan, onko keskellä oleva alkio suurempi vai pienempi kuin haettava alkio. Samanlainen hakualueen puolitus jatkuu, kunnes haettava alkio löytyy. Jos hakualue jää tyhjäksi, haettavaa alkiota ei ole taulukossa.
Peräkkäishaun hyviä puolia ovat, että se on helppo toteuttaa ja taulukon alkiot saavat olla missä tahansa järjestyksessä. Peräkkäishaun huono puoli on, että se on hidas, jos taulukko on suuri.
Binäärihaun hyvä puoli on, että se on tehokas suurillakin taulukoilla. Binäärihaun huonoja puolia ovat, että se on vaikea toteuttaa ja taulukon alkioiden on pakko olla järjestyksessä.
Kerro lyhyesti boolean-tyypin käytöstä Javassa. Kirjoita lyhyt ohjelma, jossa on käytössä boolean-tyyppinen muuttuja tai metodi.
Javan boolean-tyypillä on kaksi mahdollista arvoa, true ja false. Sitä voi käyttää itsenäisenä muuttujatyyppinä, ja lisäksi if-rakenteessa ja silmukoissa olevat ehdot ovat boolean-tyyppisiä.
Seuraavassa ohjelmassa metodi parillinen
palauttaa boolean-arvona, onko luku parillinen.
public class Parillisuus { public static Scanner input = new Scanner(System.in); public static boolean parillinen(int luku) { return luku % 2 == 0; } public static void main(String[] args) { System.out.print("Anna luku: "); int luku = Integer.parseInt(input.nextLine()); if (parillinen(luku)) { System.out.println("Luku on parillinen."); } else { System.out.println("Luku on parilliton."); } } }