'Calcul d'un échéancier d'emprunt v1.1 (2012)
'Ecrit en basic sous FreeBASIC
'Par Benoît RIVIERE, https://www.auditsi.eu/?cat=1207

#include "string.bi"

'---Déclaration des variables
'------Paramètres emprunt
Dim capital As Double
Dim duree As Integer
Dim taux As Double
Dim mens As Double
'------Variables diverses
Dim i As Integer
'------Variables emprunt mensualité
Dim capitalrestant As Double
Dim interet As Double
Dim capitalremb as double
'------Variables emprunt année
Dim interetperiode As Double
Dim capitalperiode As Double

'---Saisie des paramètres de l'emprunt
Cls
Color 11
Print "Calcul d'un échéancier d'emprunt"
Print
Color 15
Print "Saisissez les paramètres de l'emprunt :"
Input "Capital emprunté : ",capital
Input "Durée de l'emprunt en années : ",duree
Input "Taux annuel : ",taux

'---Calcul et affichage de la mensualité
taux=taux/100
mens = (capital*taux/12) / (1-(1+taux/12)^-(duree*12))
Print "Mensualité : ";Format(mens,"0.00")
'---Calcul, affichage et enregistrement de l'échéancier
capitalrestant=capital
For i=1 To duree*12
    if (i+11) mod 12=0 then
        print "Capital restant - Intérêts - Capital remboursé - Capital restant"
    end if
    interet=capitalrestant*taux/12
    capitalremb=mens-interet
    'Affichage de la ligne en cours
    Print i ; " : ";Format(capitalrestant,"0.00");" - ";Format(interet,"0.00");" - ";Format(capitalremb,"0.00");" - ";Format(capitalrestant-capitalremb,"0.00")
    'MAJ du capital restant à rembourser en fin de période
    capitalrestant=capitalrestant-capitalremb
    'MAJ des totalisations annuelles
    interetperiode=interetperiode+interet
    capitalperiode=capitalperiode+capitalremb
    'Dernière de l'année : affichage des totaux
    If i Mod 12 = 0 Then
        Print "Total année ";i/12;String(60,"-")
        Print "Intérêts de la période : ",Format(interetperiode,"0.00")
        Print "Capital de la période : ",Format(capitalperiode,"0.00")
        Print String(75,"-")
        'RAZ des totalisations de l'année
        interetperiode=0
        capitalperiode=0
    End If
Next i

Sleep