All pastes #363419 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-02-19 11:53 UTC
rendered paste body

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]