Sofies lån og nedbetalingsprogram
Sofie har tatt opp et forbrukslån på 100 000 kroner. Rentefoten er 2 % per måned. Hun skal betale ned på lånet hver måned, og terminbeløpet skal være 6378 kroner.
Sofie vil ha en nedbetalingsplan for lånet og har laget programmet nedenfor.
# Definerer variabler
restlån = 100000
terminbeløp = 6378
rentefot = 2
# Overskrifter
print("Måned Terminbeløp Renter Avdrag Restlån")
for måned in range(1, 5):
renter = 0
avdrag = 0
restlån = 0
# Skriver ut i fem kolonner ved å bruke tabulatorer sep = "\t\t"
# Runder av beløpene til to desimaler ved å bruke round
print(måned,
round(terminbeløp, 2),
round(renter, 2),
round(avdrag, 2),
round(restlån, 2), sep = "\t\t")
Nedenfor ser du resultatet hun får når hun kjører programmet.
| Måned | Terminbeløp | Renter | Avdrag | Restlån |
|---|---|---|---|---|
| 1 | 6378 | 0 | 0 | 0 |
| 2 | 6378 | 0 | 0 | 0 |
| 3 | 6378 | 0 | 0 | 0 |
| 4 | 6378 | 0 | 0 | 0 |
Du skal hjelpe Sofie med å endre programmet. Sett inn formler i stedet for tallet null i linje 12, 13 og 14, og gjør endringer slik at hele den riktige nedbetalingsplanen skrives ut.
Hvor mange måneder vil det ta før lånet er betalt ned?
Fasit
Se løsningsforslag for rettet program.
måneder
LøsningsforslagKI-generert
Problemet med Sofies program er at linje 12, 13 og 14 setter renter, avdrag og restlån til 0 i stedet for å beregne dem. Vi må også endre løkken slik at den kjører til lånet er nedbetalt.
De tre linjene skal erstattes med:
- Linje 12:
renter = restlån * rentefot / 100 - Linje 13:
avdrag = terminbeløp - renter - Linje 14:
restlån = restlån - avdrag
I tillegg endrer vi løkken fra for måned in range(1, 5) til en while-løkke som kjører så lenge restlånet er positivt. Det rettede programmet blir:
# Definerer variabler
restlån = 100000
terminbeløp = 6378
rentefot = 2
# Overskrifter
print("Måned Terminbeløp Renter Avdrag Restlån")
måned = 0
while restlån > 0:
måned = måned + 1
renter = restlån * rentefot / 100
avdrag = terminbeløp - renter
restlån = restlån - avdrag
# Skriver ut i fem kolonner ved å bruke tabulatorer sep = "\t\t"
# Runder av beløpene til to desimaler ved å bruke round
print(måned,
round(terminbeløp, 2),
round(renter, 2),
round(avdrag, 2),
round(restlån, 2), sep = "\t\t")
Når vi kjører det rettede programmet, får vi denne nedbetalingsplanen:
| Måned | Terminbeløp | Renter | Avdrag | Restlån |
|---|---|---|---|---|
| 1 | 6 378,00 | 2 000,00 | 4 378,00 | 95 622,00 |
| 2 | 6 378,00 | 1 912,44 | 4 465,56 | 91 156,44 |
| 3 | 6 378,00 | 1 823,13 | 4 554,87 | 86 601,57 |
| 4 | 6 378,00 | 1 732,03 | 4 645,97 | 81 955,60 |
| 5 | 6 378,00 | 1 639,11 | 4 738,89 | 77 216,71 |
| 6 | 6 378,00 | 1 544,33 | 4 833,67 | 72 383,05 |
| 7 | 6 378,00 | 1 447,66 | 4 930,34 | 67 452,71 |
| 8 | 6 378,00 | 1 349,05 | 5 028,95 | 62 423,76 |
| 9 | 6 378,00 | 1 248,48 | 5 129,52 | 57 294,24 |
| 10 | 6 378,00 | 1 145,88 | 5 232,12 | 52 062,12 |
| 11 | 6 378,00 | 1 041,24 | 5 336,76 | 46 725,36 |
| 12 | 6 378,00 | 934,51 | 5 443,49 | 41 281,87 |
| 13 | 6 378,00 | 825,64 | 5 552,36 | 35 729,51 |
| 14 | 6 378,00 | 714,59 | 5 663,41 | 30 066,10 |
| 15 | 6 378,00 | 601,32 | 5 776,68 | 24 289,42 |
| 16 | 6 378,00 | 485,79 | 5 892,21 | 18 397,21 |
| 17 | 6 378,00 | 367,94 | 6 010,06 | 12 387,15 |
| 18 | 6 378,00 | 247,74 | 6 130,26 | 6 256,90 |
| 19 | 6 378,00 | 125,14 | 6 252,86 | 4,03 |
| 20 | 4,12 | 0,08 | 4,03 | 0,00 |
Det tar før lånet er betalt ned.