Explications programme conversion langage c
Répondre à la discussion
Affichage des résultats 1 à 26 sur 26

Explications programme conversion langage c



  1. #1
    invitefa13e265

    Explications programme conversion langage c


    ------

    Bonjour à tous, je débute en c et j'aimerai savoir si vous pouvez me décrire ligne à ligne (en commentaire par exemple) ce que fait ce programme, ça serait genial. Merci

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    int dec;
    int i;
    char exa[50];
    while (1)
    {
    dec = 0;
    for (i = 0;i < 50;i++)
    {
    exa[i] = 0;
    }
    i = 0;
    scanf("%d", &dec);
    while ((dec / 16) != 0)
    {
    exa[i] = dec % 16;
    dec = dec / 16;
    i++;
    }
    exa[i] = dec;
    while (i >= 0)
    {
    if (exa[i] == 15)
    {
    printf("F");
    }
    else if (exa[i] == 14)
    {
    printf("E");
    }
    else if (exa[i] == 13)
    {
    printf("D");
    }
    else if (exa[i] == 12)
    {
    printf("C");
    }
    else if (exa[i] == 11)
    {
    printf("B");
    }
    else if (exa[i] == 10)
    {
    printf("A");
    }
    else
    {
    printf("%d", exa[i]);
    }
    i--;
    }
    printf("\n");
    }
    return 0;
    }

    -----

  2. #2
    invite897e49b2

    Re : Explications programme conversion langage c

    oh le copier coller d'un copain et ensuite il veut qu'on lui donne les arguments au cas où le prof veut lui poser des questions ...

  3. #3
    invitefa13e265

    Re : Explications programme conversion langage c

    Je ne pense pas etre dans la meme filiere que "Alex31750"! quelqu'un pour m'expliquer gentillement ??

  4. #4
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    Citation Envoyé par AlexandreAguilar Voir le message
    Bonjour à tous, je débute en c et j'aimerai savoir si vous pouvez me décrire ligne à ligne (en commentaire par exemple) ce que fait ce programme, ça serait genial. Merci
    Beurk! Le code n'est pas indenté.
    Sinon, tu te procures un IDE quelconque: Code::Blocks, Visual Studio, QT creator, etc et tu exécutes le programme en pas à pas grâce au débogueur intégré. C'est très formateur et tu auras ta réponse.

    Tu as quel niveau en C?
    Dernière modification par Jack ; 30/12/2014 à 14h08.

  5. A voir en vidéo sur Futura
  6. #5
    invite897e49b2

    Re : Explications programme conversion langage c

    bah c'est rien d'autre qu'un programme de conversion d'un entier en base 16
    le principe est simple voire meme ultra simple

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

    int main()
    {
    int dec;
    int i;
    char exa[50];
    /* boucle infinie on sort par un return 0 pourquoi donc ? */
    while (1)
    {
    /* initialisation des variables */
    dec = 0;
    for (i = 0;i < 50;i++)
    {
    exa[i] = 0;
    }
    i = 0;
    /* saisie de l'entier à convertir */
    scanf("%d", &dec);
    /* on boucle jusqu'à ce que la division en base 16 soit nulle */
    /* ce qui donnera par exemple pour 32 */
    /* exa[0]=0 */
    /* exa[1]=2 */
    while ((dec / 16) != 0)
    {
    exa[i] = dec % 16;
    dec = dec / 16;
    i++;
    }
    exa[i] = dec;
    /* affichage en hexa des valeurs stockés dans le tableau exa

    while (i >= 0)
    {
    if (exa[i] == 15)
    {
    printf("F");
    }
    else if (exa[i] == 14)
    {
    printf("E");
    }
    else if (exa[i] == 13)
    {
    printf("D");
    }
    else if (exa[i] == 12)
    {
    printf("C");
    }
    else if (exa[i] == 11)
    {
    printf("B");
    }
    else if (exa[i] == 10)
    {
    printf("A");
    }
    else
    {
    printf("%d", exa[i]);
    }
    i--;
    }
    printf("\n");
    }
    return 0;
    }

  7. #6
    invite897e49b2

    Re : Explications programme conversion langage c

    Citation Envoyé par Jack Voir le message
    Beurk! Le code n'est pas indenté.
    Sinon, tu te procures un IDE quelconque: Code::Blocks, Visual Studio, QT creator, etc et tu exécutes le programme en pas à pas grâce au débogueur intégré. C'est très formateur et tu auras ta réponse.
    j'espère que c pas un cursus informatique ...

  8. #7
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    Je cherche encore l'intérêt pédagogique de balancer la réponse directement ...

  9. #8
    invite897e49b2

    Re : Explications programme conversion langage c

    Citation Envoyé par Jack Voir le message
    Je cherche encore l'intérêt pédagogique de balancer la réponse directement ...
    il prendrait un tutoriel sur le c
    il le mettrait comme tu dis dans code block pour voir ce que cela fait
    car s'il vient ici pour qu'on lui explique ce que fait ce programme , il faisait quoi pendant les cours ?
    essayer de faire les équations modélisant les formes de sa copine ?

  10. #9
    invite0bbe92c0

    Re : Explications programme conversion langage c

    Question optim de code on a vu mieux ...... et c'est un euphémisme.

  11. #10
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    Citation Envoyé par JeSuisConscient Voir le message
    il prendrait un tutoriel sur le c
    il le mettrait comme tu dis dans code block pour voir ce que cela fait
    car s'il vient ici pour qu'on lui explique ce que fait ce programme , il faisait quoi pendant les cours ?
    essayer de faire les équations modélisant les formes de sa copine ?
    Du coup, pourquoi lui as-tu commenté le code parce qu'il n'y a plus besoin d'effectuer cette démarche d'analyse maintenant ?

  12. #11
    invite897e49b2

    Re : Explications programme conversion langage c

    Citation Envoyé par Jack Voir le message
    Du coup, pourquoi lui as-tu commenté le code parce qu'il n'y a plus besoin d'effectuer cette démarche d'analyse maintenant ?
    s'il est pas capable de la faire sur un programme simple comme celui ci , et vu qu'on est déjà à noël cela veut dire qu'il a suivi les cours en dilettante ...
    donc il ira pas bien loin ...
    que cela soit ou pas fait y aura pas trop de différences dans le résultat final

  13. #12
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    Citation Envoyé par JeSuisConscient Voir le message
    s'il est pas capable de la faire sur un programme simple comme celui ci , et vu qu'on est déjà à noël cela veut dire qu'il a suivi les cours en dilettante ...
    Ca, on ne sait pas. On ne va pas polémiquer, c'est trop tard de toutes manières. Attendons la réponse d'AlexandreAguilar

  14. #13
    invitefa13e265

    Re : Explications programme conversion langage c

    c'est mieux comme ça ?

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    void DecToHexa()
    { int dec;
      int i;
      char exa[2];
    
    dec = 0;
    
    
    for (i = 0;i < 2;i++)
    
    {
    exa[i] = 0;
    }
    
    i = 0;
    
    printf("Entrer un nombre Decimal inferieur a 255:\n");
    scanf("%d", &dec);
    
     while (dec>255)
                    {
                        printf("RENTREZ UN UN NOMBRE INFERIEUR A 255, ICI CE N\'EST PAS LE CAS\n");
                        printf("Entrer un nombre Decimal inférieur a 255:\n");
                        scanf("%d", &dec);
                    }
    
    while ((dec / 16) != 0)
    
    {
    exa[i] = dec % 16;
    dec = dec / 16;
    i++;
    }
    
    exa[i] = dec;
    
    printf("L\'equivalence du nombre en hexadecimal est donc:\t");
    
    while (i >= 0)
    {
    if (exa[i] == 15)
    {
    printf("F");
    }
    else if (exa[i] == 14)
    {
    printf("E");
    }
    else if (exa[i] == 13)
    {
    printf("D");
    }
    else if (exa[i] == 12)
    {
    printf("C");
    }
    else if (exa[i] == 11)
    {
    printf("B");
    }
    else if (exa[i] == 10)
    {
    printf("A");
    }
    else
    {
    printf("%d", exa[i]);
    }
    i--;
    }
    printf("\n");
    }
    
    int main()
    {
        DecToHexa();
        return 0;
    }
    Petite question : pourquoi si je ne decrémente pas le programme ne s'arrete pas ?

  15. #14
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    c'est mieux comme ça ?
    Pas vraiment, non. Ca reste illisible, on ne voit pas la structure du programme, des boucles, etc
    http://fr.wikipedia.org/wiki/Style_d%27indentation

    Petite question : pourquoi si je ne decrémente pas le programme ne s'arrete pas ?
    Quelle décrémentation?

  16. #15
    invitefa13e265

    Re : Explications programme conversion langage c

    la c'est mieux ?

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    void DecToHexa()
    {
        int dec;
        int i;
        char exa[2];
    
        dec = 0;
    
    
        for (i = 0; i < 2; i++)
    
            {
                exa[i] = 0;
            }
    
        i = 0;
    
        printf("Entrer un nombre Decimal inferieur a 255:\n");
        scanf("%d", &dec);
    
        while (dec>255)
            {
                printf("RENTREZ UN UN NOMBRE INFERIEUR A 255, ICI CE N\'EST PAS LE CAS\n");
                printf("Entrer un nombre Decimal inférieur a 255:\n");
                scanf("%d", &dec);
            }
    
        while ((dec / 16) != 0)
    
            {
                exa[i] = dec % 16;
                dec = dec / 16;
                i++;
            }
    
        exa[i] = dec;
    
        printf("L\'equivalence du nombre en hexadecimal est donc:\t");
    
        while (i >= 0)
            {
                if (exa[i] == 15)
                    {
                        printf("F");
                    }
                else if (exa[i] == 14)
                    {
                        printf("E");
                    }
                else if (exa[i] == 13)
                    {
                        printf("D");
                    }
                else if (exa[i] == 12)
                    {
                        printf("C");
                    }
                else if (exa[i] == 11)
                    {
                        printf("B");
                    }
                else if (exa[i] == 10)
                    {
                        printf("A");
                    }
                else
                    {
                        printf("%d", exa[i]);
                    }
                i--;
            }
        printf("\n");
    }
    
    int main()
    {
        DecToHexa();
        return 0;
    }

    le "i--;" ??

  17. #16
    invite897e49b2

    Re : Explications programme conversion langage c

    Citation Envoyé par Jack Voir le message
    Quelle décrémentation?
    celle de i
    alors un conseil
    tu fais un printf de i et a coté la condition de sortie de ta boucle
    tu trouveras la réponse comme un grand ....

  18. #17
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    C'est nettement mieux.

    je n'avais pas vu le i--.

    Pourquoi la boucle ne s'arrête pas sans? A ton avis, en Français on traduirait comment "while (i >= 0)" ?

    Je réitère ma proposition d'utiliser un debugger. La réponse aurait sauté aux yeux (si on sait bien regarder)

  19. #18
    invitefa13e265

    Re : Explications programme conversion langage c

    comment debugger sur code blocks ? j'ai suivi les cours donc je sais de quoi ça parle, cependant je n'ai pas pu assister aux tp(je suis sportif de haut niveau et rate pas mal de cours) ! le fait de debugger va m'expliquer chaque ligne ?

  20. #19
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    Citation Envoyé par AlexandreAguilar Voir le message
    comment debugger sur code blocks ? j'ai suivi les cours donc je sais de quoi ça parle, cependant je n'ai pas pu assister aux tp(je suis sportif de haut niveau et rate pas mal de cours) ! le fait de debugger va m'expliquer chaque ligne ?
    Oui, on peut avancer instruction par instruction et visualiser la valeur des variables au fur et à mesure, i en l'occurrence.

    http://openclassrooms.com/courses/c-...ec-code-blocks

  21. #20
    invite897e49b2

    Re : Explications programme conversion langage c

    on va mieux t'aider alors , car on a souvent droit à des étudiants qui esperent qu'on fasse leur boulot a leur place
    une petite documentation
    http://openclassrooms.com/courses/c-...ec-code-blocks
    et là
    http://wiki.codeblocks.org/index.php...h_Code::Blocks

  22. #21
    bisou10

    Re : Explications programme conversion langage c

    Citation Envoyé par AlexandreAguilar Voir le message
    la c'est mieux ?

    le "i--;" ??
    Wow, effectivement, tu n'as rien compris

  23. #22
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    le "là c'est mieux" répondait à ma demande d'indentation correcte, et en l'occurrence c'était effectivement mieux.

  24. #23
    invite897e49b2

    Re : Explications programme conversion langage c

    Citation Envoyé par bisou10 Voir le message
    Wow, effectivement, tu n'as rien compris
    oui c'est tout ce que tu apportes ?

  25. #24
    invitefa13e265

    Re : Explications programme conversion langage c

    je n'arrive toujours pas a debugger..

  26. #25
    Jack
    Modérateur

    Re : Explications programme conversion langage c

    Citation Envoyé par AlexandreAguilar Voir le message
    je n'arrive toujours pas a debugger..
    et on fait quoi maintenant?

  27. #26
    invite897e49b2

    Re : Explications programme conversion langage c

    deja je présumes que tu as installé celui ci
    http://sourceforge.net/projects/code...ingw-setup.exe

    une fois que tu as créer un nouveau projet pour mettre ton programme c
    tu peux ajouter des points d'arrêt en cliquant juste a coté du numéro de ligne
    un point rouge apparait ou en faisant clique droit a coté du numéro correspondant
    si tu veux visualiser une variable , tu la sélectionnes avec la souris et clique droit , tu choisis watch ...
    lance ton programme
    quand il s'arrete au point d'arret
    tu selectionnes ensuite dans le menu
    debug->debugging windows->watches
    pour faire du pas a pas appuie sur f7

    donc c facile de debugguer


    ecran01.jpg
    ecran02.jpg
    ecran03.jpg
    ecran04.jpg
    ecran05.jpg

Discussions similaires

  1. Langage c conversion binaire hexa
    Par invitecee01c25 dans le forum Programmation et langages, Algorithmique
    Réponses: 16
    Dernier message: 30/12/2014, 15h50
  2. conversion d'un tableau(langage C)
    Par invitefa15af9f dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 08/04/2012, 15h06
  3. conversion ASCII-HEX langage c
    Par invite73838812 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 24/11/2010, 10h14
  4. langage C : conversion en binaire d'un fichier en hexa
    Par invitedba13d1f dans le forum Logiciel - Software - Open Source
    Réponses: 13
    Dernier message: 06/07/2009, 09h46