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

 Delphi Discussion :

calcul de modulo


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2012
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 20
    Par défaut calcul de modulo
    Je dois traduire cette phrase en code , j'aimerai savoir si ma réponse semble exacte

    //L'algorithme de calcul de cette clé est le modulo 97 , c'est-à-dire, le complément à 97 du reste de la division du nombre que représente le NIR par 97

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c := _sNoSecu - [(_sNoSecu/97)*97]
    Merci

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il existe l'opérateur mod :
    et l'opérateur div qui donne le résultat de la division entière.

    Cela dit, le modulo n'est pas le complément à 97 du reste dans la division entière par 97 : c'est le reste lui-même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    complement := 97 - i mod 97;
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre averti
    Inscrit en
    Mai 2012
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 20
    Par défaut
    Je n'ai pas ecrite cette phrase mais elle a été prise d'un site expliquant comment calculer un numéro de sécurité sociale.

    Avec tes informations, le code deviendrait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c := Secu - [(Secu div 97) mod 97]
    ??

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Euh, non ! Tu as fransformé * en mod ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c := _sNoSecu - [(_sNoSecu/97)*97]
    peut s'écrire (au passage factorisation et développement mathématique)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    c := _sNoSecu - (Int(_sNoSecu / 97) * 97);
    c := _sNoSecu - ((_sNoSecu div 97) * 97);
    c := _sNoSecu - ((_sNoSecu div 97) * 97);
    c := _sNoSecu - ((_sNoSecu - (_sNoSecu mod 97));
    c := _sNoSecu - _sNoSecu + (_sNoSecu mod 97);
    c := _sNoSecu mod 97;
    Mais tout ça c'est faux et le bon calul est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c := 97 - (_sNoSecu mod 97);
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre averti
    Inscrit en
    Mai 2012
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 20
    Par défaut
    Va t-on me dire que je n'y comprend rien mais je pose quand même ma question,
    pk "97 -" et non pas "Secu -"

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Ben, parce que c'est la formule du NSS : Cle = 97 - NIR modulo 97.
    Il n'y a rien a comprendre !
    Et encore, comme Brice, je ne touche pas la Corse !

    Test avec ton propre numéro, moi j'ai écrit ça il y a déjà pas mal d'année !
    On trouve effectivement deux écritures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c := 97 - (_sNoSecu mod 97);
    c := 97 - (_sNoSecu - (Int(_sNoSecu / 97) * 97));
    Tu notes que la seconde forme est proche de la tienne !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre averti
    Inscrit en
    Mai 2012
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 20
    Par défaut
    D'accord je vois!
    Merci beaucoup

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

Discussions similaires

  1. Etrange calcul de modulo
    Par mathspountz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/01/2014, 15h33
  2. Réponses: 3
    Dernier message: 12/10/2010, 05h22
  3. calcul du modulo ou puissance d'un nombre
    Par tcheck_vi dans le forum MATLAB
    Réponses: 2
    Dernier message: 03/06/2009, 07h54
  4. Calculer le modulo sans utiliser l'operateur %
    Par candidson dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 07/06/2007, 18h35
  5. [Access] calculer le modulo optimal ?
    Par kikidrome dans le forum Langage SQL
    Réponses: 6
    Dernier message: 09/10/2006, 10h44

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