Takaisin kurssin pääsivulle

Tehtävät, osa 3

Kesän 2011 Ohjelmoinnin perusteet -kurssi muodostuu kolmesta tehtäväsarjasta, joissa jokaisessa on 33 tehtävää:

Palautus

Tehtävät palautetaan esittelemällä niitä ohjaajalle ohjelmointipajassa. Osan 3 tehtävien viimeinen palautuspäivä on tiistai 31.5., mutta tehtäviä voi mielellään palauttaa aiemminkin.

Tehtäväpohjat

Lataa osan 3 tehtäväpohjat

Perustehtävät

Lue materiaalista luku 8 ja tee sitten seuraavat tehtävät:

67. Alkukirjaimet

Tee ohjelma, joka kysyy käyttäjän etunimen ja sukunimen. Sitten ohjelma tulostaa käyttäjän nimen alkukirjaimet.

Ohjelmasi tulisi toimia seuraavasti:

Anna etunimi: Aapeli
Anna sukunimi: Koodinen
Nimikirjaimet: AK

68. Viimeinen kirjain

Tee ohjelma, joka kysyy käyttäjän nimen ja tulostaa sitten nimen viimeisen kirjaimen.

Ohjelmasi tulisi toimia seuraavasti:

Anna nimi: Aapeli
Viimeinen kirjain: i

69. Pidempi sana

Tee ohjelma, joka kysyy käyttäjältä kaksi sanaa. Sitten ohjelma tulostaa uudestaan niistä pidemmän.

Ohjelmasi tulisi toimia seuraavasti:

Anna sana 1: lanttu
Anna sana 2: selleri
Pidempi: selleri

70. Nimi väärinpäin

Tee ohjelma, joka kysyy käyttäjän nimen ja tulostaa sitten nimen väärinpäin.

Ohjelmasi tulisi toimia seuraavasti:

Anna nimi: Aapeli
Väärinpäin: ilepaA

71. Alkuosa

Tee ohjelma, joka kysyy käyttäjältä sanan ja alkuosan pituuden. Sitten ohjelma tulostaa sanasta halutun alkuosan.

Ohjelmasi tulisi toimia seuraavasti:

Anna sana: esimerkki
Alkuosan pituus: 3
Alkuosa: esi
Anna sana: esimerkki
Alkuosan pituus: 5
Alkuosa: esime

72. Loppuosa

Tee ohjelma, joka kysyy käyttäjältä sanan ja loppuosan pituuden. Sitten ohjelma tulostaa sanasta halutun loppuosan.

Ohjelmasi tulisi toimia seuraavasti:

Anna sana: esimerkki
Loppuosan pituus: 3
Loppuosa: kki
Anna sana: esimerkki
Loppuosan pituus: 5
Loppuosa: erkki

73. Sanan haku

Tee ohjelma, joka kysyy käyttäjältä lauseen ja sanan. Sitten ohjelma ilmoittaa, esiintyykö sana jossain kohtaa lausetta.

Ohjelmasi tulisi toimia seuraavasti:

Anna lause: Tässä lauseessa on viisi sanaa.
Anna sana: viisi
Sana esiintyy lauseessa.
Anna lause: Tässä lauseessa on viisi sanaa.
Anna sana: selleri
Sana ei esiinny lauseessa.

Lue materiaalista luku 9 ja tee sitten seuraavat tehtävät:

74. Jaollisuus 7:llä

Tee ohjelma, joka kysyy käyttäjältä luvun ja ilmoittaa, onko luku jaollinen 7:llä.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 56
Luku on jaollinen 7:llä.
Anna luku: 57
Luku ei ole jaollinen 7:llä.

75. Nopan heitto

Tee ohjelma, joka heittää noppaa ja ilmoittaa tuloksen (1–6).

Ohjelmasi tulostuksen tulisi olla esimerkiksi seuraava:

Nopan heitto: 3
Nopan heitto: 5

76. Kolikon heitto

Tee ohjelma, joka heittää kolikkoa ja ilmoittaa tuloksen (kruuna tai klaava).

Ohjelmasi tulostuksen tulisi olla jompikumpi seuraavista:

Kolikon heitto: kruuna
Kolikon heitto: klaava

Lue materiaalista luku 10 ja tee sitten seuraavat tehtävät:

77. Tähtien tulostus

Tee metodi tulostaTahtia, joka tulostaa halutun määrän tähtiä.

Metodia voisi kutsua koodissa seuraavasti:

tulostaTahtia(5);
tulostaTahtia(8);

Nyt tulostuksen tulisi olla seuraava:

*****
********

78. Merkkien tulostus

Tee metodi tulostaMerkkeja, joka tulostaa halutun määrän haluttua merkkiä.

Metodia voisi kutsua koodissa seuraavasti:

tulostaMerkkeja(5, 'F');
tulostaMerkkeja(8, '#');

Nyt tulostuksen tulisi olla seuraava:

FFFFF
########

79. Alleviivattu teksti

Tee metodi alleviivaa, joka tulostaa tekstin alleviivattuna. Tämä tarkoittaa, että tekstin alapuolelle tulee yhtä monta kertaa merkki = kuin tekstissä on merkkejä.

Metodia voisi kutsua koodissa seuraavasti:

alleviivaa("Tervetuloa!");
alleviivaa("Kappas kippis!");
alleviivaa("Hei hei!");

Nyt tulostuksen tulisi olla seuraava:

Tervetuloa!
===========
Kappas kippis!
==============
Hei hei!
========

80. Kehystetty teksti

Tee metodi kehysta, joka tulostaa tekstin kehystettynä. Tämä tarkoittaa, että tekstin ympärille tulee kehys merkeistä * seuraavan esimerkin mukaisesti.

Metodia voisi kutsua koodissa seuraavasti:

kehysta("Tervetuloa!");
kehysta("Kappas kippis!");
kehysta("Hei hei!");

Nyt tulostuksen tulisi olla seuraava:

***************
* Tervetuloa! *
***************
******************
* Kappas kippis! *
******************
************
* Hei hei! *
************

81. Vastaluku

Tee metodi vastaluku, joka laskee luvun vastaluvun. Tämä tarkoittaa, että positiivinen luku muuttuu negatiiviseksi ja päinvastoin.

Metodia voisi kutsua koodissa seuraavasti:

System.out.print("Anna luku: ");
int luku = Integer.parseInt(input.nextLine());
System.out.println("Vastaluku: " + vastaluku(luku));

Nyt ohjelman toiminnan tulisi olla seuraava:

Anna luku: 5
Vastaluku: -5
Anna luku: -2
Vastaluku: 2

82. Keskiarvo

Tee metodi keskiarvo, joka laskee kahden luvun keskiarvon.

Metodia voisi kutsua koodissa seuraavasti:

System.out.print("Anna luku 1: ");
int luku1 = Integer.parseInt(input.nextLine());
System.out.print("Anna luku 2: ");
int luku2 = Integer.parseInt(input.nextLine());
System.out.println("Keskiarvo: " + keskiarvo(luku1, luku2));

Nyt ohjelman toiminnan tulisi olla seuraava:

Anna luku 1: 5
Anna luku 2: 8
Keskiarvo: 6.5

83. Listan summa

Tee metodi listanSumma, joka laskee listalla olevien lukujen summan.

Metodia voisi kutsua koodissa seuraavasti:

ArrayList<Integer> luvut = new ArrayList<Integer>();
luvut.add(3);
luvut.add(8);
luvut.add(1);
System.out.println("Summa: " + listanSumma(luvut));

Nyt tulostuksen tulisi olla seuraava:

Summa: 12

84. Listan keskiarvo

Tee metodi listanKeskiarvo, joka laskee listalla olevien lukujen keskiarvon.

Metodia voisi kutsua koodissa seuraavasti:

ArrayList<Integer> luvut = new ArrayList<Integer>();
luvut.add(3);
luvut.add(8);
luvut.add(1);
luvut.add(2);
System.out.println("Keskiarvo: " + listanKeskiarvo(luvut));

Nyt tulostuksen tulisi olla seuraava:

Keskiarvo: 3.5

85. Listan suurin

Tee metodi listanSuurin, joka palauttaa listan suurimman luvun.

Metodia voisi kutsua koodissa seuraavasti:

ArrayList<Integer> luvut = new ArrayList<Integer>();
luvut.add(3);
luvut.add(8);
luvut.add(1);
System.out.println("Suurin: " + listanSuurin(luvut));

Nyt tulostuksen tulisi olla seuraava:

Suurin: 8

86. Pariton luku

Tee metodi onPariton, joka tarkistaa, onko listalla paritonta lukua.

Metodia voisi kutsua koodissa seuraavasti:

ArrayList<Integer> luvut = new ArrayList<Integer>();
luvut.add(3);
luvut.add(8);
luvut.add(1);
if (onPariton(luvut)) {
    System.out.println("Listalla on pariton luku.");
} else {
    System.out.println("Listalla ei ole paritonta lukua.");
}

Nyt tulostuksen tulisi olla seuraava:

Listalla on pariton luku.

Lisätehtävät

87. Samat kirjaimet

Tee ohjelma, joka kysyy käyttäjältä sanan ja etsii kirjaimen, joka esiintyy monta kertaa, tai ilmoittaa, että sellaista ei ole. Ohjelman riittää ilmoittaa yksi kirjain, joka esiintyy monta kertaa.

Ohjelmasi tulisi toimia seuraavasti:

Anna sana: testi
Kirjain t esiintyy monta kertaa.
Anna sana: arvoitus
Mikään kirjain ei esiinny monta kertaa.

88. Osajonot

Tee ohjelma, joka kysyy käyttäjältä sanan ja osajonon pituuden. Sitten ohjelma tulostaa kaikki tällaiset osajonot.

Ohjelmasi tulisi toimia seuraavasti:

Anna sana: esimerkki
Osajonon pituus: 4
Osajonot:
esim
sime
imer
merk
erkk
rkki
Anna sana: esimerkki
Osajonon pituus: 7
Osajonot:
esimerk
simerkk
imerkki

89. Vokaalit ja konsonantit

Tee ohjelma, joka kysyy käyttäjältä sanan ja laskee sen vokaalien ja konsonanttien määrän.

Ohjelmasi tulisi toimia seuraavasti:

Anna sana: esimerkki
Vokaalit: 4
Konsonantit: 5

90. Kolikkotutkimus

Tee ohjelma, joka heittää kolikkoa miljoona kertaa. Sitten ohjelma kertoo, kuinka monta kertaa tuli kruuna ja klaava.

Ohjelmasi tulostuksen tulisi olla esimerkiksi seuraava:

Kruuna: 500274 kpl
Klaava: 499726 kpl

91. Salasana

Tee ohjelma, joka muodostaa satunnaisen salasanan. Salasanan tulee muodostua kirjaimista a–z ja siinä tulee olla kahdeksan kirjainta.

Ohjelmasi tulostuksen tulisi olla esimerkiksi seuraava:

Salasana: zihoesov
Salasana: nypottsr

92. Koiran nimi

Tee ohjelma, joka arpoo koiralle nimen. Mahdollisia koiran nimiä kannattaa säilyttää listassa.

Ohjelmasi tulostuksen tulisi olla esimerkiksi seuraava:

Koiran nimi: Musti
Koiran nimi: Peni

93. Numeroiden summa

Tee ohjelma, joka kysyy käyttäjältä luvun ja laskee sen numeroiden summan.

Esimerkiksi jos luku on 182, sen numeroiden summa on 1 + 8 + 2 = 11.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 182
Numeroiden summa: 11
Anna luku: 7263
Numeroiden summa: 18

94. Kaikki palindromiluvut

Palindromiluku on luku, jonka numerot ovat samat alusta loppuun ja lopusta alkuun luettuna. Esimerkiksi luvut 1771 ja 82528 ovat palindromilukuja.

Tee ohjelma, joka tulostaa kaikki palindromiluvut välillä 1–1000000.

Ohjelmasi tulostuksen tulisi olla seuraava:

1
2
3
(paljon rivejä välissä)
997799
998899
999999

95. Alkuluvun tarkistus

Alkuluku on kokonaisluku (yli 1), joka on jaollinen vain 1:llä ja itsellään. Esimerkiksi luvut 7 ja 19 ovat alkulukuja. Luku 15 ei ole alkuluku, koska 15 = 3 · 5.

Tee ohjelma, joka kysyy käyttäjältä luvun ja ilmoittaa, onko se alkuluku.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 19
Luku on alkuluku.
Anna luku: 15
Luku ei ole alkuluku.

96. Kaikki alkuluvut

Tee ohjelma, joka tulostaa kaikki alkuluvut välillä 1–1000000.

Ohjelmasi tulostuksen tulisi olla seuraava:

2
3
5
(paljon rivejä välissä)
999961
999979
999983

97. Rekursiivinen kääntö

Toteuta merkkijonon kääntävä metodi kaanna rekursiivisesti.

Metodia voisi kutsua koodissa seuraavasti:

System.out.println(kaanna("esimerkki"));

Nyt tulostuksen tulisi olla seuraava:

ikkremise

98. Kaikki merkkijonot

Tee ohjelma, joka kysyy käyttäjältä merkkijonon pituuden ja kirjainten määrän. Sitten ohjelma tulostaa kaikki tällaiset merkkijonot. Merkkijonot muodostuvat suuraakkosista esimerkkien mukaisesti.

Ohjelmasi tulisi toimia seuraavasti:

Pituus: 3
Kirjaimia: 2
AAA
AAB
ABA
ABB
BAA
BAB
BBA
BBB
Pituus: 4
Kirjaimia: 5
AAAA
AAAB
AAAC
(paljon rivejä välissä)
EEEC
EEED
EEEE

Pähkinä

99. Luku suomeksi

Tee ohjelma, joka kysyy käyttäjältä luvun ja tulostaa sen suomeksi. Voit olettaa, että käyttäjän antama luku on välillä 0–999999999.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 17
Suomeksi: seitsemäntoista
Anna luku: 2305
Suomeksi: kaksituhattakolmesataaviisi
Anna luku: 81014003
Suomeksi: kahdeksankymmentäyksimiljoonaaneljätoistatuhattakolme

Takaisin kurssin pääsivulle