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

Android Discussion :

Additionner les chiffres du résultat d'une addition


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Par défaut Additionner les chiffres du résultat d'une addition
    Bonjour à tous et bonne année,

    J'ai fait une activité addition. L'utilisateur note 3 chiffres (avec 3 EditText).
    J'ai un bouton "calcul" et lorsqu'on clique dessus, on obtient le résultat de l'addition (dans un 4è EditText).

    Exemple: 12+12+2410=2434.

    Jusqu'ici ça va.

    Par contre je souhaite maintenant additionner chaque chiffre du résultat jusqu'à n'avoir qu'1 seul chiffre.
    Si je reprends mon exemple, je souhaite faire:
    2+4+3+4= 13
    Dans ce cas il faut encore 1 addition : 1+3=4

    Voici où j'en suis mais je ne vois pas comment faire la suite: récupérer chaque chiffre et les additionner tant que le résultat dépasse 2 chiffres.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    public class Calcul extends Activity {
     
    	private EditText firstNumber, secondNumber, thirdNumber;
    	private TextView total;
    	private Button addButton;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
    	    super.onCreate(savedInstanceState);
    	    setContentView(R.layout.activity_calcul);
     
    	    firstNumber = (EditText) findViewById(R.id.firstNumber);
    	    secondNumber = (EditText) findViewById(R.id.secondNumber);
    	    thirdNumber = (EditText) findViewById(R.id.thirdNumber);
    	    addButton = (Button) findViewById(R.id.addButton);
    	    total = (TextView) findViewById(R.id.total);
     
    	    addButton.setOnClickListener(new View.OnClickListener() {
    	        @Override
    	        public void onClick(View v) {
    	            String firstNumberResult = firstNumber.getText().toString();
    	            String secondNumberResult = secondNumber.getText().toString();
    	            String thirdNumberResult = thirdNumber.getText().toString();
     
    	            Integer totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);
     
    	            total.setText("Total = " + Integer.toString(totalResult));
    	        }
    	    });
        }
     
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.calcul, menu);
            return true;
        }
     
    	public EditText getFirstNumber() {
    		return firstNumber;
    	}
     
    	public EditText getSecondNumber() {
    		return secondNumber;
    	}
     
    	public EditText getThirdNumber() {
    		return thirdNumber;
    	}
     
    	public Button getAddButton() {
    		return addButton;
    	}
     
    	public TextView getTotal() {
    		return total;
    	}
    }
    Merci pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Par défaut
    Ba c'est simple tu fais une boucle avec tant que nombre.length() > 1
    avec nombre ton nombre convertit en String

  3. #3
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Citation Envoyé par clege Voir le message
    Par contre je souhaite maintenant additionner chaque chiffre du résultat jusqu'à n'avoir qu'1 seul chiffre.
    Si je reprends mon exemple, je souhaite faire:
    2+4+3+4= 13
    Dans ce cas il faut encore 1 addition : 1+3=4
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            //Imaginons a la variable qui contient le résultat de la première somme
            int a = 2434;
            int som = 0;
            //Transformer l'entier en String
            String as = Integer.toString(a);
            //Effectuer la somme de tous les éléments de String
            for(int i = 0; i < as.length(); i++){
                som += Integer.parseInt(as.substring(i, i+1));
            }
            System.out.println("Som = "+som);
    Bonne année 2015 à toi.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Par défaut
    Merci pour votre aide.
    J'avance pas à pas. J'ai intégré le bout de code mais ... mal.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    public class Calcul extends Activity {
     
    	private EditText firstNumber, secondNumber, thirdNumber;
    	private TextView total;
    	private Button addButton;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
    	    super.onCreate(savedInstanceState);
    	    setContentView(R.layout.activity_calcul);
     
    	    firstNumber = (EditText) findViewById(R.id.firstNumber);
    	    secondNumber = (EditText) findViewById(R.id.secondNumber);
    	    thirdNumber = (EditText) findViewById(R.id.thirdNumber);
    	    addButton = (Button) findViewById(R.id.addButton);
    	    total = (TextView) findViewById(R.id.total);
     
    	    addButton.setOnClickListener(new View.OnClickListener() {
    	        @Override
    	        public void onClick(View v) {
    	            String firstNumberResult = firstNumber.getText().toString();
    	            String secondNumberResult = secondNumber.getText().toString();
    	            String thirdNumberResult = thirdNumber.getText().toString();
     
    	            Integer totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);        
     
     
    	            total.setText("Total = " + Integer.toString(totalResult));
     
     
    	            int a = totalResult;
    	            int som = 0;
    	            //Transformer l'entier en String
    	            String as = Integer.toString(a);
    	            //Effectuer la somme de tous les éléments de String
    	            for(int i = 0; i < as.length(); i++){
    	                som += Integer.parseInt(as.substring(i, i+1));
    	            }
    	            System.out.println("Som = "+som);
     
     
    	        }
    	    });
        }
     
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.calcul, menu);
            return true;
        }
     
    	public EditText getFirstNumber() {
    		return firstNumber;
    	}
     
    	public EditText getSecondNumber() {
    		return secondNumber;
    	}
     
    	public EditText getThirdNumber() {
    		return thirdNumber;
    	}
     
    	public Button getAddButton() {
    		return addButton;
    	}
     
    	public TextView getTotal() {
    		return total;
    	}
     
    }
    Voyez-vous mon erreur ?

  5. #5
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Citation Envoyé par clege Voir le message
    Voyez-vous mon erreur ?
    Non! Parce que tu n'as pas posté le message d'erreur qui s'affiche dans la console...
    A part quelques conversions de types non justifiées tels que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //ICI
    total.setText("Total = " + Integer.toString(totalResult));
    Alors que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    total.setText("Total = " + totalResult);
    suffirait!
    Mais aussi dans cette expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Integer totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);
    Alors que utiliser int suffirait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int totalResult = Integer.parseInt(firstNumberResult) + Integer.parseInt(secondNumberResult)+ Integer.parseInt(thirdNumberResult);
    Affiche l'erreur qui t'est renvoyée dans le logCat
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Par défaut
    Merci beaucoup à tous pour vos aides.
    En fait il n'y a pas d'erreur dans le logcat.
    Pour le moment, l'avd affiche la même chose qu'au début, cad, 3 edittext le bouton calcul et lors du clic le résultat dans un autre edittext. Comme si le code ajouté n'existait pas. Et malheureusement (ou pas) il y a une raison
    mais je sèche
    je voudrais que le résultat de l'addition soit vérifié et si il dépasse 2 chiffres, alors il soit réaditionné avant d'être affiché.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 149
    Par défaut
    J'ai survolé vite fait ton code, le résultat que tu veux afficher tu essai de l'afficher avec ça ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.out.println("Som = "+som);
    Si c'est le cas ça marchera pas il faut l'afficher dans une view avec un settext

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Autre solution pour faire la somme des chiffres d'un int :

    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
    public static int sumDigits(int input) {
     
      int output;
     
      if ( input<0 ) input = -input;
      if ( input<10 ) {
        output = input;
      }
      else {
        output = 0;
        while( input>0 ) {
          output += input % 10;
          input /= 10;
        }
      }
     
      return output;
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Citation Envoyé par clege Voir le message
    Merci beaucoup à tous pour vos aides.
    En fait il n'y a pas d'erreur dans le logcat.
    Pour le moment, l'avd affiche la même chose qu'au début, cad, 3 edittext le bouton calcul et lors du clic le résultat dans un autre edittext. Comme si le code ajouté n'existait pas.
    Essaie d'afficher le résultat dans Toast...
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  10. #10
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Citation Envoyé par clege Voir le message
    Merci beaucoup à tous pour vos aides.
    En fait il n'y a pas d'erreur dans le logcat.
    Pour le moment, l'avd affiche la même chose qu'au début, cad, 3 edittext le bouton calcul et lors du clic le résultat dans un autre edittext. Comme si le code ajouté n'existait pas. Et malheureusement (ou pas) il y a une raison
    mais je sèche
    je voudrais que le résultat de l'addition soit vérifié et si il dépasse 2 chiffres, alors il soit réaditionné avant d'être affiché.
    Si tu veux voir le resultat dans un EditText, alors ajoute cet EditText dans ton code (Mais aussi dans le fichier xml) puis remplace Sytem.out.println(...) par une affectation à ton EditText...
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

Discussions similaires

  1. Avoir les 4 derniers résultats sur une grande table
    Par Sam31000 dans le forum Requêtes
    Réponses: 5
    Dernier message: 22/08/2012, 13h52
  2. Mettre tous les chiffres en indices sur une colonne
    Par ledisciple dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/08/2011, 15h29
  3. Réponses: 2
    Dernier message: 17/11/2010, 19h55
  4. Réponses: 11
    Dernier message: 14/10/2008, 10h21
  5. Compter les lignes du résultat d'une requete
    Par mfavier dans le forum ASP
    Réponses: 4
    Dernier message: 30/06/2006, 21h05

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