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

Turbo Pascal Discussion :

[TP] Dépassement de capacité pour nombre de plus de 32 bits


Sujet :

Turbo Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut [TP] Dépassement de capacité pour nombre de plus de 32 bits
    Voilà, sachant qu'un longint est compris entre -2 milliards et + 2 milliards, comment effectuer des calculs sur des nombres plus grands ?

    Ici, c'est pour un ptit prog pour verifier la validité d'un numéro de carte bancaire.
    --> *** - ******* - **
    111 - 2222222 - 33

    1112222222 mod 97 doit etre égal à 33
    si oui n° valide, sinon non valide

    Merci d'avance

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 049
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Tout d'abord, au sujet de ton exemple : le modulus vaut 46 et non 33 !

    Tu peux utiliser le type Comp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Var ValeurDepart, Quotient, Reste : Comp;
        Resultat : LongInt;
     
    Begin
      ValeurDepart := 1112222222.0;
      Quotient := ValeurDepart / 97;
      Reste := ValeurDepart - Quotient * 97;
      Resultat := Round(Reste);
    End;
    J'ai testé plusieurs valeurs avec succès mais ça ne veut pas dire charrette : il y a peut-être un risque d'erreur d'arrondi, la méthode peut sûrement être affinée.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Par défaut
    ok, merci j'ai essayé ca marche .
    j'ai une autre solution aussi :

    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
    var p1,p2,p3 : longint;
     
     begin
     
       write('Entrez votre numero de compte : *** - ******* - **');
       gotoxy(33,1);read(p1);
       gotoxy(39,1);read(p2);
       gotoxy(49,1);read(p3);
     
       p1:= p1 mod 97;
       p1:= p1 * 10000000 + p2;
     
       {if p3=97 then p3:=0;  cas particulier}
     
       if p1 mod 97 = p3 mod 97 then write('code valide')     
                  {p3 mod 97  remplace le test du dessus}
     
                                          else write('code non valide');
     
     
     end.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/11/2012, 16h35
  2. Y a-t-il une capacité limite pour un disque externe NTFS ?
    Par danielhagnoul dans le forum Windows XP
    Réponses: 10
    Dernier message: 16/01/2011, 20h07
  3. Masque d'affichage pour nombre
    Par VincenzoR dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/06/2006, 16h11
  4. [MySQL] système pour nombre de connectés en ligne
    Par inferno66667 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/12/2005, 22h42
  5. [debutant][JNI]Stocker des objet pour les rappeler plus tard
    Par Celenor dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 28/03/2004, 01h28

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