Yasmtidk / practice

practice INF155
0 stars 0 forks source link

Exercice #7 #44

Open Yasmtidk opened 5 months ago

Yasmtidk commented 5 months ago

Image

Image

Yasmtidk commented 5 months ago

// / D�FINITION DU SOUS-PROGRAMME PRINCIPALE / // /* Date : 23/01/24 Par : Yasmine Beddouch

Description : Copier les trois exercices précédents dans un nouveau fichier,
car nous y effectuerons des modifications.

Modifier la fonction solde_apres_paiement pour qu'elle inscrive,
dans trois références, le paiement effectué, les intérêts payés et le remboursement
en capital effectué chaque mois, en plus de retourner le nouveau solde hypothécaire.
Note : cette fonction a maintenant 5 paramètres
(solde, taux_interet, paiement, interet, remboursement).

Modifier la procédure relever_compte pour qu'elle s'adapte à la nouvelle signature de la
fonction solde_apres_paiement. Les paiements et les remboursements effectués chaque mois
doivent être ajoutés à l'affichage.

*/ /***/

include

include

include

// / D�FINITION DES TYPES ET CONSTANTES / //

define TEST 0

define APPLICATION 1

// / D�CLARATION DES SOUS-PROGRAMMES PRIV�ES / //

// Déclaration de fonction solde_apres_paiement void relever_compte(double montant_solde_hypothecaire, double montant_paiement_mensuel, double taux_interet_annuel);

// Déclaration de fonction solde_apres_paiement double solde_apres_paiement(double solde, double taux_annuel, double paiement, double interet, double* remboursement);

// / D�FINITION DU SOUS-PROGRAMME PRINCIPALE / //

if(APPLICATION)

int main() { double montant_solde_hypothecaire; // Le montant d'un solde hypothécaire saisit par l'utilisateur double montant_paiement_mensuel; // Le montant du paiement mensue saisit par l'utilisateur double taux_interet_annuel; // Le taux d'intérêt annuel sur l'hypothèque saisit par l'utilisateur double interet; // Le taux d'intérêt mensuel sur l'hypothèque double remboursement; // Le montant du remboursement effectuer mensuellement

// Demande a l'utilisateur de saisir le montant d'un solde hypothécaire saisit par l'utilisateur
printf("Quel est le montant de l'hypotheque : ");
scanf("%lf", &montant_solde_hypothecaire);

// Demande a l'utilisateur de saisir le montant du paiement mensuel saisit par l'utilisateur
printf("Quel est le montant du paiement mensuel : ");
scanf("%lf", &montant_paiement_mensuel);

// Demande a l'utilisateur de saisir le taux d'intérêt annuel sur l'hypothèque saisit par l'utilisateur
printf("Quel est le montant du taux d'interet annuel : ");
scanf("%lf", &taux_interet_annuel);

// Appelle de la fonction relever_compte :
relever_compte(montant_solde_hypothecaire, montant_paiement_mensuel, taux_interet_annuel);

return EXIT_SUCCESS;

}

endif

// / D�CLARATION DES SOUS-PROGRAMMES PRIV�ES / //

// Définition de fonction relever_compte : void relever_compte(double montant_solde_hypothecaire, double montant_paiement_mensuel, double taux_interet_annuel) { double interet; // Les interet calculer (solde * taux mensuel interet) double remboursement; // Le remboursement payer par l'utilisateur int No_Mois = 0; // Le nombre de mois depuis le premier paiement

//Affichage de la nouvelle signature
printf("Solde initiale : %.2f$ @ %.2f%", montant_solde_hypothecaire, taux_interet_annuel);
printf("\n----------------------------------------------\n");
printf("No Mois  | Paiement    |  Interet   | Remboursement|  Solde \n");

while(montant_solde_hypothecaire > 0)
{
    //Compteur de boucle et nombre de mois depuis le premier paiement
    No_Mois++;

    // Calculer le montant solde hypothecaire apres le paiement
    montant_solde_hypothecaire = solde_apres_paiement(montant_solde_hypothecaire, taux_interet_annuel,
                                                      &montant_paiement_mensuel, &interet, &remboursement);

    //On affiche l'information.
    printf("     %d   |   %.2lf   |   %.2lf   |   %.2lf    |   %.2lf   \n", No_Mois, montant_paiement_mensuel,
           interet, remboursement, montant_solde_hypothecaire);
}

}

// Définition de fonction solde_apres_paiement : double solde_apres_paiement(double solde, double taux_annuel, double paiement, double interet, double* remboursement) { double taux_interet_mensuel; // Le taux d'intérêt mensuel sur l'hypothèque

//Calculer le taux d'interet mensuel
taux_interet_mensuel = taux_annuel / 12;

//On calucle les intérêt
*interet = solde * taux_interet_mensuel;

//Calculer le montant du paiement mensuel sans les interet mensuel

//On applique le remboursement s'il reste plus d'un paiement
if(solde + *interet > *paiement)
{
    *remboursement = *paiement - *interet;

}

else
{
    *paiement = solde + *interet;
    *remboursement = solde;
}

// Calculer le montant solde hypothecaire apres le paiement;
solde = solde - *remboursement;

return solde;

}