Petit programme de compta en C - je ne trouve pas mon erreur dans le code source
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Petit programme de compta en C - je ne trouve pas mon erreur dans le code source



  1. #1
    Hijo-Nik

    Petit programme de compta en C - je ne trouve pas mon erreur dans le code source


    ------

    Windows 7 - Code::Blocks - GNU compiler

    Bonjour tout le monde !

    Aujourd'hui je me suis atteler a rédigé un petit programme de comptabilité qui résoudrait quelques équations demandée dans le cadre de mon cours de compta pour l'examen final qui cloture mon patronat, ici en janvier.

    Ci-dessous la première version du programme sans interactions avec l'utilisateur. Il faut donc changer les données dans le code source.

    Cette version fonctionne bien et les réponses aux équations sont exactes :

     Cliquez pour afficher


    Ensuite j'aurais souhaité pouvoir entrer les données, lors de l’exécution du programme, avec la fonction scanf mais ici je me heurte à un problème qui n'est pas détecté dans le build log de Code::Blocks et personnellement je ne comprends pas mon erreur.
    Voici donc ci-dessous le code amélioré afin d'interagir avec l’utilisateur :

     Cliquez pour afficher


    Nom : logiciel compta probleme.png
Affichages : 95
Taille : 44,2 Ko


    L'image ci-dessus dévoile l’exécution du programme, on distingue la valeur 756 en ligne 2, valeur que j'ai entouré d'un cercle rouge.

    Je ne vois vraiment pas pourquoi il me demande d'entrer une valeur à ce moment là pour passer au printf suivant.. Qui plus est j'ai remarqué a mesure de chercher que cette valeur était prise en compte dans les équations suivante et correspondait en fait à la valeur de la trésorerie stockée dans la variable valeursDispo.

    les trois premières réponses (Actif, Actif immobilisé et Actif circulant) qui étaient faussent également lorsque j'entrais 0 en ligne 2 sont désormais correcte lorsque j'entre la valeur 756 qui correspond à la trésorerie.


    Merci pour l'attention portée à ce sujet,

    Bonne soirée & joyeuses fêtes !

    -----

  2. #2
    JeSuisConscient

    Re : Petit programme de compta en C - je ne trouve pas mon erreur dans le code source

    un conseil enleve tes /n dans tes scanf

    printf("Total des immobilisations corporelles = ");
    scanf("%d", &immoCorpo);
    printf("Stocks = ");
    scanf("%d", &stocks);
    printf("Total creances commerciales = ");
    scanf("%d", &creancesCommer);
    printf("Tresorerie = ");
    scanf("%d", &valeursDispo);
    printf("Capital = ");
    scanf("%d", &capital);
    printf("reserve = ");
    scanf("%d", &reserve);
    printf("Dettes a long terme = ");
    scanf("%d", &detteLongTerme);
    printf("Dettes a court terme = ");
    scanf("%d", &detteCourtTerme);

  3. #3
    JeSuisConscient

    Re : Petit programme de compta en C - je ne trouve pas mon erreur dans le code source

    j'ai ajouté qq printf

    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
    int ACTIF=0, PASSIF=0, fondDeRoulement=0, besoinFondDeRoulement=0, solvabilite=0, liquidite=0;
    int capitauxPermanents=0, immobilises=0, besoinDexploitation=0, ressourcesDexploitation=0, capitauxPropres=0, actifsCirculants=0;
    // int terrainConstruction , instMachOutil , mobMatRoulant; // useless si immoCorpo connu.

    int immoCorpo = 0, stocks = 0, creancesCommer = 0, valeursDispo = 0, detteCourtTerme=0, detteLongTerme=0, capital = 0, reserve = 0; // varriable utilisateur servant à la résolution des équations

    printf("Total des immobilisations corporelles = ");
    scanf("%d", &immoCorpo);
    printf("Stocks = ");
    scanf("%d", &stocks);
    printf("Total creances commerciales = ");
    scanf("%d", &creancesCommer);
    printf("Tresorerie = ");
    scanf("%d", &valeursDispo);
    printf("Capital = ");
    scanf("%d", &capital);
    printf("reserve = ");
    scanf("%d", &reserve);
    printf("Dettes a long terme = ");
    scanf("%d", &detteLongTerme);
    printf("Dettes a court terme = ");
    scanf("%d", &detteCourtTerme);



    printf("\nTotal des immobilisations corporelles = ");
    printf("%d", immoCorpo);
    printf("\nStocks = ");
    printf("%d", stocks);
    printf("\nTotal creances commerciales = ");
    printf("%d", creancesCommer);
    printf("\nTresorerie = ");
    printf("%d", valeursDispo);
    printf("\nCapital = ");
    printf("%d", capital);
    printf("\nreserve = ");
    printf("%d", reserve);
    printf("\nDettes a long terme = ");
    printf("%d", detteLongTerme);
    printf("\nDettes a court terme = ");
    printf("%d", detteCourtTerme);


    // immobilises = terrainConstruction + instMachOutil + mobMatRoulant;
    ACTIF = immoCorpo + stocks + creancesCommer + valeursDispo;
    capitauxPropres = capital + reserve;
    capitauxPermanents = capitauxPropres + detteLongTerme;

    immobilises = immoCorpo;

    PASSIF = detteCourtTerme + detteLongTerme + capital + reserve;
    fondDeRoulement = capitauxPermanents - immobilises;
    besoinFondDeRoulement = besoinDexploitation - ressourcesDexploitation;
    solvabilite = (capitauxPropres*100)/PASSIF;
    liquidite = actifsCirculants / detteCourtTerme;
    actifsCirculants = stocks + creancesCommer + valeursDispo;
    besoinDexploitation = stocks + creancesCommer;
    ressourcesDexploitation = detteCourtTerme;
    besoinFondDeRoulement = besoinDexploitation - ressourcesDexploitation;
    solvabilite = (capitauxPropres*100)/ PASSIF;
    liquidite = actifsCirculants / detteCourtTerme;





    printf("\n\n\nL'actif = %d\n", ACTIF);

    printf("Actif immobilise = %d\n", immoCorpo); // La variable immoCorpo (Actifs Immobilisés) est prise en compte et fonctionne bien

    printf("Actifs circulants = %d\n", actifsCirculants);

    printf("Capitaux permanents = %d\n", capitauxPermanents); // ERREUR : la réponse devrait être 1699 au lieu de 1910

    printf("Dettes a court terme = %d\n", detteCourtTerme); // ERREUR : detteCourtTerme renvoie la valeur de detteLongTerme (545 au lieu de 2257)

    printf("Capitaux Propres = %d\n", capitauxPropres); // ERREUR : capitauxPropres renvoie la valeur de 1910 au lieu de 1154 (capital+réserve)

    printf("besoin d'exploitation = %d\n", besoinDexploitation); // ERREUR : besoinDexploitation renvoie la valeur de 1453 au lieu de 1264 (stocks + creancesCommer)

    printf("Ressources d'exploitation = %d\n", ressourcesDexploitation); // ERREUR : ressourcesDexploitation renvoie la valeur 545 (detteLongTerme) au lieu de 2257 (detteCourtTerme)


    printf("\n\nFond de roulement = %d\n", fondDeRoulement);
    printf("L'entreprise dispose de %d pour financer son entreprise\n\n", fondDeRoulement);


    printf("Besoin en fond de roulement = %d\n", besoinFondDeRoulement);
    printf("L'enreprise a besoin de %d pour financer son entreprise\n\n", besoinFondDeRoulement);



    printf("Solvabilite = %d\n", solvabilite);
    if (solvabilite >=40 )
    {
    printf("L'entreprise a une solvabilite superieur a 40%% (%d) - Elle est saine et \npourra obtenir des credits\n\n", solvabilite);
    }
    else if (solvabilite < 40 )
    {
    printf("L'entreprise a une solvabilite inferieur a 40%% (%d) - Elle n'est pas saine\net aura des difficultes a obtenir des credits\n\n", solvabilite);
    }



    printf("Liquidite = %d\n", liquidite);
    if (liquidite > 1)
    {
    printf("Liquidite superieur a 1 - l'entreprise possede de l'argent en tresorerie\n");
    }
    else if (liquidite < 1)
    {
    printf("Liquidite inferieure a 1 - l'entreprise de ne dispose pas d'argent en tresorerieet devra recourrir a une solution pour en avoir\n ");

    }





    return 0;
    }

    Total des immobilisations corporelles = 54
    Stocks = 78
    Total creances commerciales = 4545
    Tresorerie = 45
    Capital = 88
    reserve = 88
    Dettes a long terme = 545
    Dettes a court terme = 447

    Total des immobilisations corporelles = 54
    Stocks = 78
    Total creances commerciales = 4545
    Tresorerie = 45
    Capital = 88
    reserve = 88
    Dettes a long terme = 545
    Dettes a court terme = 447


    L'actif = 4722
    Actif immobilise = 54
    Actifs circulants = 4668
    Capitaux permanents = 721
    Dettes a court terme = 447
    Capitaux Propres = 176
    besoin d'exploitation = 4623
    Ressources d'exploitation = 447


    Fond de roulement = 667
    L'entreprise dispose de 667 pour financer son entreprise

    Besoin en fond de roulement = 4176
    L'enreprise a besoin de 4176 pour financer son entreprise

    Solvabilite = 15
    L'entreprise a une solvabilite inferieur a 40% (15) - Elle n'est pas saine
    et aura des difficultes a obtenir des credits

    Liquidite = 10
    Liquidite superieur a 1 - l'entreprise possede de l'argent en tresorerie

  4. #4
    fred1599

    Re : Petit programme de compta en C - je ne trouve pas mon erreur dans le code source

    Sinon c'est assez répétitif comme code, on peut faire quelque chose du genre boucle, pour éviter cela... Quelque chose comme

    Code:
    int main(void)
    {
        int i;
        int values[100];
    
        const char informations[][100] = {
        			                    "Stocks",
        			                    "Trésorerie",
        			                    "Capital"
        };
    
        for (i=0; i<3; i++){
        	printf("%s = ", informations[i]);
        	scanf("%d", &values[i]);
        	while (getchar() != '\n');
        }
    
        for (i=0; i<3; i++){
        	printf("%s -> %d\n", informations[i], values[i]);
        }
    
        return 0;
    }
    Dernière modification par fred1599 ; 26/12/2014 à 18h29.

  5. A voir en vidéo sur Futura
  6. #5
    Hijo-Nik

    Re : Petit programme de compta en C - je ne trouve pas mon erreur dans le code source

    Super !

    Merci JeSuisConscient, c'était les \n qui faisaient tout foirer, j'aurais du y penser ! Merci beaucoup pour ton aide.

    fred1599 merci pour ce conseil va falloir que je bosse les boucles un peu plus parce que j'aurais été incapable de sortir ce code moi même.


    Merci à vous deux,

    Bye.

  7. #6
    fred1599

    Re : Petit programme de compta en C - je ne trouve pas mon erreur dans le code source

    La programmation c'est un travail de fainéant, il faut continuellement se poser la question suivante: "Comment éviter de me taper tout ce code en brut, car c'est long et chiant ?"

  8. #7
    Jack
    Modérateur

    Re : Petit programme de compta en C - je ne trouve pas mon erreur dans le code source

    Citation Envoyé par fred1599 Voir le message
    La programmation c'est un travail de fainéant, il faut continuellement se poser la question suivante: "Comment éviter de me taper tout ce code en brut, car c'est long et chiant ?"
    La preuve

  9. #8
    fred1599

    Re : Petit programme de compta en C - je ne trouve pas mon erreur dans le code source

    Elle est pas mal celle-là

  10. #9
    polo974

    Re : Petit programme de compta en C - je ne trouve pas mon erreur dans le code source

    Presque trop fort...
    Mais il aurait pu se débrouiller autrement qu'ouvrir sa machine directement sur l'extérieur et donner ses clés aux chinois...
    Pas très doué en connexions réseau...
    Jusqu'ici tout va bien...

Discussions similaires

  1. code erreur programme msi
    Par novice777 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 14/08/2013, 21h25
  2. petit programme de base pour commander un servomoteur..ou est l'erreur !?
    Par invitee3b1bf3c dans le forum Électronique
    Réponses: 2
    Dernier message: 06/05/2008, 22h34
  3. Je ne trouve pas l'erreur dans mes calculs
    Par invite0b53a3e0 dans le forum Chimie
    Réponses: 8
    Dernier message: 30/12/2007, 13h13
  4. Code source du programme
    Par invite6ecbdd6e dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 10/04/2003, 20h20