IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Calcul de la somme des intérêts


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Calcul de la somme des intérêts
    Je dispose d'un compte en banque et je veux calculer la somme totale des intérêts concernant l'argent déposé à la banque sachant que :

    -je dépose des sommes mensuelles à taux d'intérêt de 6%
    -la première année je dépose chaque mois 1000 euros
    -la deuxième année je dépose chaque mois 1500 euros
    -la troisième année je dépose chaque mois 3000 euros

    Le programme que j'ai fait est le suivant en C:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include<stdio.h>
    int main (){
    int i,m=1000;
    double n=0.0;
    	for(i=1;i<=12;i++){
     		n=0.06*m+n;//n représente les intérêts
    		m=1000+m+n;
    		}
     
    	for(i=1;i<=12;i++){
    		m=1500+m+n;
    		n=0.06*m+n;
     
    	}
     
    	for(i=1;i<=12;i++){
    		m=3000+n+m;
    		n=0.06*m+n;
     
    	}
    		printf("Les interets accumules sont %f",n);
    return(0);		
    }
    Ce programme me donne comme résultat 4268748 ce qui est clairement incohérent !

    Je vous serai vraiment reconnaissante si vous pouviez m'aider. Merci d'avance.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Bonjour,

    Les « n » suivants sont en trop, je crois :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    for(i=1;i<=12;i++){
     		n=0.06*m+n;//n représente les intérêts
    		m=1000+m+n;
    		}
    
    	for(i=1;i<=12;i++){
    		m=1500+m+n;
    		n=0.06*m+n;
    		
    	}
    	
    	for(i=1;i<=12;i++){
    		m=3000+n+m;
    		n=0.06*m+n;
    	
    	}

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Je crois plutôt qu'il a un très bon placement qui rapporte 6% par mois (ce qui doit faire plus de 100% par an comme intérêt)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	for(i=1;i<=12;i++){
     		n=0.06*m+n;//n représente les intérêts
    		m=1000+m+n;
    		}....
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  4. #4
    Candidat au Club
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut erreur evidente quelque part
    Oui d'accord, mais le résultat que j'ai obtenu de l'ordre de 4 millions est clairement incohérent c'est impossible, il doit y avoir une erreur quelque part
    Merci d'avance!!!!

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Citation Envoyé par diogene Voir le message
    Je crois plutôt qu'il a un très bon placement qui rapporte 6% par mois (ce qui doit faire plus de 100% par an comme intérêt)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	for(i=1;i<=12;i++){
     		n=0.06*m+n;//n représente les intérêts
    		m=1000+m+n;
    		}....
    Oui, mais dans sa première ligne, il ajoute n à n pour calculer ses intérêts, eux-mêmes additionnés à son capital m à la ligne suivante.

    Ce n'est même plus du 6% par mois, mais du 106% ! À ce taux, je signe tout de suite ! :-)

  6. #6
    Candidat au Club
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut QUELLE EST LA CORRECTION?
    et a ton avis qu'est ce que jaurai du ecrire?

  7. #7
    Candidat au Club
    Inscrit en
    Août 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut mauvaise interprétaion de mn code
    Citation Envoyé par Obsidian Voir le message
    Oui, mais dans sa première ligne, il ajoute n à n pour calculer ses intérêts, eux-mêmes additionnés à son capital m à la ligne suivante.

    Ce n'est même plus du 6% par mois, mais du 106% ! À ce taux, je signe tout de suite ! :-)
    je n'ajoute pas n à m , je multipllie d'abord m par 0.06 et ensuite je le rajoute à n ce qui contredit ce que tu mas dit

  8. #8
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    - L'erreur est sur le calcul du nouveau capital :
    - m doit aussi être en double

    - Je crois qu'il y a des erreurs sur les bornes : pour un intérêt de 0% on doit avoir un capital de 12*(1000+1500+3000) = 66000 alors que le programme donne 67000.

    - Si k est l'intérêt mensuel et V le versement mensuel :
    Au début du mois 1, on verse V qui à la fin du mois 1 nous donnera comme capital V*(1+k),
    à la fin du mois 2 V*(1+k)^^2... à la fin du 12ieme mois V*(1+k)^^12
    De même le versement de V au début du deuxième mois donnera en fin d'année V*(1+k)^^11
    ...
    et le versement au début du 12ieme mois donnera en fin d'année V(1+k)
    Au total, on a en fin d'année V*( (1+k)+(1+k)^^2 +... (1+k)^^12) = V*(((1+k)^^13-1)/k -1)
    ce qui nous donne pour k = 0.06 la somme de 17.8821*V (donc un intérêt total de 5.8821*V)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    double TauxMensuel = 0.06;
    double Capital = 0;
    double TotalInteret = 0.00;
    double Versement = 1000.0;
    double Interet;
    int i ;
    for(i=1;i<=12;i++)
    {
        Capital += Versement ;
        printf("capital au debut du mois %d %f\n",i,Capital);
        Interet = TauxMensuel*Capital;
        TotalInteret += Interet;
        Capital += Interet;
        printf("capital a la fin du mois %d %f\n\n",i,Capital);
    }
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  9. #9
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 620
    Points
    23 620
    Par défaut
    Essaie déjà de retirer de ton code toutes les parties que j'ai marquées en rouge et regarde si tu obtiens un résultat plus cohérent. ATTENTION : dans la première boucle, tu calcules n avant m. C'est le contraire dans les deux autres.

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/07/2013, 17h46
  2. Calcul de la somme des valeurs d un champ
    Par JeanduB dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 01/04/2008, 09h20
  3. calcul du somme des valeurs ds un fichier
    Par meera dans le forum Visual C++
    Réponses: 5
    Dernier message: 19/11/2006, 12h22
  4. Réponses: 3
    Dernier message: 24/08/2006, 11h56
  5. [newbie]comment calculer la somme des nb pages sum()?
    Par megapacman dans le forum Débuter
    Réponses: 3
    Dernier message: 13/06/2006, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo