Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercice pointeurs

Un petit exercice...

    26 janvier 2006 à 20:48:17

    Je vous propose un petit exercice pour ceux qui viennent de lire le dernier chapitre concernant les pointeurs. Il reprend l'idée du TP du cours mais avec quelques changements. Ca sera trop facile pour certains, mais si vous êtes dans mon cas ( conaissance du cours pour les zéros seulement ! ) il pourra peut-être servir à vous entrainer un peu :) !

    L'idée est de faire une programme qui effectue une conversion entre :
    • Les degrés, minutes et secondes
    • Les degrés décimaux

    Les informations, pour ceux qui en ont besoin, sont : 1' = (1/60)°, 1'' = (1/3600)
    Ex : 23° + (17/60)' + (43/3600)'' = 23,2952..°


    Voila vous avez tout pour réussir :p !

    L'éxecutable ici
    Mon code pour ceux qui le veulent :euh: :

    Secret (cliquez pour afficher)


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

    void decoupeDegres(long* pointeurDegres, double* pointeurMinutes, double* pointeurSecondes, double* pointeurDegresT);

    int main(int argc, char *argv[])
    {
        long degres = 0, continuerPartie = 1;
        double minutes = 0.00, secondes = 0.00, degresT = 0.00, heuresT = 0.00;
        long *pointeurDegres = &degres;
        double *pointeurMinutes = &minutes, *pointeurSecondes = &secondes, *pointeurDegresT = &degresT;

        /* Les pointeurs avec leurs adresses correspondantes */

        /* La boucle pour demander si il faut re-faire une conversion */

        while (continuerPartie != 2)
        {

        printf("###################################################################\n");
        printf("##                                                               ##\n");
        printf("## Bienvenus sur le convertisseur de degres, minutes et secondes ##\n");
        printf("## en degres decimaux !                                          ##\n");
        printf("##                                                           xEc ##\n");
        printf("###################################################################\n\n");

        printf("Entrez le nombre de degres : ");
        scanf ("%ld", &degres);
        printf("Entrez le nombre de minutes : ");
        scanf ("%lf", &minutes);
        printf("Entrez le nombre de secondes : ");
        scanf ("%lf", &secondes);

        /* Appel de la fonction decoupeDegres */
        decoupeDegres(&degres, &minutes, &secondes, &degresT);
        printf("\nCela donne %lf degres decimaux !", degresT);

        printf("\n\nUne autre conversion (1. Oui / 2. Non ) ?\n");
        scanf("%ld", &continuerPartie);
        }


        return 0;
    }

    /* La fonction decoupeDegres en question */
    void decoupeDegres(long *pointeurDegres, double *pointeurMinutes, double *pointeurSecondes, double *pointeurDegresT)
    {
        *pointeurMinutes = *pointeurMinutes / 60; // On divise le nombre de minutes par 60.
        *pointeurSecondes = *pointeurSecondes / 3600// On divise le nombre de secondes par 3600.
        *pointeurDegresT = *pointeurDegres + *pointeurMinutes + *pointeurSecondes;
    /* Finallement, on addition le nombre de degrés, celui des minutes et celui des secondes. */
    }




    Voila ! Il est peu commenté et peut surement être amélioré mais je débute comme je l'ai dis ^^ .

    Si vous avez des suggestions pour l'améliorer, ou d'autre exercices pour entrainer ces pointeurs je suis preneur ;) !
    • Partager sur Facebook
    • Partager sur Twitter
      26 janvier 2006 à 21:07:56

      Clairement, il y a trop de commentaires.

      Par exemple, ceux qui sont ici sont tout à fait inutiles :
      /* La fonction decoupeDegres en question */
      void decoupeDegres(long *pointeurDegres, double *pointeurMinutes, double *pointeurSecondes, double *pointeurDegresT)
      {
          *pointeurMinutes = *pointeurMinutes / 60; // On divise le nombre de minutes par 60.
          *pointeurSecondes = *pointeurSecondes / 3600// On divise le nombre de secondes par 3600.
          *pointeurDegresT = *pointeurDegres + *pointeurMinutes + *pointeurSecondes; // Finallement, on addition le nombre de degrés, celui des minutes et celui des secondes.
      }


      Ils n'apportent rien du tout, et chargent la source ce qui la rend pénible à lire.


      De manière générale je trouve que vous avez tendance à mettre beaucoup trop de commentaires. C'est pas parce que m@teo en tartine tout partout dans ses cours (lui c'est normal, il apprend à des débutants, donc il explique tout tout tout, et il n'a pas peur de se répéter. Vous vous montrez votre code à des codeurs) que vous devez l'imiter.

      Je citerais une partie du texte "Coder en évitant les bugs", qui y va un peu fort sur le sujet, mais est une bonne base pour comprendre ce qui pose problème :

      Citation

      Ne pas trop compter sur les commentaires



      Pour expliquer ce que fait un code, on peut ajouter des commentaires, mais cela a beaucoup d’inconvénients. Ils indiquent clairement ce que l’on voulait faire avec le code qui suit, mais pas ce que ce code fait réellement : le commentaire ou le code peuvent être faux, ou pas à jour. Mieux vaut écrire du code qui se comprend facilement sans commentaires. On peut éventuellement en mettre avant le code de chaque fonction.

      • Partager sur Facebook
      • Partager sur Twitter

      Exercice pointeurs

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown