Tehtävät viikolle 3

Tehtävät tehdään harjoitussaleissa.

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

HUOM: nimeä tiedostot otsikossa olevan sanan mukaan

HUOM2: kaikki ohjelmat tehdään tästä lähtien NetBeans-ohjelmalla. Jokaiselle tehtävällä kannattaa tehdä oma projekti, paitsi ne tehtävät jotka liittyvät toisiinsa voidaan tehdän saman projektin alle. Kurssimateriaalissa on lyhyt ohje NetBeansin käyttöön. Lue ohje ja toimi sen mukaan. Opimme vähitellen käyttämään ohjelmaa paremmin.

Tulostus

Kuusi.java

Tee metodi public static void kuusi(), joka tulostaa kuusen.

Tarvitset myös "pääohjelman", eli main-metodin, josta kutsut kuusi-metodia. Pääohjelma sijoitetaan aina sopivasti nimetyn ohjelmarungon (eli luokan) sisään kuten materiaalin luvun 2 alussa tapahtuu. Käytä ohjelmarungon nimenä tehtävien otsikoita.

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

Vaikka tehtävässä pyydettäisiin vain metodin tekemistä, tulee tästä lähtien kaikissa tehtävissä olla vastauksena toimiva ohjelma, eli "pääohjelma" eli main-metodi ja ohjelmarunko (eli luokka) on oltava mukana.

Kuusimetsä eli Kuusi.java laajennettuna

Käytä edellisessä tehtyä metodia siten, että tulostat allekkain useamman kuusen.

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

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

Laskentaa ja syötteen lukemista

Matematiikkaa.java

Tee metodi jakaja, joka tulostaa jakolaskun esimerkin mukaisesti.

Huom: metodi saa jaettavat luvut parametreina.

128 jaettuna 8 on 16
5 jaettuna 3 on 1.66666666666667

Matematiikkaa.java jatkuu

Tee metodi, joka palauttaa ympyrän kehän (piirin) pituuden double-arvona. Pi:n arvon saat seuraavasti: Math.PI (double).

Anna ympyrän säde: 20

Ympyrän kehä on: 125.663706143592

IkaTervehdys.java

Tee ohjelma, joka kysyy käyttäjältä nimen ja tämän jälkeen iän. Tämän jälkeen ohjelma tervehtii käyttäjää ja kertoo samalla tämän iän. Nimen ja iän kysyminen tapahtuu pääohjelmassa eli mainissa. Tervehtiminen hoidetaan omassa metodissa.

Kuten luentomateriaalissa todettiin, on lukija:ssa sellainen ikävä piirre, että se ei toimi kunnolla jos luetaan ensin käyttäjältä luku ja sen jälkeen merkkinono. Eli jos luet iän ensin ja nimen sen jälkeen, hyppää ohjelma nimen yli kokonaan.

Kerro nimesi: Matti
Mikä on ikäsi: 14

Hei Matti, olet siis 14!

Nelilaskin.java

Tee viisi metodia, jotka suorittavat laskuoperaatiot ja palauttavat lopputuloksen.

Anna ensimmäinen luku: 3
Anna toinen luku: 2

Summa: 3 + 2 = 5
Erotus: 3 - 2 = 1
Jako: 3 / 2 = 1.5
Jakojäännös: 3 % 2 = 1
Kerto: 3 * 2 = 6 

Valintaa

Arvosanat.java

Tee ohjelma, joka kertoo minkä arvosanan kurssista saa.

Ohjelma käyttää metodia, jolle annetaan pisteet ja joka palauttaa pisteitä vastaavan arvosanan.

pisteet muuttuvat arvosanaksi seuraavan mukaan: 30-34 pistettä: 1, 35-39: 2, 40-44: 3, 45-49: 4, 50-60 : 5 ja alle 30 pistettä on hylätty.

Anna pisteet [0-60]: 30

Arvosanaksi 30 pisteellä tulee 1	

Toistoa

JokaToinen.java

Listaa joka toinen luku väliltä 0-100 laskevassa järjestyksessä. Toteuta sama sekä while- että for-lausee avulla!

100
98
96
94
...

LueSumma.java

Lue ja summaa n kappaletta lukuja.

Kuinka monta lukua syötät: 3
2
4
1

Lukujen summa on: 7

NegPos.java

Kuinka monta negatiivista ja positiivista?

Anna 0 lopettaaksesi.

Anna luku: 3
Anna luku: -3
Anna luku: 8
Anna luku: 2
Anna luku: 0

Positiivisia 3
Negatiivisia 1

MinMax.java

Selvitä käyttäjän syötteistä pienin ja suurin. Älä laske nollaa kummaksikaan.

Anna lukuja, 0 lopettaa:
8
92
2
32
0

Suurin luku oli 92, pienin luku oli 2.

Taulukkoon lisääminen

LueLuvut.java

Alusta taulukko seuraavasti: int[] luvut = {-1, -1, -1, -1, -1, -1, -1}; ja lue siihen taulukon pituuden verran lukuja. Taulukon tulostus tapahtuu omassa metodissa.

Huom: Ohjelman tulee toimia taulukon pituudesta riippumatta. Tässä esimerkissä taulukon pituus on 7, mutta se voi olla muutakin. Joudut siis käyttämään while- tai for-komentoa taulukon käsittelyyn. Taulukon pituuden kertoo luvut.length, älä siis kirjoita koodiisi taulukon pituudeksi mitään numeroarvoa.

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

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

ArvaaLuku.java

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

Lukujen arvuuttelun tulee tapahtua omassa metodissa. Metodi saa parametrinaan taulukon, jossa alussa syötetyt luvut ovat. Vihje: metodista voi poistua milloin tahansa komennolla return.

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!

Loppuhuipennus

Arvosanajakauma.java

Tulosta arvosanajakauma siten, että teet metodin, joka piirtää tarvittavan määrän tähtiä. Älä siis toista tähtien tulostusta koodissasi kuuteen kertaan vaan hoida jokaisen tähtimäärän tulostus saman metodin avulla. Lue arvosanat myös taulukkoon, jonka koko on 6. Voit alustaa taulukon komennolla int[] arvosanat = {-1, -1, -1, -1, -1, -1}.

Anna seuraavat luvut,

Hylättyjä: 3
1: 3
2: 7
3: 2
4: 7
5: 10

Kurssin Agile Entwicklung mit Ruby über Gleis arvosanajakauma

5: **********
4: *******
3: **
2: *******
1: ***
0: ***

Hyväksyttyjä 87% osallistujista

Arvosanajakauma.java, jatkuu

Muutetaan edellistä tehtävää siten, että opettaja syöttää aluksi opiskelijoiden koepistemäärät. Syötetty koepistemäärä muutetaan vastaavaksi arvosanaksi tehtävän 3.1 metodilla. Näin selvitetyt arvosanat talletetaan taulukkoon joka täytyy nyt alustaa seuraavasti int[] arvosanat = {0, 0, 0, 0, 0, 0}.

Kurssin nimen ja arvosanataulukon parametrina saava metodi tulostaa kurssin arvosanajakauman.

Syötä kurssin nimi: 
Ohjelmoinnin perusteet

Syötä opiskelijoiden koepistemäärät. Lopetus -1:llä.

44
35
17
56
7
...
54
-1

Kiitos.

Kurssin Ohjelmoinnin perusteet arvosanajakauma

5: **********
4: *******
3: **
2: *******
1: ***
0: ***

Hyväksyttyjä 87% osallistujista

KorkeaKuusi.java

Tee vuorovaikutteinen ohjelma KorkeaKuusi, joka pyytää kolmion korkeuden ja tulostaa "*"-merkeistä muodostuvan kolmion seuraavan esimerkin tapaan. Kuusen tulostus tapahtuu sitä varten tehdyn metodin avulla. Jos korkeus on vaikkapa kuusi, ohjelma tulostaa:

Anna korkeus: 6

     *
    ***
   *****
  *******
 *********
***********
     *
 
 Anna korkeus: 3

  *
 ***
*****
  *
 
  

Tehtävä ei ole helppo. Mieti ongelmaa ensin kynän ja paperin kanssa. Kuusen tulostava metodi kannattanee toteuttaa siten, että se kutsuu erillistä apumetodia, joka tulostaa yhden kuusen "tason", eli ensin *, sitten ***, jne. sekä tasoon liittyvät sisennykset.

Saat olettaa, että käyttäjä todellakin syöttää tiedon oikean tyyppisenä - kuten saat olettaa kurssin kaikissa tehtävissä, ellei muuta pyydetä. Mutta varaudu kuitenkin siihen että luku on arvoltaan sopimaton: negatiivinen luku ei kelpaa leveydeksi. Virhetilanteessa ohjelman pitää antaa virheilmoitus ja pyytää uutta lukua kunnes saa kelvollisen.