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

688

    Vastaukset

    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. Lääppijä Lindtman jäi kiinni itse teosta

      Lindtman kyselemättä ja epäasiallisesti koskettelee viestintäpäällikköä. https://www.is.fi/politiikka/art-2000011780852
      Maailman menoa
      262
      4545
    2. Huomaatteko Demari Tytti ei esitä pahoitteluitaan

      Samanlainen ilmeisesti kuin Marin eli Uhriutuu no he ovat Demareita ja muiden yläpuolella siis omasta mielestään
      Maailman menoa
      92
      3423
    3. Vedonlyöntiä .

      Olen valmis lyömään ison vedon , että homma kaatuu . Jos kerta Sivonen ei lähde mukaan , niin ei tuoho usko kukaan muuka
      Ähtäri
      24
      2616
    4. Turvaan tulleet lähettävät omia lapsiaan vaaraan - hullua

      MOT-ohjelman jakso ”Loma vaihtui kahleisiin” kertoi, kuinka Suomessa ja muualla Euroopassa asuvat somaliperheet lähettäv
      Maailman menoa
      58
      2295
    5. Mikä on pahinta, mitä kaivatullesi

      pelkäät tapahtuvan? Jos kuolemaa, vakavia sairauksia yms. ei lasketa?
      Ikävä
      96
      2179
    6. TUNNISTELAATIKKO

      Tähän ketjuun voi laittaa yhdellä tai kahdella lauseella (tai vaikka yhdellä sanalla) täydellisen tunnisteen, jonka vain
      Ikävä
      89
      1465
    7. Tykkäätkö enemmän tavis- vai julkkiskisaajista tv:ssä?

      Tykkäätkö enemmän tavis- vai julkkiskisaajista tv:ssä? Moni reality ja visailuohjelma luottaa julkkiksiin, mutta sentään
      Tv-sarjat
      28
      1309
    8. Minkä tunteen tunnet

      juuri nyt? ap kiitollisuuden.
      Tunteet
      41
      1306
    9. Zoo jatkaa - jatkuuko mustamaalaus?

      Tänään on päätetty Zoon avaamisesta uudelleen. Mielenkiintoista nähdä kautokurujen reaktio, nyt kun kyse ei ole kunnalli
      Ähtäri
      70
      1239
    10. Valehdella saa, totuus salataan

      Vaikuttaa vähän siltä, että sensuuria toteutetaan juorupalstallakin. Asioita saa kaunistella ja vääristellä, mutta totuu
      Savonlinna
      10
      808
    Aihe