Murtoluku (150p), kierros 4 tehtävä 1
Tämän tehtävän Goblin-tarkistuksessa ollut vika on nyt korjattu ja tämän tehtävän voi palauttaa Gobliniin tavalliseen tapaan.
Opiskeltavat asiat, joita tehtävässä erityisesti harjoitellaan: Oliomuuttuja metodin parametrina ja metodin palauttamana arvona.
Tee luennolla esitettyyn Murtoluku2-luokkaan alla kerrotut muutokset ja lisäykset. Annan uuden luokan nimeksi Murtoluku3.
* lisää luokkaan metodi public boolean onkoYhtasuuri(Murtoluku3 toinenLuku), joka palauttaa arvon true, jos nykyisen murtoluvun arvo sievennettynä on sama kuin parametrina annetun murtoluvun arvo sievennettynä. Metodi ei saa muuttaa vertailtavia murtolukuja
* muuta metodeita summa() ja tulo() siten, että niiden palauttama murtoluku on sievennetyssä muodossa.
* muuta metodia toString() siten, että jos murtoluvun osoittajan itseisarvo on suurempi kuin nimittäjä, metodi palauttaa merkkijonon, jossa on erikseen murtoluvun kokonaislukuosa ja jäljelle jäävä osa. Esimerkiksi murtoluvusta 40/15 metodin pitää palauttaa merkkijono "2 10/15" ja murtoluvusta -6/5 merkkijono "-1 1/5", murtoluvusta 5/5 merkkijono "1" ja luvusta 3/5 merkkijono "3/5".
Eclipse-projekti tehtävänantoon liittyen. ATK-keskuksen UNIX-koneissa projekti on tallennettu hakemistoon /p/edu/tik-106.1206 nimellä murtoluku3.zip.
Testeriohjelma
Murtoluku2.java
Esimerkki pääohjelman suorituksesta
[ohjelman suoritus alkaa]
Anna ensimmäisen luvun osoittaja
8
Anna ensimmäisen luvun nimittäjä
4
Anna toisen luvun osoittaja
5
Anna toisen luvun nimittäjä
11
Ensimmäinen luku: 2
Toinen luku: 5/11
Luvut eivät ole yhtäsuuret
Lukujen lukuarvoja ei muutettu vertailun yhteydessä
Lukujen summan nimittäjä on: 11
Lukujen summan osoittaja on 27
Lukujen (sievennetty) summa on: 2 5/11
Lukujen tulon nimittäjä on: 11
Lukujen tulon osoittaja on 10
Lukujen (sievennetty) tulo on: 10/11
[ohjelman suoritus päättyy]