Avatar billede mini97ad Nybegynder
10. marts 2003 - 13:11 Der er 6 kommentarer og
1 løsning

Problemer med simpel rekursiv funktion

Hej jeg skal lave en rekursiv funktion, der beregner hvor meget et lån er efter en tidsrække og der er påløbet renter. Jeg kan ikke få skidtet til at virke. I bedste fald løber funktion kun igennem en gang (ikke meget rekursivt over det)

Det ser således ud pt:

function writeLoanAmount ($iLoan, $iYearLeft, $iInterest) {



if ($iYearLeft<1) {

return 0;

}

else {

    $Hovedstol = $Hovedstol + ($iLoan * (1+$iInterest));
    $iYearleft--;
    return writeLoanAmount ($Hovedstol, $iYearLeft, $iInterest);

}

}
echo writeLoanAmount ("1000", "10", "5");


Kan I gennemskue hvad der går galt. Mange tak for hjælpen

/Michael
Avatar billede erikjacobsen Ekspert
10. marts 2003 - 13:17 #1
echo writeLoanAmount (1000, 10, 5);
Avatar billede erikjacobsen Ekspert
10. marts 2003 - 13:24 #2
Og så lige resten:

function writeLoanAmount ($iLoan, $iYearLeft, $iInterest) {
  if ($iYearLeft<1) {
    return $iLoan;
  } else {
    return writeLoanAmount($iLoan*(1+$iInterest/100),$iYearLeft-1, $iInterest);
  }
}

print writeLoanAmount (1000, 10, 5);
Avatar billede mini97ad Nybegynder
10. marts 2003 - 13:28 #3
Alletiders tak for hjælpen. Laver du lige et svar, så du kan få point!
Avatar billede erikjacobsen Ekspert
10. marts 2003 - 13:37 #4
Ingen point til mig, tak.

Kan du se forskellene fra mit til dit script?
Avatar billede mini97ad Nybegynder
10. marts 2003 - 13:39 #5
ja du indbygger "beregningen i argumenterne der gives til funktionen. Ganske smart. Jeg forsøgte at adskille argumenter og beregninger fra hinanden. Jeg dog stadigvæk ikke helt se, hvad der gik galt i mit forsøg
Avatar billede erikjacobsen Ekspert
10. marts 2003 - 13:44 #6
Ok, lad os tage et par punkter:

$Hovedstol = $Hovedstol + ($iLoan * (1+$iInterest));

du har ikke en variabel, der hedder $Hovedstol. Så essentielt skriver du

$Hovedstol = $iLoan * (1+$iInterest);

I beregning regner du ikke med 5% med 500% - derfor:

$Hovedstol = $iLoan * (1+$iInterest/100);

Endelig returnerer du 0 til sidst i rekursionen, hvorved alt bliver 0.
Den går ikke...
Avatar billede mini97ad Nybegynder
10. marts 2003 - 13:49 #7
endnu engang mange tak for den gode hjælp! Det giver mening det du har skrevet!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester