murtolukujen supistus...

Hei osaaks joku selittää..että jos mulla on ohjelma(javalla)mikä yhteenlaskee,vähentää,kertoo ja jakaa kaks annettua lukua, niin miten mä saan laitettua sinne persiiseen ohjelmakoodia, että se vastaus tulostuis supistettuna? Mulla on tällanen tästä suunnitteluvaiheesta valmiina..mut mites sinne perään tulee se supistus koodi?

Ohjelmakoodi:   
double yht(double a, double b) {
summa = a b;
return summa;

}

double väh(double a, double b) {
vähennys = a-b;
return vähennys;

}

double osa(double a, double b) {
osamäärä = a/b;
return osamäärä;
            
}

double kerto(double a, double b) {
tulo = a*b;
return tulo;

...................tänne mitä? Kiitos jos joku jeesaa :)
6661
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Koodisi laskee reaaliluvuilla, ei murtoluvuilla.

Supistamisessa tulee olla osoittaja ja nimittäjä. Kummastakin etsitään yhteiset tekijät jonka jälkeen tehdään tarvittavat jakolaskut.

Äänestä
  • Siis mitenkäs niin, voitko selventää. Osoittaja ja nimittäjä on int, ja eikös sitten kun molemmat on annettu..niin koko murtoluku on double? Tätäkö yritit vihjaista?

    Äänestä

  • qwerty kirjoitti:

    Siis mitenkäs niin, voitko selventää. Osoittaja ja nimittäjä on int, ja eikös sitten kun molemmat on annettu..niin koko murtoluku on double? Tätäkö yritit vihjaista?

    Kone tuntee ainoastaan binääriarvot, sen seurauksena kone ymmärtää ainoastaan desimaalilukuja. Murtoluku ei ole varsinaisesti luku, vaan kokonaislukujen jakolasku. Laskutoimitus. Eikä laskutoimituksella itsessään voi olla yksittäistä määrettä, ainoastaan sen tekijöillä ja tuloksella.

    Eli sinun pitää siis saada se kone esittämään sen jakolaskun sievennös. Koska kyseessä on nimenomaan kokonaislukujen jakolasku, on osoittajan ja nimittäjän oltava int niin ennen kuin jälkeen sievennöksen.

    Äänestä

  • qwerty kirjoitti:

    Siis mitenkäs niin, voitko selventää. Osoittaja ja nimittäjä on int, ja eikös sitten kun molemmat on annettu..niin koko murtoluku on double? Tätäkö yritit vihjaista?

    Murtoluvuissa on osoittaja ja nimittäjä. Esimerkkejä löytyy esim osoitteesta

    http://www.oph.fi/etalukio/opiskelumodulit/pimatem/paavalikko/pmku1/laskpot_s1.html

    Jotta voisit esittää murtoluvun tarvitset siis kaksi kokonaislukua. Esimerkkisi jakolaskun tulos on reaaliluku jota Javassa esittää esim. tietotyppi double. Itse tekisin luokan nimeltä Murtoluku ja sille tarvittavat metodit.

    Esimerkki

    1/2 * 2/3 = 2/6
    eikä 0,333333333333333333333333333

    Äänestä

Saat sen näin Stringiksi (ja vähän extraa...)

// koodi alkaa
String sup(int osoit, int nimit) {

// Murtoluku sup
String sup = "" + osoit + "/" + nimit + "";

// Haetaan suurin yhteinen tekijä
// ja supistetaan sillä
int o = osoit;
int n = nimit;
for(int i=2; i= nimit){
// Kokonaisluku: jakojäännös = 0
if(osoit%nimit == 0) {
sup = "" + osoit/nimit;

// Kokonaisluku + jakojäännös murtolukuna
} else {
int jn = osoit%nimit;
sup = "" + osoit/nimit + " " +
jn + "/" + nimit;
}
}
return sup;
}
// koodi loppuu

Äänestä

Kommentoi aloitusta


Qwerty kirjoitti:

Hei osaaks joku selittää..että jos mulla on ohjelma(javalla)mikä yhteenlaskee,vähentää,kertoo ja jakaa kaks annettua lukua, niin miten mä saan laitettua sinne persiiseen ohjelmakoodia, että se vastaus tulostuis supistettuna? Mulla on tällanen tästä suunnitteluvaiheesta valmiina..mut mites sinne perään tulee se supistus koodi?

Ohjelmakoodi:   
double yht(double a, double b) {
summa = a b;
return summa;

}

double väh(double a, double b) {
vähennys = a-b;
return vähennys;

}

double osa(double a, double b) {
osamäärä = a/b;
return osamäärä;
            
}

double kerto(double a, double b) {
tulo = a*b;
return tulo;

...................tänne mitä? Kiitos jos joku jeesaa :)

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu