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

Langage Pascal Discussion :

Inverser nombre entier de 4 chiffres


Sujet :

Langage Pascal

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Inverser nombre entier de 4 chiffres
    Bonjour à tous,

    Je suis débutant en la matiere et j'aimerais avoir votre aide.

    Quelqu'un pourrait me dire comment inverser l'ordre des chiffres d'un nombre entier ?

    Par exemple: 4378 donne 8734

    Sans utiliser de chaîne de caractères. Je pense qu'il s'agit d'une histoire de div et modulo mais je n'en suis pas sûr...

    Si quelqu'un pouvait me communiquer le code ce serait gentil merci...

    A+++

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Tu as raison il faut que tu utilises "mod" et "div".
    Voila ce que tu peux faire par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    write('Saisir un nombre : ');
    readln(x);
    y:=0;
     
    while (x<>0) do
    begin
      i := (x mod 10);
      x := (x div 10);
      y:=(y*10)+i;
    end;
     
    writeln(y);  //x,y et i sont de type integer
    Si tu rentres la valeur 100, tu auras en retour le nombre 1. A toi d'adapter le programme pour obtenir 001 si nécessaire.

    De même tu peux rentrer un entier qui a plus ou moins de 4 chiffres, donc si ta valeur doit absoulement avoir 4 chiffres, à toi de faire une condition lors de la lecture de la valeur.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    merci de ton aide mais pourrais tu commenter les lignes car là je comprends pas tout

    grand merci

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    write('Saisir un nombre : ');    
    readln(x);               // Lecture de la valeur à "inverser".  (x possède n chiffres)
    y:=0;                    // Initialisation de la nouvelle valeur
     
    while (x<>0) do
    begin
      i := (x mod 10);       // On récupère le dernier chiffre de x
      x := (x div 10);       // On récupère x sans le dernier chiffre (x aura (n-1) chiffres à chaque passage dans la boucle
      y:=(y*10)+i;           // La nouvelle valeur correspond à y que l'on multiplie par 10 pour décaler la place des                                    chiffres d'un rang. On ajoute le dernier chiffre de x.
    end;
     
    writeln(y);  //x,y et i sont de type integer

    Exemple :

    tu saisis x = 487.

    x différent de 0 donc on rentre dans la boucle.
    i = 487 mod 10 = 7
    x = 487 div 10 = 48
    y = 0 * 10 + 7 = 7

    X différent de 0 donc on rentre de nouveau dans la boucle.
    i = 48 mod 10 = 8
    x = 48 div 10 = 4
    y = 7 * 10 + 8 = 78

    La encore x est différent de 0 donc on recommence.
    i = 4 mod 10 = 4
    x = 4 div 10 = 0
    y = 78 * 10 + 4 = 784

    x vaut 0 donc on arrête.
    On renvoit y qui vaut 784 et qui est bien l'inverse de 487.

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/07/2010, 19h59
  2. Format des nombres entiers, séparateurs de milliers
    Par zazaraignée dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2005, 01h25
  3. nombre entier
    Par eleve36 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/10/2005, 16h25
  4. entier à + de 15 chiffres (vb6)
    Par vorx dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 30/05/2005, 20h08
  5. [LG]Former un nombre entier à partir de chiffre naturel.
    Par lecanardjaune dans le forum Langage
    Réponses: 2
    Dernier message: 12/11/2003, 22h36

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