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

Java Discussion :

Comment ignorer le dernier chiffre saisi ?


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Par défaut Comment ignorer le dernier chiffre saisi ?
    Salut,

    J'ai un programme qui doit ""lire des valeurs comprises entre 10 et 30 et affiche ensuite les trois valeurs les plus petites, par ordre croissant. Le nombre de saisit doit être au moins 3 et se termine dès que la valeur introduite est égale à 0"

    Je suis coincé sur la partie ou le programme se termine en saisissant 0, il ne doit pas prendre en considération la valeur zero autrement la valeur la plus petite sera toujours zero.

    Est-ce que quelqu'un a une petite idée comment faire ? Ci-dessous le code source:
    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
    75
    76
    77
    78
    import ch.comem.cours.ap.WinConsole;
     
    public class Exercice3
    {
    	static final int min = 10;
    	static final int max = 60;
    	static int valeur;
    	static int valeurMin1;
    	static int valeurMin2;
    	static int valeurMin3;
     
        public static void main(String[] args) 
        {
        	saisit();
        	tri();
    	}
    	// saisit utilisateur
    	public static void saisit()
    	{
    		int compteur = 1;
     
    		do{		
     
    			valeur = lireInteger("Introduisez le nombre no. " + compteur + " : ");
    			valeurMin1 = valeur;
    			valeurMin2 = valeur;
    			valeurMin3 = valeur;
     
    			if(valeur != 0 && (valeur < 10 || valeur > 60))
    			{
    				do{
     
    					WinConsole.writeLine("Nombre faux ! Recommencez !");
    					valeur = lireInteger("Introduisez le nombre no. " + compteur + " : ");
     
    				}while(valeur < 10 || valeur > 60);
    			}
     
    			else if(compteur <= 3 && valeur == 0)
    			{
    				do{
     
    					WinConsole.writeLine("Vous devez introduire au moins 3 nombres ! Recommencez !");
    					valeur = lireInteger("Introduisez le nombre no. " + compteur + " : ");
     
    				}while(compteur > 3 && valeur == 0);
    			}			
    			++compteur;	
     
    		}while(valeur != 0);
    	}
     
    	public static void tri()
    	{
    		if(valeur == 0)
    		{
     
    			if(valeur < valeurMin1)			
    				valeurMin1 = valeur;
     
    			else if((valeurMin2 - valeurMin1) > (valeurMin3 - valeurMin1))			
    				valeurMin2 = valeur;
     
    			else if((valeurMin2 - valeurMin1) < (valeurMin3 - valeurMin1))
    				valeurMin3 = valeur;
     
    			WinConsole.writeLine("Valeur minimal = " + valeurMin1);
    			WinConsole.writeLine("Valeur minimal = " + valeurMin2);
    			WinConsole.writeLine("Valeur minimal = " + valeurMin3);
    		}
    	}
     
    	public static Integer lireInteger(String valeur)
        {
            WinConsole.write(valeur);
            return WinConsole.readInt();
        }
    }
    Merci !

    Cordialement,
    David!

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Problème d'algorithme ?...
    Tu peux t'inspirer de ceci, très compact
    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
     
    package test.algorithme;
     
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
     
    public class Test
    {
        /**
         * @param args
         */
        public static void main(String[] args)
        {
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
            List<Integer> values = new ArrayList<Integer>();
            boolean leave = false;
     
            while (!leave)
            {
                int value = getInputValue(reader);
                switch (value)
                {
                case -1 :
                    System.out.println("La valeur entrée n'est pas un nombre !");
                    break;
                case 0 :
                    if (values.size() < 3) System.out.println("Vous devez saisir au minimum 3 valeurs");
                    else leave = true;
                    break;
                default :
                    if (value < 10 || value > 60) System.out.println("La valeur DOIT être comprise entre 10 et 60");
                    else values.add(value);
                }
            }
     
            String message = "Dans la liste " + values + ", les 3 valeurs les plus petites sont :";
            Collections.sort(values);
            int count = 0;
            for (Integer v : values)
            {
                message += " " + v.toString();
                if (++count == 3) break;
            }
            System.out.println(message);
        }
     
        public static int getInputValue(BufferedReader reader)
        {
            try
            {
                System.out.println("Saisissez un nombre entre 10 et 60 : ");
                return Integer.parseInt(reader.readLine());
            }
            catch (Exception e)
            {
                return -1;
            }
        }
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Bien OButterlin, j'ai essayé de résoudre cet algorithme, mais tu était plus rapide .
    j'ai fait un Coup d’oeil dans le code et je l'ai tester,
    Il répond au besoin et tout marche bien

Discussions similaires

  1. [FAQ] Les formulaires (partie 2) : Comment n'autoriser que la saisie de chiffres dans un champ texte ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 4
    Dernier message: 18/11/2013, 22h34
  2. [JavaScript] [FAQ][MAJ] Comment n'autoriser que la saisie de chiffres dans un champ texte?
    Par Bisûnûrs dans le forum Contribuez
    Réponses: 8
    Dernier message: 10/01/2012, 19h08
  3. [XL-2003] comment récupérer les 4 dernier chiffres d'une cellule
    Par bosk1000 dans le forum Excel
    Réponses: 4
    Dernier message: 27/08/2009, 16h34
  4. Réponses: 2
    Dernier message: 13/08/2007, 13h02
  5. Comment connaître le dernier noeud d'un TreeView ?
    Par marie253 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 02/09/2004, 14h15

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