lainalaskuriongelma

java1212

Eli tuo sisämmäinen while lause pitäisi saada toimimaan kuten myös korko. Tarkoitus olisi että käyttäjä syöttäisi lyhennyskertojen määrän vuodessa ja korko pitäisi mukautua sen lyhennyskertojen määrän mukaisesti oikein. Miten kaavat tehtäisiin ?
for (vuosi = 1; vuosi

15

710

    Vastaukset 15

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • dsfsdffd

      Siis herjaako kääntäjä vai meinaatko että vain laskut menee väärin

      whilellä pitää olla myös } sulku. Whilen ehdon, lyhennyskerrat jossain kasvaa että se tulee jossain kohtaa suuremmaksi kuin ehto.

      • java1221

        Herjaa koska ehtolause ei ole oikein. En siis ymmärrä millainen lause pitäisi tulla jotta haluttu toiminta saadaan aikaiseksi. Sulkeet ym. ovat tuttuja, mutta kyse on tuosta while lauseen sisällöstä ja koron saantiin luodusta kaavasta ja mitä se pitää sisällään.


      • Toteuta
        java1221 kirjoitti:

        Herjaa koska ehtolause ei ole oikein. En siis ymmärrä millainen lause pitäisi tulla jotta haluttu toiminta saadaan aikaiseksi. Sulkeet ym. ovat tuttuja, mutta kyse on tuosta while lauseen sisällöstä ja koron saantiin luodusta kaavasta ja mitä se pitää sisällään.

        for lausekkaassa haluat varmaan käyttää primitiivi tyyppiä int, eli

        for (int vuosi = 1; vuosi


      • java1221
        Toteuta kirjoitti:

        for lausekkaassa haluat varmaan käyttää primitiivi tyyppiä int, eli

        for (int vuosi = 1; vuosi

        Tuo vuosi on jo määritelty tuolla ohjelman alussa, siksi tuo mainittu for toimii jo oikein. Mutta tuo while lause:

        while (lyhennyskerrat


      • Toteuta
        java1221 kirjoitti:

        Tuo vuosi on jo määritelty tuolla ohjelman alussa, siksi tuo mainittu for toimii jo oikein. Mutta tuo while lause:

        while (lyhennyskerrat

        no missä kohdassa sä kasvatat lyhennyskerrat muuttujan arvoa? ei näy...

        korko = (lainamaara * korkopros *(lyhennyskerrat)/100*360 ;
        // tossakin on sulku väärässä kohdassa? toisekseen jos on pelkkiä kerto ja jakolaskuja niin ei sulkuja tartte ollenkaan

        korko = lainamaara * korkopros *(lyhennyskerrat/100)*360 ;
        // olisko noin?

        // ja sen lyhennyskerrat muuttujan arvon kasvatus, muutama esimerkki
        while (lyhennyskerrat


      • foobarfoo
        java1221 kirjoitti:

        Tuo vuosi on jo määritelty tuolla ohjelman alussa, siksi tuo mainittu for toimii jo oikein. Mutta tuo while lause:

        while (lyhennyskerrat

        Aluksi: korko-muuttujan laskemisessa on ylimääräinen kaarisulku. While-loopin lopusta puuttuu kanssa sulku. Seuraavaksi while-silmukan toiminta lyhyesti: While-silmukka suoritetaan niin kauan kun ehto on tosi, eli sinun while(lyhennyskerrat


      • java1221
        foobarfoo kirjoitti:

        Aluksi: korko-muuttujan laskemisessa on ylimääräinen kaarisulku. While-loopin lopusta puuttuu kanssa sulku. Seuraavaksi while-silmukan toiminta lyhyesti: While-silmukka suoritetaan niin kauan kun ehto on tosi, eli sinun while(lyhennyskerrat

        Tuossa koodia alusta alkaen. Siitä voitte katsoa mikä mättää. Kysymys mihin apua tarvitaan on lähinnä ongelma koodin sisällössä tuon while kohdan osalta ja korko kohdan osalta. Aaltosulkeet ym. laitan sitten aikanaan kuntoon kunhan ensin jotenkin saisi tuon laskutoimituksen koodiin oikein...

        int vuosi;
        float lyhennys;
        float lainamaara;
        float lainavuodet;
        float maksuera;
        float korko;
        float korkopros;
        float korkoyht;
        float lyhennysyht;
        float maksettavayht;
        float lyhennyskerrat;
        Scanner nappaimisto;

        korkoyht=0;
        lyhennysyht=0;
        maksettavayht=0;
        vuosi=0;

        Locale.setDefault(Locale.ENGLISH);
        nappaimisto = new Scanner(System.in);

        System.out.println("Asuntolainalaskuri");

        System.out.println("Anna lainamäärä?");
        lainamaara = nappaimisto.nextFloat();

        System.out.println("Montako kertaa vuodessa maksat lyhennyksiä?");
        lyhennyskerrat = nappaimisto.nextFloat();

        System.out.println("Anna laina-aika vuosissa?");
        lainavuodet = nappaimisto.nextFloat();

        System.out.println("Anna vuotuinen korkoprosentti?");
        korkopros = nappaimisto.nextFloat();



        if (lainavuodet > 0){
        lyhennys = lainamaara / lainavuodet / lyhennyskerrat;
        }
        else{
        lyhennys = 0;
        }



        System.out.print("");
        System.out.print("");
        System.out.format("%6s %12s %10s %14s %12s %n", "vuosi", "maksuerä", "korko", "lyhennys", "lainamäärä");
        System.out.print ("----------------------------------------------------------------------------------");

        for (vuosi = 1; vuosi


      • no eikö
        java1221 kirjoitti:

        Tuossa koodia alusta alkaen. Siitä voitte katsoa mikä mättää. Kysymys mihin apua tarvitaan on lähinnä ongelma koodin sisällössä tuon while kohdan osalta ja korko kohdan osalta. Aaltosulkeet ym. laitan sitten aikanaan kuntoon kunhan ensin jotenkin saisi tuon laskutoimituksen koodiin oikein...

        int vuosi;
        float lyhennys;
        float lainamaara;
        float lainavuodet;
        float maksuera;
        float korko;
        float korkopros;
        float korkoyht;
        float lyhennysyht;
        float maksettavayht;
        float lyhennyskerrat;
        Scanner nappaimisto;

        korkoyht=0;
        lyhennysyht=0;
        maksettavayht=0;
        vuosi=0;

        Locale.setDefault(Locale.ENGLISH);
        nappaimisto = new Scanner(System.in);

        System.out.println("Asuntolainalaskuri");

        System.out.println("Anna lainamäärä?");
        lainamaara = nappaimisto.nextFloat();

        System.out.println("Montako kertaa vuodessa maksat lyhennyksiä?");
        lyhennyskerrat = nappaimisto.nextFloat();

        System.out.println("Anna laina-aika vuosissa?");
        lainavuodet = nappaimisto.nextFloat();

        System.out.println("Anna vuotuinen korkoprosentti?");
        korkopros = nappaimisto.nextFloat();



        if (lainavuodet > 0){
        lyhennys = lainamaara / lainavuodet / lyhennyskerrat;
        }
        else{
        lyhennys = 0;
        }



        System.out.print("");
        System.out.print("");
        System.out.format("%6s %12s %10s %14s %12s %n", "vuosi", "maksuerä", "korko", "lyhennys", "lainamäärä");
        System.out.print ("----------------------------------------------------------------------------------");

        for (vuosi = 1; vuosi

        siihen annettu jo esimerkkiä edellisissä viesteissä...


      • java1221
        no eikö kirjoitti:

        siihen annettu jo esimerkkiä edellisissä viesteissä...

        Ei tuo korko osuus kyllä toimi siltikään oikein. Tulee ihan järjettömiä summia. Mikäs siinä vielä mättää ?
        korko = lainamaara * korkopros *(lyhennyskerrat /100)*360;


      • Toteuta
        java1221 kirjoitti:

        Ei tuo korko osuus kyllä toimi siltikään oikein. Tulee ihan järjettömiä summia. Mikäs siinä vielä mättää ?
        korko = lainamaara * korkopros *(lyhennyskerrat /100)*360;

        ne oli vain esimerkkejä lyhennyskerrat muuttujan arvon kasvatukseen, emmä sulle korkoja rupee laskeen. Tää foorumi kuitenki Java ohjelmoinnille tarkoitettu...


      • ...
        java1221 kirjoitti:

        Tuossa koodia alusta alkaen. Siitä voitte katsoa mikä mättää. Kysymys mihin apua tarvitaan on lähinnä ongelma koodin sisällössä tuon while kohdan osalta ja korko kohdan osalta. Aaltosulkeet ym. laitan sitten aikanaan kuntoon kunhan ensin jotenkin saisi tuon laskutoimituksen koodiin oikein...

        int vuosi;
        float lyhennys;
        float lainamaara;
        float lainavuodet;
        float maksuera;
        float korko;
        float korkopros;
        float korkoyht;
        float lyhennysyht;
        float maksettavayht;
        float lyhennyskerrat;
        Scanner nappaimisto;

        korkoyht=0;
        lyhennysyht=0;
        maksettavayht=0;
        vuosi=0;

        Locale.setDefault(Locale.ENGLISH);
        nappaimisto = new Scanner(System.in);

        System.out.println("Asuntolainalaskuri");

        System.out.println("Anna lainamäärä?");
        lainamaara = nappaimisto.nextFloat();

        System.out.println("Montako kertaa vuodessa maksat lyhennyksiä?");
        lyhennyskerrat = nappaimisto.nextFloat();

        System.out.println("Anna laina-aika vuosissa?");
        lainavuodet = nappaimisto.nextFloat();

        System.out.println("Anna vuotuinen korkoprosentti?");
        korkopros = nappaimisto.nextFloat();



        if (lainavuodet > 0){
        lyhennys = lainamaara / lainavuodet / lyhennyskerrat;
        }
        else{
        lyhennys = 0;
        }



        System.out.print("");
        System.out.print("");
        System.out.format("%6s %12s %10s %14s %12s %n", "vuosi", "maksuerä", "korko", "lyhennys", "lainamäärä");
        System.out.print ("----------------------------------------------------------------------------------");

        for (vuosi = 1; vuosi

        while-lauseeseen tarvitaan oma kierroslaskuri. Muuttuja lyhennyskerrat ei käy siihen tarkoitukseen.


      • java1221
        ... kirjoitti:

        while-lauseeseen tarvitaan oma kierroslaskuri. Muuttuja lyhennyskerrat ei käy siihen tarkoitukseen.

        olet oikeassa. Ongelma on että mikä sen pitäisi olla, mielestäni kun olen kokeillut jo kaikkia järkeviä mitä minulle tulee mieleeni...


      • foobarfoo
        java1221 kirjoitti:

        olet oikeassa. Ongelma on että mikä sen pitäisi olla, mielestäni kun olen kokeillut jo kaikkia järkeviä mitä minulle tulee mieleeni...

        Eli tarvitset laskurin, jossa sama arvo kuin lyhennyskerrat-muuttujalla ja jota pystyt muuttamaan.

        for(ehto){
        int laskuri = lyhennyskerrat;
        while(laskuri < 12){
        //laskut
        laskuri--;
        }
        }


      • java1221
        foobarfoo kirjoitti:

        Eli tarvitset laskurin, jossa sama arvo kuin lyhennyskerrat-muuttujalla ja jota pystyt muuttamaan.

        for(ehto){
        int laskuri = lyhennyskerrat;
        while(laskuri < 12){
        //laskut
        laskuri--;
        }
        }

        Eipä kyllä tuollakaan toimi.. Siitä tulee päättymätön simukka joka ei koskaan lopu, tuollahan laskuri toistaa itseään niin kauan kunnes lyhennyskerrat on alle 12 eli tässä tapauksessa aina. Parempia ideoita ? :)


      • foobarfoo
        java1221 kirjoitti:

        Eipä kyllä tuollakaan toimi.. Siitä tulee päättymätön simukka joka ei koskaan lopu, tuollahan laskuri toistaa itseään niin kauan kunnes lyhennyskerrat on alle 12 eli tässä tapauksessa aina. Parempia ideoita ? :)

        Et tee koodissasi missään tarkistusta, että lyhennysten määrä on alle 12 (et muutenkaan tarkistele noita syötettyjä tietoja).
        Mutta kun pyysit parempaan ideaa, niin kokeillaan:

        int laskuri = 0;
        while(laskuri < lyhennyskerrat){
        laskuri ;
        }


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Nyt se syksy on sitten alkanut

      Esimerkiksi tänään sataa aamusta iltaan, ja nytkin.
      Maailman menoa
      60
      1049
    2. Minä en ole koskaan

      Rakastanut ketään toista yhtä paljon kuin sinua
      Ikävä
      98
      1024
    3. Tiesitkö? Jorma Uotisen EX-rakas on Helena Lindgren - Nämä ovat välit nyt: "Me ollaan..."

      Jorma Uotinen ja Helena Lindgren olivat avoliitossa v. 1982-1999. Pariskunta oli aikansa näyttävä julkkispari, missä i
      Kotimaiset julkkisjuorut
      21
      882
    4. Olet nainen ollut vaikein rasti

      Eniten olet tunteitani myllännyt ja niitä kuluttanut, ja tuottanut. 🤔
      Ikävä
      60
      810
    5. Vähän pitää

      Kiusia ja näyttää
      Ikävä
      135
      802
    6. Anteeksi J-mies

      Anteeksi että myötävaikutin siihen että rakastuit minuun, jota et voi koskaan saada. Viimeksi kun näimme ja katselimme t
      Ikävä
      124
      795
    7. Kenen viisautta on ollut laittaa tie väärällä murskeella pilalle

      Kenen viisautta on ollut kun Siimeksen/Kylmänpurontie pantu pilalle kun on ajettu liian karkeaa mursketta. Rengasliikke
      Hyrynsalmi
      25
      689
    8. Taidat olla

      Luovuttanut jo minun suhteeni osalta?
      Ikävä
      45
      666
    9. Riittääkö mahkut

      Kaivattuusi 🤭.
      Ikävä
      51
      660
    10. Kuhmolainen opettaja tuomittu vainoamisesta

      https://yle.fi/a/74-20248184 ”Kuusikymppinen kuhmolaisnainen piinasi naapureitaan lähes kahdeksan vuoden ajan. Nainen
      Kuhmo
      14
      625
    11. Minä muistan

      Minä muistan sinut nauravana. Sellaisena, joka sai tavallisenkin hetken tuntumaan vähän kevyemmältä, kuin huoneeseen ol
      Ikävä
      45
      620
    12. Mä voisin rakastua noihin tähti silmiin

      Katseesi on niin lumoava nainen💚.
      Ikävä
      19
      607
    13. Siinä kävi mies nyt niin että tämä ämmä muuttaa ulkomaille

      Vuonojen maa kutsuu, joten ei hätää. Et kuule minusta enää. 😂 Lycka till! Ämmä riittää.
      Ikävä
      83
      586
    14. Jos tullaan toisiamme vastaan, niin

      pitäiskö pysähtyä ja onnitella?
      Ikävä
      46
      578
    15. Koska Martina viettää aikaansa lapsiensa kanssa

      Äiti vaan juoksee miehen perässä Tallinnassa, Lontoossa, Turussa. Kyllä oli kätilö oikeassa, kun sanoi, että ei olisi ka
      Kotimaiset julkkisjuorut
      141
      575
    16. Mitä muuta on olemassa kuin lisääntyminen

      Jos mies ei pääse lisääntymään niin mikä hänen osansa elämässä on? mitä jää jäljelle? Hän on vain muiden palvelija kok
      Sinkut
      128
      573
    17. Voisiko vielä välillemme jotain kehittyä

      Vai heihei ja ei nähdä enää.
      Ikävä
      35
      570
    18. Ähtäri on taas TV: n ja radion ykkösuutinen

      Uusi podcast on julkaistu ja on nyt kuunneltavissa. Mot on tehnyt hyvää työtä! Mikko Savola ja kepu ei ota mitään vast
      Ähtäri
      47
      568
    19. Tilanteenne

      Onko tilanteenne tällä hetkellä hyvä?
      Ikävä
      48
      527
    20. Pahkalassa tapahtuu

      Mitäs on tapahtunut yöllä pahkalan kerrostaloilla.oli poliisia ja ambulanssia taas vaihteeksi
      Parkano
      9
      523
    Aihe