Kuukausierän laskemisen kaava?

korotusongelma

Olen kirjoittamassa ohjelmaa, jolla voisi laskea kuukausittaista lainaerää. Erän kaava on matemaattisesti seuraava:

maksu = iP / 1 - ( 1 i)^-n

Missä kaavassa siis:

P = lainattu rahamäärä
i = kuukausittainen korkoprosentti
n = maksuerien lukumäärä

Ongelmana on tuon muuttaminen C-kielelle. Se ilmeisesti vaatii pow-kirjastofunktion (math.h-tiedostosta) käyttöä. Käsittääkseni perussyntaksi on:

pow(x,y)

Missä siis lasketaan x potenssiin y. Miten sitä pitäisi soveltaa ylläolevaan kaavaan? Mitä tulee x:n ja mitä y:n paikalle?

10

1136

    Vastaukset 10

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • sudhfsiduhf

      miten olis pow((1 i),-n);

      • korotusongelma

        Niinpäs taitaakin olla. Kiitokset avusta! :) Ei ole juuri nyt kääntäjää saatavilla koneella ja menen välillä kaavoissa sekaisin...


    • Anonyymi

      #include <math.h>
      #include <stdio.h>

      float laskeKuukausierä(float P, float i, int n){
      float maksu = 0;
      float korotettu = pow((1 + i), -n);

      maksu = i * P / (1 - korotettu);

      return maksu;
      }

      int main(){
      float lainattuSumma = 10000.0;
      float korkoprosentti = 0.01;
      int erienLkm = 12;

      float kuukausierä = laskeKuukausierä(lainattuSumma, korkoprosentti, erienLkm);
      printf("Kuukausierä: %.2f
      ", kuukausierä);

      return 0;
      }

      • Anonyymi

        Matemaattiset funktiot ottavat ja palauttavat liukuluvut double-tyyppisinä, joten koodissa float:in sijaan olisi järkevää käyttää double-tyyppiä. Tai vaihtoehtoisesti pow() funktio tulisi korvata powf() funktiolla, joka on lisätty standardiin C99:n myötä.

        Myös printf() funktio olettaa argumentin "%f"-kentälle olevan double-muodossa. Float-tyyppinen argumentti korotetaan automaattisesti double-tyyppiseksi, mistä syntyy ylimääräistä koodia aivan tarpeettomasti.

        Float-tyyppi oli käyttökelpoinen joskus kauan sitten, kun liukuluvuilla laskettiin ilman matematiikkaprosessorin tukea ja kun muistia oli kaikkiaan käytettävissä sellaiset 640 kilotavua. Nykyään float-tyypille on hyvin vähän jos lainkaan tarvetta, double on luontevampi em. syistä.


      • Anonyymi
        Anonyymi kirjoitti:

        Matemaattiset funktiot ottavat ja palauttavat liukuluvut double-tyyppisinä, joten koodissa float:in sijaan olisi järkevää käyttää double-tyyppiä. Tai vaihtoehtoisesti pow() funktio tulisi korvata powf() funktiolla, joka on lisätty standardiin C99:n myötä.

        Myös printf() funktio olettaa argumentin "%f"-kentälle olevan double-muodossa. Float-tyyppinen argumentti korotetaan automaattisesti double-tyyppiseksi, mistä syntyy ylimääräistä koodia aivan tarpeettomasti.

        Float-tyyppi oli käyttökelpoinen joskus kauan sitten, kun liukuluvuilla laskettiin ilman matematiikkaprosessorin tukea ja kun muistia oli kaikkiaan käytettävissä sellaiset 640 kilotavua. Nykyään float-tyypille on hyvin vähän jos lainkaan tarvetta, double on luontevampi em. syistä.

        Kehotankin siis käyttämään double-tyyppiä float-tyypin sijaan matemaattisissa funktioissa ja printf() funktiossa, jotta vältetään ylimääräisen koodin syntymistä ja varmistetaan tarkempi laskenta. Lisäksi pow() funktio kannattaa vaihtaa powf() funktioon, jos halutaan nimenomaan float-tyyppistä tulosta. Tämä lisää koodin luettavuutta ja ylläpidettävyyttä.


    • Anonyymi

      Yritin kerran myös kunnekas huomasinkin päässeeni ulosotolle. En tarjoudu toiste.

    • Anonyymi

      Kuukausierä: 888.49

    • Anonyymi

      Muuten ihan hyvä, mutta kaava on päin honkia.

      • Anonyymi

    • Anonyymi

      maksu = iP / 1 - ( 1 i)^-n
      = iP - i^(-n)
      = iP - (-i)^n
      = i*P - ( (n%4==0) ? ( 1 : n%4==1 ? ( -i : ( n%4==2 ? -1 : i)) ) ) )

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

    Luetuimmat keskustelut

    1. Mikä sun salaisuus on,kun näytät niin nuorelta..

      Vaikka oot jo noin vanha!?
      Ikävä
      109
      1330
    2. MiltäKaivattusi

      Näyttää? !
      Ikävä
      45
      911
    3. Myönnetään, tunnen lämpimiä tunteita kohtaasi

      Vaikutat tosin liian hyvältä ollaksesi totta. Komeita miehiä on maailma pullollaan mutta sinussa on jotain.....
      Ikävä
      50
      736
    4. Perhoseni (miehelle)

      Miksi et usko, että mun rakkaus sinuun on aitoa ja vilpitöntä? Tai että se oli jo silloin? Miksi ajattelet, ettet ole r
      Ikävä
      129
      684
    5. Mitä meidän välillämme

      On käynyt näiden vuosien aikana?
      Ikävä
      70
      666
    6. Uskaltaisitko

      Tavata kaivattusi tässä tilanteessa?
      Ikävä
      67
      616
    7. Olen tavattavissa

      tänään klo 17-02 siinä ravintolassa. Tulethan sinäkin?
      Ikävä
      53
      597
    8. Halaus juuri sinulle

      Kaikki järjestyy kyllä. Luota vain. ❤️🫶
      Ikävä
      55
      555
    9. Onko Sofia jälleen jätetty?

      Moni asia viittaisi siihen, että hän on jälleen sinkku.
      Kotimaiset julkkisjuorut
      93
      473
    10. Mies, näetkö minut myös

      Seksuaalisena ihmisenä ja naisena? Haluatko minua seksuaalisesti? Vai olenko mielestäsi tyttönen?
      Ikävä
      20
      470
    11. Voiko se ikinä toimia

      Voiko meistä ikinä tulla mitään? Näin kauan aikaa on kulunut ja mitään ei tapahdu... En usko, että sinä mietit minua het
      Ikävä
      32
      458
    12. Meneekö unohtamis

      Projektisi hyvin??
      Ikävä
      34
      457
    13. Mitä jos...

      Susta tykätään poikana enemmän, kun tyttönä? Miten asian käsittelet tai otat tiedon vastaan? T nainen gubetellija herät
      Sinkut
      142
      453
    14. Nainen, mitä mieltä olet kodittomista?

      Ja heistä jotka eivät kykene huolehtimaan asioistaan, itsestään eikä terveydestään? Miten heidän kanssaan tulisi toimia?
      Ikävä
      115
      453
    15. Kuka se on

      Kuhmon komein aikamies?
      Kuhmo
      5
      448
    16. Uskallatko paljastaa

      Millä nimellä löydyn puhelimestasi?
      Ikävä
      49
      447
    17. Voin tulla

      Sisustamaan sulle 🤭
      Ikävä
      51
      445
    18. Rekat seisovat dieselin hinnan takia . Ala ei kestä tällaista hintatasoa, sanoo yrittäjä .

      EU:n kallein diesel on kova paikka kuljetusalalle. Ajoja on jätetty ajamatta kannattavuus­ongelmien vuoksi, sanoo alan e
      Kajaani
      85
      441
    19. Et sinä mitään

      Oikeasti halua
      Ikävä
      52
      403
    20. Miksi jätit vastaamatta mies

      Silloin kauan sitten 😔
      Ikävä
      42
      400
    Aihe