Takaisin kurssin pääsivulle

Tehtävät, osa 2

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 2 tehtävien viimeinen palautuspäivä on keskiviikko 25.5., mutta tehtäviä voi mielellään palauttaa aiemminkin.

Tehtäväpohjat

Lataa osan 2 tehtäväpohjat

Perustehtävät

Kertaustehtäviä:

34. Kielen valinta

Tee ohjelma, joka kysyy käyttäjältä kielen ja tulostaa vastaavan tervehdyksen. Voit valita itse, mitkä kielet ohjelmasi tuntee.

Ohjelmasi tulisi toimia esimerkiksi seuraavasti:

Anna kieli: suomi
Tervetuloa!
Anna kieli: englanti
Welcome!
Anna kieli: syrjääni
En tunne kieltä!

35. Lähempänä nollaa

Tee ohjelma, joka kysyy käyttäjältä kaksi lukua ja tulostaa niistä lähempänä nollaa olevan.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku 1: 3
Anna luku 2: -5
Lähempänä nollaa: 3
Anna luku 1: 8
Anna luku 2: 1
Lähempänä nollaa: 1

Jos luvut ovat yhtä lähellä nollaa, ohjelmasi voi tulostaa kumman tahansa.

36. Siisti lukuväli

Tee ohjelma, joka kysyy käyttäjältä ylärajan ja tulostaa luvut 1:stä ylärajaan siististi. Esimerkit selventävät, mitä "siististi" tarkoittaa.

Ohjelmasi tulisi toimia seuraavasti:

Anna yläraja: 5
1, 2, 3, 4 ja 5
Anna yläraja: 8
1, 2, 3, 4, 5, 6, 7 ja 8

37. Neliöt

Luvun neliö saadaan korottamalla luku toiseen potenssiin. Esimerkiksi luvun 5 neliö on 25, koska 52 = 25.

Tee ohjelma, joka kysyy käyttäjältä ylärajan ja tulostaa lukujen neliöt 1:stä ylärajaan asti.

Ohjelmasi tulisi toimia seuraavasti:

Anna yläraja: 5
Neliöt:
1
4
9
16
25

38. Suorakulmio

Tee ohjelma, joka kysyy käyttäjältä suorakulmion korkeuden ja leveyden. Sitten ohjelma tulostaa vastaavan suorakulmion tähdistä.

Ohjelmasi tulisi toimia seuraavasti:

Anna korkeus: 4
Anna leveys: 12
************
************
************
************

39. Erilaiset summat

Tee ohjelma, joka kysyy käyttäjältä luvun ja tulostaa kaikki eri tavat, joilla kyseinen luku saadaan kahden positiivisen kokonaisluvun summana.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 5
1 + 4 = 5
2 + 3 = 5
3 + 2 = 5
4 + 1 = 5
Anna luku: 6
1 + 5 = 6
2 + 4 = 6
3 + 3 = 6
4 + 2 = 6
5 + 1 = 6

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

40. Syntymävuosi

Tee ohjelma, joka kysyy käyttäjältä syntymävuoden. Ohjelma jatkaa kysymistä, kunnes käyttäjä antaa vuoden välillä 1900–2010.

Ohjelmasi tulisi toimia seuraavasti:

Anna syntymävuosi: 1865
Ei kelpaa!
Anna syntymävuosi: 2012
Ei kelpaa!
Anna syntymävuosi: 1989
Kiitos!

41. Salasana

Tee ohjelma, joka kysyy käyttäjältä sanasanan. Toimivat salasanat ovat "selleri" ja "nauris". Ohjelma jatkaa kysymistä, kunnes käyttäjä antaa jommankumman näistä.

Ohjelmasi tulisi toimia seuraavasti:

Anna salasana: kissa
Väärin!
Anna salasana: lanttu
Väärin!
Anna salasana: nauris
Tervetuloa!

42. Positiivinen luku

Tee ohjelma, joka kysyy käyttäjältä positiivisen luvun. Ohjelma jatkaa kysymistä, kunnes käyttäjä antaa positiivisen luvun.

Ohjelmasi tulisi toimia seuraavasti:

Anna positiivinen luku: -3
Ei kelpaa!
Anna positiivinen luku: 0
Ei kelpaa!
Anna positiivinen luku: -5
Ei kelpaa!
Anna positiivinen luku: 2
Kiitos!

43. Lukujen summa

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä antaa luvun 0. Sitten ohjelma ilmoittaa lukujen summan.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 4
Anna luku: 3
Anna luku: 9
Anna luku: 1
Anna luku: 0
Summa: 17

44. Lukujen keskiarvo

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä antaa luvun 0. Sitten ohjelma ilmoittaa lukujen määrän ja keskiarvon.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 4
Anna luku: 3
Anna luku: 9
Anna luku: 1
Anna luku: 0
Määrä: 4
Keskiarvo: 4.25

Lukua 0 ei siis lasketa määrään eikä keskiarvoon.

45. Positiiviset ja negatiiviset

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä antaa luvun 0. Sitten ohjelma tulostaa positiivisten ja negatiivisten lukujen määrän.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 3
Anna luku: -1
Anna luku: 8
Anna luku: 7
Anna luku: -5
Anna luku: 0
Positiivisia: 3
Negatiivisia: 2

46. Valikko

Tee ohjelma, joka tuntee seuraavat komennot:

Ohjelmasi tulisi toimia seuraavasti:

Anna komento: 1
Morjens!
Anna komento: 2
Hei vain!
Anna komento: 1
Morjens!
Anna komento: 1
Morjens!
Anna komento: 2
Hei vain!
Anna komento: 3

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

47. Viikonpäivä

Ohjelman käytössä on seuraava lista:

ArrayList<String> paivat = new ArrayList<String>();

paivat.add("maanantai");
paivat.add("tiistai");
paivat.add("keskiviikko");
paivat.add("torstai");
paivat.add("perjantai");
paivat.add("lauantai");
paivat.add("sunnuntai");

Täydennä ohjelmaa niin, että se kysyy käyttäjältä viikonpäivän numeron ja tulostaa vastaavan viikonpäivän listalta.

Ohjelmasi tulisi toimia seuraavasti:

Anna numero: 3
Viikonpäivä: keskiviikko
Anna numero: 7
Viikonpäivä: sunnuntai

48. Luvut uudestaan

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä antaa luvun 0. Sitten ohjelma tulostaa kaikki luvut uudestaan samassa järjestyksessä.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 4
Anna luku: 3
Anna luku: 9
Anna luku: 1
Anna luku: 0
Uudestaan:
4
3
9
1

49. Luvut väärinpäin

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä antaa luvun 0. Sitten ohjelma tulostaa kaikki luvut uudestaan käänteisessä järjestyksessä.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 4
Anna luku: 3
Anna luku: 9
Anna luku: 1
Anna luku: 0
Väärinpäin:
1
9
3
4

50. Nimilista

Tee ohjelma, joka kysyy käyttäjältä nimiä, kunnes käyttäjä antaa tyhjän merkkijonon. Sitten ohjelma tulostaa nimet aakkosjärjestyksessä.

Ohjelmasi tulisi toimia seuraavasti:

Anna nimi: Maija
Anna nimi: Aapeli
Anna nimi: Sirkka
Anna nimi: Uolevi
Anna nimi:
Nimet järjestyksessä:
Aapeli
Maija
Sirkka
Uolevi

51. Tilasto

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä antaa luvun 0. Sitten ohjelma tulostaa luvuista tilaston esimerkin mukaisesti.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 4
Anna luku: 3
Anna luku: 9
Anna luku: 5
Anna luku: 0
Tilasto:
**** 4
*** 3
********* 9
***** 5

52. Lottorivi

Tee ohjelma, joka kysyy käyttäjältä oikean lottorivin ja käyttäjän lottorivin. Sitten ohjelma kertoo, montako numeroa meni oikein. Käyttäjä antaa molempien rivien numerot pienimmästä suurimpaan.

Ohjelmasi tulisi toimia seuraavasti:

Anna oikea rivi:
3
8
9
11
25
33
36
Anna oma rivisi:
6
9
17
18
25
37
38
Sait 2 oikein.

Tässä tapauksessa käyttäjän rivissä olivat oikein numerot 9 ja 25.

53. Soittolista

Tee ohjelma, joka kysyy käyttäjältä kappaleiden nimiä, kunnes käyttäjä antaa tyhjän merkkijonon. Sitten ohjelma tulostaa soittolistan, joka sisältää kappaleet satunnaisessa järjestyksessä.

Ohjelmasi tulisi toimia seuraavasti:

Anna kappale: Säkkijärven polkka
Anna kappale: Finlandia
Anna kappale: Reppu ja reissumies
Anna kappale: Tankeros Love
Anna kappale:
Soittolista:
Finlandia
Tankeros Love
Reppu ja reissumies
Säkkijärven polkka

Lisätehtävät

54. Kakkosen potenssit

Tee ohjelma, joka tulostaa kaikki kakkosen potenssit käyttäjän antamaan ylärajaan asti.

Ohjelmasi tulisi toimia seuraavasti:

Anna yläraja: 20
1
2
4
8
16
Anna yläraja: 150
1
2
4
8
16
32
64
128

55. Summan yläraja

Tee ohjelma, joka tulostaa lukuja 1:stä alkaen, kunnes lukujen summa ylittää käyttäjän antaman ylärajan.

Ohjelmasi tulisi toimia seuraavasti:

Anna yläraja: 20
1
2
3
4
5
6
Summa: 21
Anna yläraja: 30
1
2
3
4
5
6
7
8
Summa: 36

56. Suurin luku

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä antaa luvun 0. Sitten ohjelma ilmoittaa suurimman käyttäjän antaman luvun.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 4
Anna luku: 3
Anna luku: 9
Anna luku: 1
Anna luku: 0
Suurin luku: 9
Anna luku: -2
Anna luku: 0
Suurin luku: -2

Voit olettaa, että käyttäjä antaa ainakin yhden luvun. Lukua 0 ei oteta huomioon suurimman luvun valinnassa.

57. Eri luvut

Tee ohjelma, joka kysyy käyttäjältä lukuja, kunnes käyttäjä antaa luvun 0. Sitten ohjelma tulostaa uudestaan kaikki käyttäjän antamat eri luvut pienimmästä suurimpaan.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 4
Anna luku: 2
Anna luku: 5
Anna luku: 5
Anna luku: 2
Anna luku: 6
Anna luku: 2
Anna luku: 0
Eri luvut:
2
4
5
6

58. Kertoma

Kokonaisluvun n kertoma n! tarkoittaa tuloa 1 · 2 · 3 · ... · n, eli esimerkiksi 5! = 1 · 2 · 3 · 4 · 5 = 120. Lisäksi on sovittu, että 0! = 1.

Tee ohjelma, joka laskee käyttäjän antaman luvun kertoman.

Ohjelmasi tulisi toimia seuraavasti:

Anna luku: 5
Kertoma: 120

59. Vuorotellen

Tee ohjelma, joka kysyy käyttäjältä ylärajan, ja tulostaa sitten luvut 1:n ja ylärajan väliltä seuraavien esimerkkien mukaisesti.

Ohjelmasi tulisi toimia seuraavasti:

Anna yläraja: 5
1 5 2 4 3
Anna yläraja: 8
1 8 2 7 3 6 4 5

60. Fibonaccin luvut

Fibonaccin lukusarja alkaa seuraavasti:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55...

Ideana on siis, että seuraava luku on kahden edellisen luvun summa.

Tee ohjelma, joka tulostaa halutun määrän ensimmäisiä Fibonaccin lukuja.

Ohjelmasi tulisi toimia seuraavasti:

Montako? 5
0
1
1
2
3
Montako? 8
0
1
1
2
3
5
8
13

61. Muotoiltu tulostus

Tee ohjelma, joka tulostaa luvut 1:stä käyttäjän antamaan ylärajaan asti. Ohjelman tulee tulostaa joka riville 10 lukua ja jokaisen luvun neljän merkin kokoisen kenttään.

Ohjelmasi tulisi toimia seuraavasti:

Anna yläraja: 57
   1   2   3   4   5   6   7   8   9  10
  11  12  13  14  15  16  17  18  19  20
  21  22  23  24  25  26  27  28  29  30
  31  32  33  34  35  36  37  38  39  40
  41  42  43  44  45  46  47  48  49  50
  51  52  53  54  55  56  57

62. Korttipakka

Tee ohjelma, joka tulostaa kaikki korttipakan kortit.

Korttipakan maat ovat pata, ruutu, risti ja hertta, ja korttien numerot ovat väliltä 1–13.

Ohjelmasi tulostuksen tulisi olla seuraava:

pata-1
pata-2
pata-3
(paljon rivejä välissä)
hertta-11
hertta-12
hertta-13

63. Pokeri

Tee ohjelma, joka arpoo viisi korttia korttipakasta.

Ohjelmasi tulisi toimia esimerkiksi seuraavasti:

pata-2
ruutu-13
risti-4
risti-6
ruutu-9

Huom! Sama kortti ei saa esiintyä monta kertaa pokerikädessä.

64. Kaikki parit

Tee ohjelma, joka kysyy käyttäjältä nimiä, kunnes käyttäjä antaa tyhjän merkkijonon. Sitten ohjelma listaa kaikki parit, jotka nimistä voidaan muodostaa.

Ohjelmasi tulisi toimia seuraavasti:

Anna nimi: Aapeli
Anna nimi: Maija
Anna nimi: Uolevi
Anna nimi: Sirkka
Anna nimi:
Parit:
Aapeli ja Maija
Aapeli ja Uolevi
Aapeli ja Sirkka
Maija ja Uolevi
Maija ja Sirkka
Uolevi ja Sirkka

65. Kaikki kolmikot

Tee ohjelma, joka kysyy käyttäjältä nimiä, kunnes käyttäjä antaa tyhjän merkkijonon. Sitten ohjelma listaa kaikki kolmikot, jotka nimistä voidaan muodostaa.

Ohjelmasi tulisi toimia seuraavasti:

Anna nimi: Aapeli
Anna nimi: Maija
Anna nimi: Uolevi
Anna nimi: Sirkka
Anna nimi: Elli
Anna nimi:
Kolmikot:
Aapeli, Maija ja Uolevi
Aapeli, Maija ja Sirkka
Aapeli, Maija ja Elli
Aapeli, Uolevi ja Sirkka
Aapeli, Uolevi ja Elli
Aapeli, Sirkka ja Elli
Maija, Uolevi ja Sirkka
Maija, Uolevi ja Elli
Maija, Sirkka ja Elli
Uolevi, Sirkka ja Elli

Pähkinä

66. Lukuspiraali

Tee ohjelma, joka tulostaa halutun kokoisen lukuspiraalin seuraavien esimerkkien mukaisesti.

Ohjelmasi tulisi toimia seuraavasti:

Anna koko: 3
   1   2   9
   4   3   8
   5   6   7
Anna koko: 4
   1   2   9  10
   4   3   8  11
   5   6   7  12
  16  15  14  13
Anna koko: 5
   1   2   9  10  25
   4   3   8  11  24
   5   6   7  12  23
  16  15  14  13  22
  17  18  19  20  21

Takaisin kurssin pääsivulle