Programmez pour gagner du temps

La programmation à la portée de tous

Accueil > Programmation > les langages Basic > Bacon Basic Converteur ou Bacon > Calcul du remboursement d’un emprunt

Calcul du remboursement d’un emprunt

mardi 5 juin 2018, par PtitJoz

Alors voila ça y est voici un petit programme opérationnel qui calcule le remboursement d’un emprunt.
Simple et efficace !

En regardant le code on voit comment créer :

  • la fenêtre principale WINDOW
  • des labels d’information LABEL
  • les zones de saisie ou d’affichage ENTRY
  • les boutons BUTTON
    Comment attacher les différents éléments ATTACH
    Comment donner des instructions quand on clique sur des Boutons CALLBACK qui appellent des routines SUB
    etc.
    Et voici le code :
    REM programmation du calcul de remboursement d'un emprunt

    '---------------------------------------------------------------------------------------------
    ' Include du fichier qui regroupe les fonctions graphiques
    INCLUDE "./Lib/hug.bac" : 'attention au chemin (path)!
    INIT

    DECLARE info$ TYPE STRING
    info$="Programme emprunt"
    info$=info$&"\nVersion : 18.05.3 du 09/06/2018  "
    info$=info$&"\nLicence GPL Libre de droit"
    info$=info$&"\nSite : http://ptitjoz.fr/spip.php?article6"
    info$=info$&"\nProgrammeur : Ptijoz "

    SUB Show_MsgBox
            SHOW(message)
    END SUB

    SUB Hide_MsgBox
            HIDE(message)
    END SUB

    SUB Calculer
            DECLARE m,t,c TYPE FLOATING
            DECLARE n TYPE NUMBER
            DECLARE resultat$ TYPE STRING
            c=VAL(GRAB$(Entry1))
            t=VAL(GRAB$(Entry2))
            n=VAL(GRAB$(Entry3))
            m= c * t / 1200 / ( 1 - POW ( (1+ t /1200),(0-n)))
            PRINT m FORMAT "%.2f" TO resultat$
            TEXT(Entry4,resultat$)
            PRINT  (m*n)-c FORMAT "%.2f" TO resultat$
            TEXT(Entry5,resultat$)
    END SUB

    ' Création de la fenêtre principale
    FenetrePrincipale = WINDOW( "Remboursement d'un emprunt", 400, 350 )
    'SETPROPERTY(FenetrePrincipale, "decorated",FALSE) : pour ne pas afficher la barre de titre

    message = MSGDIALOG(info$, 350, 150, 0, 2)
    CALLBACK(message, Hide_MsgBox)

    Label0 = MARK( "Programme de calcul de remboursement d'un emprunt.", 380, 30 )
    ATTACH( FenetrePrincipale, Label0, 20, 10 )
    FONT(Label0, "Bold Italic")

    Label1 = MARK( "Capital", 100, 30 )
    ATTACH( FenetrePrincipale, Label1, 50, 50 )
    SETPROPERTY(Label1, "xalign", 0.0f) : '0.0 pour aligner à gauche

    Entry1 = ENTRY("10000", 150, 30 )
    FONT(Entry1, "Monospace 12")
    SETPROPERTY(Entry1, "xalign", 1.0f) : '1.0f aligné à droite
    ATTACH( FenetrePrincipale, Entry1, 200, 50 )

    Label2 = MARK( "Taux ", 150, 30 )
    ATTACH( FenetrePrincipale, Label2, 50, 100 )
    SETPROPERTY(Label2, "xalign", 0.0f) : 'aligné à gauche

    Entry2 = ENTRY( "3",150, 30 )
    FONT(Entry2, "Monospace 12")
    ATTACH( FenetrePrincipale, Entry2, 200, 100 )
    SETPROPERTY(Entry2, "tooltip-text", "taux en % exemple 3,5") :' mettre un infobulle !
    SETPROPERTY(Entry2, "xalign", 1.0f) : '1.0 pour aligner à droite

    Label3 = MARK( "Durée ", 150, 30 )
    ATTACH( FenetrePrincipale, Label3, 50, 150 )
    SETPROPERTY(Label3, "xalign", 0.0f)

    Entry3 = ENTRY("180",150, 30 )
    SETPROPERTY(Entry3, "tooltip-text", "durée en mois") :' mettre un infobulle !
    FONT(Entry3, "Monospace 12")
    ATTACH( FenetrePrincipale, Entry3, 200, 150 )
    SETPROPERTY(Entry3, "xalign", 1.0f) : '1.0 pour aligner à droite

    Label4 = MARK( "Mensualité ", 150, 30 )
    ATTACH( FenetrePrincipale, Label4, 50, 200 )
    SETPROPERTY(Label4, "xalign", 0.0f)

    Entry4 = ENTRY(" ",150, 30 )
    FONT(Entry4, "Monospace bold 12")
    'DISABLE(Entry4) : ' pour empécher que l'utilsateur n'essaie pas de modifier
    ATTACH( FenetrePrincipale, Entry4, 200, 200 )
    SETPROPERTY(Entry4, "xalign", 1.0f)

    Label5 = MARK( "Coût Global ", 150, 30 )
    ATTACH( FenetrePrincipale, Label5, 50, 250 )
    SETPROPERTY(Label5, "xalign", 0.0f) : '1.0 pour aligner à droite

    Entry5 = ENTRY(" ",150, 30 )
    FONT(Entry5, "Monospace bold 12")
    'DISABLE(Entry5) : ' pour empécher que l'utilsateur n'essaie pas de modifier
    ATTACH( FenetrePrincipale, Entry5, 200, 250 )
    SETPROPERTY(Entry5, "xalign", 1.0f) : '1.0 pour aligner à droite

    'Création d'un bouton quitter et attachement dans la fenêtre pricipale
    Button1 = STOCK("gtk-quit", 80, 25)
    ATTACH( FenetrePrincipale, Button1, 270, 300 )
    CALLBACK(  Button1, QUIT)

    Button2 = BUTTON("Calculer", 80, 25)
    SETPROPERTY(Button2, "tooltip-text", "calculez votre mensualité") :' mettre un infobulle !
    ATTACH( FenetrePrincipale, Button2, 50, 300 )
    CALLBACK(Button2,Calculer)

    Button3 = BUTTON("à propos", 80, 25)
    ATTACH(FenetrePrincipale, Button3, 160, 300)
    CALLBACK(Button3, Show_MsgBox)

    'Afficher
    DISPLAY

    et le fichier zip correspondant : http://ptitjoz.fr/IMG/zip/emprunt_18_06-3-2.zip

Si vous avez des questions n’hésitez-pas !

Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.