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

Programmation (La)TeX avancée Discussion :

Calcul de PGCD


Sujet :

Programmation (La)TeX avancée

  1. #1
    Invité
    Invité(e)
    Par défaut Calcul de PGCD
    Bonjour,

    j'ai souvent à écrire des tableaux montrant les étapes de calcul d'un pGCD avec l'algorithme d'Euclide. Les étapes sont ennuyeuses à calculer et le tableau long à taper. Je souhaiterais une macro \pgcd qui prend 2 nombres et qui affiche le tableau tout fait comme dans le code ci dessous.

    Merci

    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
    \documentclass{article}
    \begin{document}
    Calcul du PGCD : %\PGCD{39}{15} macro à inventer
     
    \begin{center}
    \setlength{\tabcolsep}{15pt}
    \begin{tabular}{|c|c|c|c|}
    \hline
    $a$&$b$&$q$&$r$\\
    \hline\hline
    39&15&2&9\\
    \hline
    15&9&1&6\\
    \hline
    9&6&1&3\\
    \hline
    6&3&2&0\\
    \hline
    \end{tabular}
    \end{center}
    \end{document}

  2. #2
    Membre averti
    Homme Profil pro
    [SciComp]
    Inscrit en
    Août 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : [SciComp]

    Informations forums :
    Inscription : Août 2013
    Messages : 134
    Points : 323
    Points
    323
    Par défaut
    Bonjour,

    Intéressé par la solution et ne sachant pas comment faire, j'ai utilisé un moteur de recherche très connu et suis tombé sur ce lien de macros latex qui m'a l'air de faire le taf très bien modulo la présentation "tableau" que tu recherches (qui me semble par ailleurs moins judicieuse que le layout de la macro).

    Bonne journée !

  3. #3
    Invité
    Invité(e)
    Par défaut
    C'est vrai que, même s'il n'est pas créé pour ça, xlop permet des calculs sur des entiers arbitrairement longs (il y a aussi d'autres packages pour ça).

    Mais TeX sait aussi calculer sur des entiers 32bits, donc il n'y a aucun besoin de package ici, une simple récursivité fait l'affaire.

    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
    \documentclass{article}
    \makeatletter
    \newcount\cnt@a\newcount\cnt@b
    \def\PGCD#1#2{%
    	\begin{center}
    	\tabcolsep15pt
    	\ifnum#1>#2\cnt@a#1\cnt@b#2\else\cnt@a#2\cnt@b#1\relax\fi
    	\tabular{|*4{c|}}\hline$a$&$b$&$q$&$r$\\\hline\hline\PGCD@i
    	\end{center}
    }
    \def\PGCD@i{\edef\PGCD@ii##1{##1{\number\cnt@a}{\number\cnt@b}}\PGCD@ii\PGCD@iii}
    \def\PGCD@iii#1#2{#1&#2&\cnt@b#1\relax\global\divide\cnt@b#2\relax\number\cnt@b&\global\cnt@b\numexpr#1-#2*\cnt@b\relax\number\cnt@b\global\cnt@a#2\relax\\\hline\ifnum\cnt@b>\z@\expandafter\PGCD@i\else\expandafter\endtabular\fi}
    \makeatother
    \begin{document}
    Calcul du PGCD : \PGCD{39}{15}% macro à inventer
    \end{document}

  4. #4
    Membre averti
    Homme Profil pro
    [SciComp]
    Inscrit en
    Août 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : [SciComp]

    Informations forums :
    Inscription : Août 2013
    Messages : 134
    Points : 323
    Points
    323
    Par défaut
    @unbonpetit: Respect !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par xflr6 Voir le message
    @unbonpetit: Respect !
    Merci mais c'est immérité. Il ne faut pas s'enflammer, c'est du très très basique.

  6. #6
    Membre régulier Avatar de Third Joker
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Février 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 145
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par unbonpetit Voir le message
    c'est du très très basique.
    Le genre de remarque que les débutants comme nous ne savons pas trop comment prendre

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Third Joker Voir le message
    Le genre de remarque que les débutants comme nous ne savons pas trop comment prendre
    Comme la vérité : c'est très basique ; algorithmiquement, c'est du quasi-trivial.
    Ensuite, il faut évidemment savoir lire le code TeX et c'est ça ta difficulté. Mais ça c'est autre chose qui n'a rien à voir avec la complexité d'un algorithme.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Encore une fois, ça fonctionne très bien, même si le programme est incompréhensible pour moi... Autant lire du chinois !

    Merci.

  9. #9
    Membre régulier Avatar de Third Joker
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Février 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 145
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par unbonpetit Voir le message
    Comme la vérité : c'est très basique ; algorithmiquement, c'est du quasi-trivial.
    Ensuite, il faut évidemment savoir lire le code TeX et c'est ça ta difficulté. Mais ça c'est autre chose qui n'a rien à voir avec la complexité d'un algorithme.
    Je me doute que l'algorithme n'est pas diablement compliqué. C'est évidemment le code TeX qui pose problème. Le pire, c'est que je ne sais même pas comment faire pour arriver à le déchiffrer. Certaines réponses sont dans TeX pour l'impatient, mais certaines commandes n'y sont pas (ou peut-être que je les cherche mal), du coup je ne sais pas trop comment m'y prendre pour parvenir à le comprendre (celui-ci ou un autre). C'est parfois un peu désoeuvrant...

  10. #10
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    Effectivement comme le dit très justement Third Joker, le problème principal que nous avons est la méconnaissance du langage TeX. En effet, j'ai pour ma part l'expérience de plusieurs langages de programmation, mais TeX ne me semble pas aussi intuitif. Je croyais dans un autre sujet que TeX ressemblait à la Programmation Orientée Objet mais unbonpetit m'a dit que c'est très différent. Je pensais cela car en redéfinissant par exemple une nouvelle commande, cela ressemble fortement à la redéfinition d'une classe mère en Java - tout au moins dans la façon de faire.

    Voici un exemple en C de l'algorithme du PGCD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    int pgcd(int a, int b)
    {
      int r;
      while (b != 0)
        {
          r = a%b;
          a = b;
          b = r;
        }
      return a;
    }
    Il s'agit de l’algorithme récursif de Bézout. A mon avis même quelqu'un qui n'a jamais programmé mais qui comprend un minimum d'anglais peut saisir le principe de ce code. Mais dans le code de unbonpetit ce n'est pas le cas ! Etrangement TeX me rapelle aussi un autre langage que j'ai utilisé, le Scheme, mais j'imagine qu'il me dira qu'ils n'ont rien à voir.

    Ainsi le souci avec TeX c'est que les utilisateurs l'utilisent pour rédiger des rapports et des livres et n'ont recours qu'aux commandes de haut niveau. Je pense qu'il ne viendrait à personne l'idée de l'utiliser pour faire un programme qui, par exemple, calcule les racines des fonctions polynomiales d'ordre 2. En C c'est relativement aisé avec les pointeurs mais en TeX j'imagine que non. Mais sans doute unbonpetit pourrait faire cela.

    Il nous faudrait en définitive un tutoriel qui explique les commandes de bas niveau de TeX de sorte qu'on puisse réaliser (théoriquement) n'importe quel type de programme avec si cela nous chante.

  11. #11
    Membre averti
    Avatar de Namrod
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2012
    Messages : 215
    Points : 349
    Points
    349
    Par défaut
    Citation Envoyé par abel413 Voir le message
    Il nous faudrait en définitive un tutoriel qui explique les commandes de bas niveau de TeX de sorte qu'on puisse réaliser (théoriquement) n'importe quel type de programme avec si cela nous chante.
    Il y a le TeXBook pour ça ! Alors certes, ce n'est pas un tutoriel, et il faut l'acheter, mais si on veut vraiment s'investir dans TeX, cela me semble indispensable.

  12. #12
    Membre régulier Avatar de Third Joker
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Février 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 145
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par Namrod Voir le message
    Il y a le TeXBook pour ça ! Alors certes, ce n'est pas un tutoriel, et il faut l'acheter, mais si on veut vraiment s'investir dans TeX, cela me semble indispensable.
    Je viens de le commander. Mais aux dires de unbonpetit, même ça c'est très difficile d'accès. On verra, mais j'ai un peu peur...

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    Third Joker, quand tu parles de TEXBook, fais-tu référence au livre de 400 pages ?

    Si non, de quoi s'agit-il ? De plus si toi et Namrod faîtes référence à une version papier, ne pensez-vous pas que ce ne soit pas très pratique d’utilisation ? Un eBook serait mieux à mon sens afin de pouvoir lire sur l'écran puis tester.

    En outre, Third Joker tu dis que "même ça" est très difficile d'accès. Veux-tu signifier par là que qu'il y a encore un niveau d'abstraction en-dessous, c'est-à-dire d'autres livres encore plus difficiles ?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par abel413 Voir le message
    Third Joker, quand tu parles de TEXBook, fais-tu référence à celui ici ?
    Ce fichier est illégal.
    Merci de modifier ton post très rapidement pour enlever ce lien.

  15. #15
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    unbonpetit, je ne savais pas. En fait j'ai mis "texbook" sur google et c'est le premier lien que j'obtiens.

  16. #16
    Membre régulier Avatar de Third Joker
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Février 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 145
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par abel413 Voir le message
    Third Joker, quand tu parles de TEXBook, fais-tu référence à celui ici ?
    Il semblerait bien oui. Mais j'ai commandé la version française. Je lis l'anglais mais bon, assez d'une seule difficulté à la fois

    ne pensez-vous pas que ce ne soit pas très pratique d’utilisation ? Un eBook serait mieux à mon sens afin de pouvoir lire sur l'écran puis tester.
    Ben ça dépend. Pour une lecture soutenue, je préfère lire sur papier, c'est moins fatiguant. Et ça permet d'annoter, selon moi de manière plus efficace (enfin c'est une question d'habitude). Et c'est également un moyen de soutenir ce projet fantastique. Donc voilà, un achat que je ne regretterai pas.

    Mais avoir une version électronique en plus est bien utile.

    En outre, Third Joker tu dis que "même ça" est très difficile d'accès.
    [/quote]
    Je ne sais pas encore, je ne l'ai pas lu. Je me base uniquement sur ce qu'on ma dit, et sur ma très piètre expérience de la programmation en général. Donc n'ayant même pas de base sérieuse dans quelque langage de programmation que ce soit, et étant donné la réputation difficile d'accès du langage TeX, ouais, je pense que je vais en prendre plein la gueule. Mais j'aime les défis

    Veux-tu signifier par là que qu'il y a encore un niveau d'abstraction en-dessous, c'est-à-dire d'autres livres encore plus difficiles ?
    Tu veux dire "au-dessus" non?
    Quoi qu'il en soit je l'ignore, je ne connais pas la littérature sur la question. Je ne pense pas qu'il existe pléthore de manuels d'utilisations de TeX. C'est peut-être un peu tout ce qu'il y a de quasi exhaustif.

  17. #17
    Membre régulier Avatar de Third Joker
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Février 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 145
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par unbonpetit Voir le message
    Ce fichier est illégal.
    Merci de modifier ton post très rapidement pour enlever ce lien.
    Je me disais bien que c'était étrange. J'ai modifié ma citation du message d'abel en conséquence.

  18. #18
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Third Joker Voir le message
    Mais avoir une version électronique en plus est bien utile.
    Vous me faites marrer à chouiner !
    Vous avez tous le code source de ce livre sur votre disque dur

  19. #19
    Membre régulier Avatar de Third Joker
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Février 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 145
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par unbonpetit Voir le message
    Vous me faites marrer à chouiner !
    Vous avez tous le code source de ce livre sur votre disque dur
    Je ne vois pas où tu as vu que je chouinais.

    Cela dit, . Où est ce code source??

  20. #20
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    le fichier .tex du tex book est libre et disponible sur CTAN, mais en revanche pas le droit de le compiler. D'où le fais que le post d'abel soit illégal.

    ne pensez-vous pas que ce ne soit pas très pratique d’utilisation ? Un eBook serait mieux à mon sens afin de pouvoir lire sur l'écran puis tester.
    je dois être aussi de la vieille école, un bon livre en main avec des pages à tourner et des annotation à faire est pour moi bien mieux qu'un e-book

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/11/2018, 07h11
  2. Calcul de PGCD et PPCM
    Par Anas.sellami dans le forum Pascal
    Réponses: 5
    Dernier message: 12/04/2008, 11h09
  3. Calcul du pgcd
    Par YASIR dans le forum Débuter
    Réponses: 40
    Dernier message: 09/04/2008, 19h01
  4. Calcul du PGCD avec les entiers de Peano
    Par patrick974 dans le forum Prolog
    Réponses: 12
    Dernier message: 30/08/2007, 06h57
  5. Algorithme permettant de calculer le PGCD de deux nombres
    Par zeyd dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 25/11/2005, 20h37

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