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

C Discussion :

modulo en c (calcul)


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 342
    Par défaut modulo en c (calcul)
    Bonjour,j'aimerais qsavoir comment on fait un modulo en c. j'ai effectué de la manière suivant mais j'ai une erreur de compilation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    angle=(angle)%(360.00);
    angle est de type double.
    Merci.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    salut, je crois qu'il faut que tu mettes la libraires mathématiques (option -lm quand tu compiles).
    Ensuite, je crois que le modulo s'effectue sur des entiers (et non des doubles) : je ne pense pas que dire 6.3 modulo 2.7 ait un sens (à vérifier)

  3. #3
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Pas besoin de la bibliothèque mathématique.

    En revanche le modulo ne s'effectue que sur des entiers.

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Utilise les fonctions fmod ou fmodl de la bibliothèque

  5. #5
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Le modulo retournant un reste, ce reste est forcément entier non ?

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par muad'dib
    Le modulo retournant un reste, ce reste est forcément entier non ?
    C'est le quotient qui est entier, le reste peut ne pas l'etre.

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Citation Envoyé par muad'dib
    Le modulo retournant un reste, ce reste est forcément entier non ?
    Tu sous-entends une division d'entiers, ce n'est pas le cas pour fmod qui est une division de float (fmod) si je ne m'abuse.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Entendons-nous sur les termes ! Pour moi un modulo, c'est le reste d'une division, c'est à dire
    53 % 10 va donner 3 (5,3)
    Or si ce 3 est déja le reste d'une division, comment pourrait-il être autre qu'entier ??

  9. #9
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    5.5 divise par 2.5 vaut 2 avec un reste de 0.5

  10. #10
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    5.5 divise par 2.5 vaut 2 avec un reste de 0.5
    Bon sang je comprend plus rien ... sur ma calculatrice, 5.5/2.5 = 2.2, d'oú sors-tu un reste de 0.5 ? pour moi, le reste est 2 !

  11. #11
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par muad'dib
    Bon sang je comprend plus rien ... sur ma calculatrice, 5.5/2.5 = 2.2, d'oú sors-tu un reste de 0.5 ? pour moi, le reste est 2 !
    Oula tu as oublié tes cours toi de math toi non ?

    2 * 2.5 = 5
    5 + 0.5 = 5.5

    Le résultat est entier pas le reste.

  12. #12
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    je pige toujours pas je dois être un peu cucu la praline ... je sens que je vais me faire un + modulo ça va être vite fait

    OK j'avoue m'être assis au fond de la classe en cours de math ... mais quand même je reste persuadé que le prof nous a appris que le modulo était ce qu'il restait après la virgule lors d'une division !!!!
    Ou alors Helzeimer me guette ...

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par muad'dib
    Ou alors Helzeimer me guette ...
    Alzeihmer

    Plus sérieusement, si tu le fais en texte :

    modulo signifie : chaque fois que c'est un multiple, on a 0, et sinon on a la différence entre le nombre et le multiple inférieur...

    Donc en entier, effectivement, le reste est entier :

    5 % 2 = 1 (2*2 + 1)

    Mais en flottant, c'est différent :

    5.5 % 2.5 = 0.5 (2*2.5 + 0.5)

    C'est correctement expliqué ici :

    http://www.opengroup.org/onlinepubs/...ions/fmod.html

    ...
    double fmod(double x, double y);
    float fmodf(float x, float y);
    long double fmodl(long double x, long double y);
    ...
    These functions shall return the floating-point remainder of the division of x by y.
    ...
    These functions shall return the value x- i* y, for some integer i such that, if y is non-zero, the result has the same sign as x and magnitude less than the magnitude of y.
    ...

  14. #14
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 82
    Par défaut
    Citation Envoyé par muad'dib
    Bon sang je comprend plus rien ... sur ma calculatrice, 5.5/2.5 = 2.2, d'oú sors-tu un reste de 0.5 ? pour moi, le reste est 2 !
    Salut,

    Pose toi la question : " Combien de fois est-ce que je peux mettre 2.5 dans 5.5 ?" La réponse est 2 . ensuite il te reste 0.5

  15. #15
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    OK ! Merci à vous tous ! C'est plus clair dans mon esprit à présent ..

    Au moins j'aurais appris (enfin "rectifié") une de mes connaissances !

  16. #16
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    90% du temps la source du bug se situe entre le clavier et la chaise

  17. #17
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Citation Envoyé par souviron34
    Ahahah énorme ! J'ai mis ça inconsciemment mais j'ai du me reconnaitre dedans ....

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/04/2009, 12h29
  2. 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
  3. simplification calcul puissance et modulo
    Par Gotman-B dans le forum Delphi
    Réponses: 5
    Dernier message: 23/05/2007, 18h23
  4. Random, Modulo et calcul décimaux
    Par Omion dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/01/2007, 19h24
  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