Tehtävät viikolle 2

Tehtävät tehdään harjoitussaleissa.

Pakolliset tehtävät on merkitty harmalla taustavärillä.

Laskentaa ja toistamista

Kuulaskuri

Anna kuukausi: 9

Seuraavat 13 kuukautta:
10 11 12 1 2 3 4 5 6 7 8 9 10

Sekunnit tunneiksi

Tee ohjelma, joka kertoo kuinka monta kokonaista tuntia on käyttäjän syöttämissä sekunneissa.

Syötä sekuntilukema: 123456

Kokonaisia tunteja on 34!

Sekunnit tunneiksi ja minuuteiksi

Kirjoita ohjelma jolle annetaan sekunnit syötteenä. Ohjelma seuraavaksi tulostaa tunnit, minuutit ja sekunnit.

Syötä sekuntilukema: 123456

Tunteja: 34
Minuutteja: 17
Sekunteja: 36

Sekuntikello

Kirjoita ohjelma, joka kasvattaa sekunteja yhdellä aina, kun käyttäjä antaa syötteeksi numeron 1. Sekuntikello kierähtää ympäri sekunnin 59 jälkeen takaisin nollaan.


Sekunnit: 0
Lisää sekunti syöttämällä '1', tai '0' jos haluat lopettaa: 1

Sekunnit: 1
Lisää sekunti syöttämällä '1', tai '0' jos haluat lopettaa: 1

Sekunnit: 2
Lisää sekunti syöttämällä '1', tai '0' jos haluat lopettaa: 1

...

Sekunnit: 59
Lisää sekunti syöttämällä '1', tai '0' jos haluat lopettaa: 1

Sekunnit: 0
Lisää sekunti syöttämällä '1', tai '0' jos haluat lopettaa: 0

Kiitos!

Huom! Kellon kääntymistä kannattaa testata aluksi pienemmillä luvuilla kuin 60 :)

Taulukon läpikäyntiä

Alkioiden summa

Tee ohjelma, joka tulostaa yksiulotteisen taulukon alkiot sekä niiden summan. Ohjelma toimii kaikenkokoisilla taulukoilla.

taulukko = [5,1,3,4,2];

Taulukon alkiot:
5
1
3
4
2
Summa: 15

Läpikäynti käänteisessä järjestyksessä

Taulukon alkiot käänteisessä järjestyksessä:
2
4
3
1
5

Läpikäynti pilkulla erottaen

Tulosta alkiot siten, että väliin tulee pilkku. HUOM: lopussa ei saa olla pilkkua.

Taulukon alkiot: 1,31,122,45,132

Taulukkoon lisääminen

Lue numeroita

Alusta taulukko seuraavasti: numerot = [-1,-1,-1,-1,-1,-1,-1]; ja lue siihen 7 numeroa

Syötä 7 numeroa:
1
32
6
8
12
17
22

Syötit numerot: 1,32,6,8,12,17,22

Onko numero taulukossa

Ohjelmassasi on taulukko, jossa on arvoja. Ohjelma kysyy käyttäjältä lukua ja jatkaa kyselyä niin kauan, kunnes käyttäjä arvaa oikean luvun. Suoritus esimerkiksi taulukolla [1,53,2,3,100]

Arvaa luku: 4
Ei löydy!

Arvaa luku: 101
Ei löydy!

Arvaa luku: 2
Löytyi!

Syötä ja arvaa

Yhdistä edellä olevat tehtävät ja pelaa.

Syötä 7 numeroa:
1
32
6
8
12
17
22

Kiitos, Aloitetaan peli..

Arvaa luku: 4
Ei löydy!

Arvaa luku: 101
Ei löydy!

Arvaa luku: 6
Löytyi!

Funktioita

pienempiTulostaja(luku1, luku2)

Kirjoita funktio, jolle annetaan parametrina kaksi lukua. Funktio tulostaa näistä pienemmän.

Anna luku1: 4
Anna luku2: 3

Luku 3 on pienempi!

suurempi(luku1, luku2)

Kirjoita funktio, jolle annetaan parametrina kaksi lukua. Funktio palauttaa luvuista suuremman. Funktion kutsuja suorittaa tulostuksen, funktio itse ei tulosta mitään.

Anna luku1: 4
Anna luku2: 3

Luku 4 on suurempi!

suurempi(luku1, luku2)

Kuten edellä, mutta metodi palauttaa totuusarvon true jos ensimmäinen luku on suurempi

Anna luku1: 4
Anna luku2: 3

Luku 4 on suurempi!

Taulukon pienin

Tee funktio taulukonPienin(taulukko), joka palauttaa taulukon pienimmän arvon. Esimerkki kun taulukko on [8,3,5,1,9]

Taulukon pienin on 1

Taulukon suurin

Tee funktio taulukonSuurin(taulukko), joka palauttaa taulukon suurimman arvon. Esimerkki kun taulukko on [8,3,5,1,9]

Taulukon suurin on 9

Taulukon keskiarvo

Tee funktio keskiarvo(taulukko), joka laskee taulukon lukujen keskiarvon ja palauttaa sen.

Kahden taulukon summa

tee funktio taulukkoSumma(taulukko1,taulukko2), joka laskee taulukkojen arvojen summan.

taulukko1 = [1,2,3];
taulukko2 = [10,100];

summa = taulukkoSumma(taulukko1,taulukko2);
println("Taulukkojen summa: " + summa);

Sekunnit tunneiksi (2)

Tee funktio tunneiksi(sekunnit), joka kertoo kuinka monta kokonaista tuntia sekunneissa on.

Syötä sekuntilukema: 123456

Kokonaisia tunteja on 34!

Sisäkkäiset taulukot

Nimet ja sukunimet

Tee seuraavista yksiulotteisista taulukoista kaksiulotteinen taulukko nimet

["Matti", "Matti", "Arto"];
["Paksula", "Luukkainen", "Vihavainen"];

Tee ohjelma, joka tulostaa kaksiulotteisesta taulukosta seuraavan.

Matti Paksula
Matti Luukkainen
Arto Vihavainen

Nimet kääntäen

Muuta ohjelmaa siten, että sukunimet tulevat käänteisessä järjestyksessä.

Matti Vihavainen
Matti Luukkainen
Arto Paksula

Ristinollan tulostaja

Materiaalissa esiteltiin kaksiulotteinen taulukko, jossa oli kuvattu ristinollan lopputilanne. Tee ohjelma, joka tulostaa pelikentän syötetaulukosta (1=x, 0=o).

x|x|o
-----
x|o|x
-----
x|o|o

Bonus

Ristinollan tulostaja 2

Tee ohjelma, jossa on funktio ristinolla(taulukko,"X","O", "!", "-"). Ohjelma lukee kaksiulotteisesta syötetaulukosta kentän kuten aiemmassa tehtävässä.

X ! X ! O
---------
X ! O ! X
---------
X ! O ! O

4x4

Muuta toteutusta seuraavasti.

O : O : X : X
~~~~~~~~~~~~~
X : O : X : O
~~~~~~~~~~~~~
O : X : X : X
~~~~~~~~~~~~~
O : O : O : X

Kello

Kirjoita ohjelma jolle annetaan syötteenä tunnit, sekunnit ja minuutit. Tämän jälkeen käyttäjä voi valita joko tunnit "3", minuutit "2" tai sekunnit "1", mitä kasvatetaan. Kellonaika kasvaa aina sillä arvolla minkä käyttäjä valitsee. Tulosta kellonaika muodossa tunnit:minuutit:sekunnit. Huom! Tämä kello kierähtää ympäri keskiyöllä, eli kun pääset 23:59:59:ään, sekunnin jälkeen on 0:0:0. Ohjelman voi lopettaa syötteellä 0.

Syötä tunnit: 22
Syötä minuutit: 58
Syötä sekunnit: 45

Kello on 22:58:45
Lisää tunti (3), minuutti (2) tai sekunti (1), 0 lopettaa: 3

Kello on 23:58:45
Lisää tunti (3), minuutti (2) tai sekunti (1), 0 lopettaa: 2

Kello on 23:59:45
Lisää tunti (3), minuutti (2) tai sekunti (1), 0 lopettaa: 1

Kello on 23:59:46
Lisää tunti (3), minuutti (2) tai sekunti (1), 0 lopettaa: 3

Kello on 0:59:46
Lisää tunti (3), minuutti (2) tai sekunti (1), 0 lopettaa: 0

Kello on 1:00:46
Kiitos.

Ristinollan pelaaminen

 0 1 2
0 | |
 -----
1 | |
 -----
2 | |

Pelaaja x
Anna koordinaatti x: 1
Anna koordinaatti y: 1

 0 1 2
0 | |
 -----
1 |x|
 -----
2 | |

Pelaaja o
Anna koordinaatti x: 2
Anna koordinaatti y: 1

 0 1 2
0 | |o
 -----
1 |x|
 -----
2 | |

Lotto

Tee ohjelma, joka arpoo lottonumerot (väliltä 1–39). Jokainen numero saa esiintyä vain kerran. Satunnaisen numeron saat komennolla random(max), joka palauttaa satunnaisen numeron välillä 0 - (max-1).

Viikon virallinen rivi on: 8,39,2,1,32,3,15