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 :

[Debutant] Problème de fraction dans un programme


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut [Debutant] Problème de fraction dans un programme
    Bonjour,

    j'ai commencé la programmation cette année, je débute donc. Pendant les vacances je doit traduire des enoncés d'exercices en C++.

    J'ai réussi a trouver le moyen de résoudre un exo, j'ai écrit l'algorithme et sa n'a evidement pas marché ^^. Alors j'ai cherché où je m'étais planté. Mon exo parle de fractions, et je me suis rendu compte que

    si j'écris par exemple :

    k=2
    m=1/k
    printf("%d",m);

    Il va m'écrire 0

    N'y connaissant pas grand chose en programmation je ne sais pas si c'est normal, si c'est un problème de configuration du logiciel ( Dev-c++ ), ou si je me suis trompé dans mon algorithme.

    Si quelqu'un peut m'expliquer pourquoi un "0" s'affiche ?


    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    la division entière de 1 par 2 donne zéro.
    Utilise des nombres à virgule flottante (float ou double) pour avoir 0.5 (le format de printf n'est pas non plus le même : %f au lieu de %d)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 121
    Points : 63
    Points
    63
    Par défaut
    A daccord merci je n'avais pas compris que sans les virgules flottantes on utilise que les entiers.

    Bon il va falloir que je retourne chercher les commandes pour entrer les virgules flottantes ^^. Par contre avec des approximations je ne suis pas sur que mon programme soit efficace .

  4. #4
    Expert éminent sénior
    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
    Points : 13 926
    Points
    13 926
    Par défaut
    A daccord merci je n'avais pas compris que sans les virgules flottantes on utilise que les entiers
    Ce qu'il faut avoir en tête, c'est que le type d'une grandeur ne détermine pas seulement les valeurs qu'elle peut prendre, mais aussi les opérations qu'on peut lui appliquer. Les types entiers définissent une division (euclidienne) différente de celle des types flottants même si la syntaxe de l'opérateur est similaire. Autre exemple, la soustraction est définie pour les types entiers,(et aussi pour les types flottants) mais aussi pour les types adresses avec un comportement radicalement différent. De fait, ce qui fait le choix d'un type pour une grandeur n'est pas pour l'essentiel lié à sa valeur mais aux opérations qui doivent s'appliquer à cette grandeur
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  5. #5
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Sinon, comme tu programme en c++, si tu veut t'épargner les laborieuses comandes de printf, utilise la librérie std:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <iostream>
     
    in main
    {
      k=2
      m=1.0/k
      std::cout << "Le résultat est : " << m << "\n";
    }
    Mes articles Développez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

Discussions similaires

  1. Problème de sortie dans un programme.
    Par IDE dans le forum C
    Réponses: 8
    Dernier message: 20/05/2007, 18h21
  2. Problème d'angle, dans un programme 3D
    Par Archaoniro dans le forum Moteurs 3D
    Réponses: 3
    Dernier message: 11/08/2006, 09h07
  3. Réponses: 8
    Dernier message: 23/03/2006, 19h30
  4. [Debutant]Problème Insertion Requête dans un StringGrid
    Par ghan77 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/12/2005, 14h25
  5. [Debutant] Problème de sécurité dans un applet
    Par peaceinpal dans le forum Applets
    Réponses: 3
    Dernier message: 09/09/2004, 20h56

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