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 :

Remplir un tableau Chiffre par Chiffre


Sujet :

C++

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2013
    Messages : 7
    Par défaut Remplir un tableau Chiffre par Chiffre
    Bonjour,
    Voila je planche sur un exercice et c'est la partie la plus simple qui m'échappe.
    Je dois donc développer un petit code qui permet à l'utilisateur de saisir un nombre et celui ci lui retourne le poids de chaques chiffres.

    exemple : 979373
    3 : 0 2
    7 : 1 4
    9 : 3 5
    979373

    Tout fonctionne mais on m'a dit de changer le mode de saisie car pour l'instant l'user est obligé de taper chiffre par chiffre en validant pour pouvoir avoir chaque chiffres dans une case du tableau.

    Je cherche comment ( et du coup avec quelles lib/fonctions ) faire que l'user tape son chiffre en entier, le valide, et que celui ci se scinde dans chaque case.

    Sachant que toutes les variables/tableaux sont des unsigned long int.

    Merci M'sieur, Dame !

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Salut,

    Le plus facile est sans doute de récupérer le nombre introduit par l'utilisateur dans une std::string (une chaine de caractères ) et de vérifier ensuite pour chaque caractère de la chaine s'il s'agit bien d'un chiffre.

    La fonction qui te permet de faire cette vérification s'appelle, tout simplement, std::isdigit


    Pour la suite, bah, il "suffira" de passer tous les caractères en revue et de vérifier leur valeur pour les introduire dans ton tableau (ou pour les compter )

    Et le mieux de tout, c'est que tu n'a absolument pas besoin d'une bibliothèque externe : std::string std::isdigit sont fournis directement par la bibliothèque standard.

    Le premier nécessite juste l'inclusion du fichier d'en-tête <string>, le second nécessite l'inclusion du fichier d'en-tête <cctype>
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    si tu veux travailler avec des entiers, tu peux tout simplement utiliser un vector (de taille fixe 10 tant qu'à faire) et des divisions successives.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2013
    Messages : 7
    Par défaut
    Hello =)

    @koala01 : Merci pour la réponse je suis justement en train de voir comment procéder avec ces nouveaux outils . Mais je me pose une question : le tableau que j'ai déclaré est un tableau de (unsigned long) int, si je lui envoie une string même après vérification avec 'isdigit' ne va t'il pas y'avoir un probléme de type ?
    string --> int ?
    Je continue les expérimentations

    @bousk : Merci d'avoir répondu aussi ! J'aimerais savoir comment avec des divisions successives peux tu arriver à avoir le nombre décomposé ?
    Je pensais au début à diviser avec des puissances de dix et ainsi récupérer les nombres unités par unités. Mais je ne vois pas comment isoler les nombres puisque sur 7889 les différentes divisions vont donner 7; 78; 788; 7889.
    Alors qu'il me faut 7; 8; 8; 9.

    Peut être que je cherche trop compliqué pour quelques choses qui parait assez simple

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 635
    Par défaut
    Citation Envoyé par Supay2905 Voir le message
    Hello =)

    @koala01 : Merci pour la réponse je suis justement en train de voir comment procéder avec ces nouveaux outils . Mais je me pose une question : le tableau que j'ai déclaré est un tableau de (unsigned long) int, si je lui envoie une string même après vérification avec 'isdigit' ne va t'il pas y'avoir un probléme de type ?
    string --> int ?
    Mon idée était plutôt de travailler sur un tableau de caractères en fait...

    Mais, si tu veux remplir un tableau d'entier, tu devras effectivement convertir chaque caractère en un entier correspondant

    Du coup, on retombe en effet sur la solution de Bousk
    Je continue les expérimentations

    @bousk : Merci d'avoir répondu aussi ! J'aimerais savoir comment avec des divisions successives peux tu arriver à avoir le nombre décomposé ?
    Je pensais au début à diviser avec des puissances de dix et ainsi récupérer les nombres unités par unités. Mais je ne vois pas comment isoler les nombres puisque sur 7889 les différentes divisions vont donner 7; 78; 788; 7889.
    Alors qu'il me faut 7; 8; 8; 9.

    Peut être que je cherche trop compliqué pour quelques choses qui parait assez simple
    En fait, tu vas devoir travailler "à l'envers" en récupérant à chaque fois le reste de la division de ta valeur par dix (on parle du modulo )

    L'idée est que tu peux récupérer la valeur de l'untié de 7889 (le 9 en l'occurrence ) au travers de l'opérateur % sous une forme proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned lonf resultat = valeur % 10;
    Valeur que tu pourras placer dans ton tableau sans aucun problème.

    Evidemment, une fois que tu auras récupéré ce résultat, tu devras diviser ta valeur originelle par dix, et recommencer tant que ta valeur est plus grande que 10

    Au final, tu récupéreras (pour reprendre le 7889 de ton exemple) un tableau qui contiendra les valeurs
    • 9 comme premier élément
    • 8 comme deuxième et comme troisième élément
    • 7 comme quatrième élément
    Il ne te restera donc plus qu'à décider si cet ordre te convient, si tu dois le prendre "à rebours" ou n'importe quoi d'autre

    Je ne te donnes pas de code ici parce que ce serait un mauvais service à te rendre.

    Par contre, tu as "toute la logique" nécessaire! Logique qui, soit dit en passant, aurait sans doute du te sauter aux yeux

    Maintenant, c'est à toi de jouer
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2013
    Messages : 7
    Par défaut
    Hello =)

    Merci koala, après ton post la lumiére fut !

    J'avais complétement oublié le mod et effectivement suivi d'une petite division tout rentre parfaitement dans le tableau.

    C'est top, merci beaucoup !

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

Discussions similaires

  1. Remplir un tableau élément par élément
    Par Piroh dans le forum Pascal
    Réponses: 4
    Dernier message: 10/02/2015, 15h23
  2. remplir tableau avec 4 chiffres distincts
    Par faomayma1980 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/02/2010, 13h30
  3. Réponses: 6
    Dernier message: 21/03/2007, 14h59
  4. [MySQL] Remplir un tableau par requêtes sql
    Par Melekitto dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/02/2006, 17h30
  5. Réponses: 8
    Dernier message: 17/12/2005, 16h39

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