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

avec Java Discussion :

Lire 3 nombres et trouver le plus grand


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 115
    Points : 46
    Points
    46
    Par défaut Lire 3 nombres et trouver le plus grand
    Bonjour,

    Je suis débutant en Java. Je suis en train de faire un exercice "Lire 3 nombres et trouver le plus grand." Quelqu'un peut m'aider?

    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
    public class exercice5
     {
    public static void main (String [] args)
     {
    int max=0;
    int i;
     
    for (i=0;i<7;i++)
    {
    if (i>0)
    System.out.println ( "L'entier vaut 0\n" ) ;
    else
    if (max>1)
    System.out.println ( "L'entier vaut 1\n" ) ;
    else
    if (max>2)
    System.out.println ( "L'entier vaut 2\n" ) ;
    else
    if (max>3)
    System.out.println ( "L'entier vaut 3\n" ) ;

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Je ne vois pas le rapport entre le code que tu as posté et le sujet de ton exercice.

    Pour lire un nombre sur la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Scanner sc = new Scanner(System.in);
    int nb = sc.nextInt();
    Ensuite c'est pas compliqué.
    Un tableau de 3 int.
    Une boucle pour saisir les 3 int (Code ci-dessus).
    Une boucle pour trouver le maximum des 3 int.

  3. #3
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    Ton exemple est un cas particulier parce que le max de 0 à 7 c'est 7 ^_^°,
    Dans l'idée il faut que tu passes par une variable temporaire, j'illustre avec un tableau de 3 valeurs.

    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
     
    ArrayList<Integer> tab = new ArrayList<Integer>();
    tab .add(3);
    tab .add(7);
    tab .add(2);
     
    // on initialise à la première valeur du tableau
    int max = tab.get(0);
    int temp = tab.get(0);
     
    for (int i=0;i<7;i++)
    {
    System.out.println("Valeur max: "+ max);
     
    if ( temp > max)
    max = temp;
    else
    System.out.println("La valeur lu est plus petite que la valeur max");
    }
     
    temp = tab.get(i);
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 115
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Merci! J'ai essayé avec le code que tu m'as proposé, mais à la fin, la variable "i" ne marche pas, je ne comprends pas pourquoi, elle est bien déclaré.


    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
     
    import java.util.Scanner;
    import java.util.ArrayList;
    public class exercice5
    { 		 Scanner sc = new Scanner(System.in);
    		 int nb = sc.nextInt(); 
     
         public static void main (String [] args)
         {
        	 ArrayList<Integer> tab = new ArrayList<Integer>();
        	 tab .add(3);
        	 tab .add(7);
        	 tab .add(2);
     
        	 // on initialise à la première valeur du tableau
        	 int max = tab.get(0);
        	 int temp = tab.get(0);
     
        	 for (int i=0;i<7;i++)
        	 {
        	 System.out.println("Valeur max: "+ max);
     
        	 if ( temp > max)
        	 max = temp;
        	 else
        	 System.out.println("La valeur lu est plus petite que la valeur max");
     
        	 }
        	 temp = tab.get(i);
     
         }
    }

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Parce que "i" n'est visible que dans la boucle for. Et si tu déplace temp = tab.get(i); dans la boucle, tu auras une Exception car i sera égal à 4 qui est supérieur à l'indice existant de la liste.

    A+.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Et si ça pourrait t’intéresser plus tard, --> faq.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 115
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Et si ça pourrait t’intéresser plus tard, --> faq.
    Merci, je vais lire.

    J'ai modifié, pour lire 10 nombres, mais pour max j'ai la valeur 3 pas la valeur 9... Qu'est-qu'il faudrait que je modifie?

    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
    import java.util.Scanner;
    import java.util.ArrayList;
    public class exercice5
    { 		 Scanner sc = new Scanner(System.in);
    		 int nb = sc.nextInt(); 
     
         public static void main (String [] args)
         {
        	 ArrayList<Integer> tab = new ArrayList<Integer>();
        	 tab .add(3);
        	 tab .add(7);
        	 tab .add(2);
        	 tab .add(4);
        	 tab .add(5);
        	 tab .add(1);
        	 tab .add(8);
        	 tab .add(9);
        	 tab .add(6);
        	 tab .add(0);
     
        	 // on initialise à la première valeur du tableau
        	 int max = tab.get(0);
        	 int temp = tab.get(0);
     
        	 for (int i=0;i<0;i++)
        		 temp = tab.get(i);
        	 System.out.println("Valeur max: "+ max);
        	 { 
        	 if ( temp > max)
        	 max = temp;
        	 else
        	 System.out.println("La valeur lu est plus petite que la valeur max");
        	 }
         }
    }

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    for (int i=0;i<0;i++)
    temp = tab.get(i);
    Et tu penses que ça ira dans la boucle, et tu sais ce que contient le bloc de la boucle for
    Ne met pas en dure aussi la taille de la boucle mais utilise la méthode size de List.

    A+.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Tu ne rentres pas dans ta boucle for

    à remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int i=0;i<tab.size();i++)

  10. #10
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Oui c'est une erreur de ma part, l'erreur se situe toujours au niveau des accolades :

    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
     
        ArrayList<Integer> tab = new ArrayList<Integer>();
    	 tab .add(3);
    	 tab .add(7);
    	 tab .add(2);
    	 tab .add(4);
    	 tab .add(5);
    	 tab .add(1);
    	 tab .add(8);
    	 tab .add(9);
    	 tab .add(6);
    	 tab .add(0);
     
    	 // on initialise à la première valeur du tableau
    	 int max = tab.get(0);
    	 int temp = tab.get(0);
     
    	 for (int i=0;i<tab.size();i++){
    		 temp = tab.get(i);
    		 System.out.println("Valeur max: "+ max);
     
    		 if ( temp > max)
    			 max = temp;
    		 else
    			 System.out.println("La valeur: "+tab.get(i)+" lu est plus petite que la valeur max");
    	 }
    sa doit être mieux.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 115
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par Mathieu.J Voir le message
    Tu ne rentres pas dans ta boucle for

    à remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int i=0;i<tab.size();i++)
    J'ai remplacé, mais j'ai le même résultat...

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 115
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par XxArchangexX Voir le message
    Oui c'est une erreur de ma part, l'erreur se situe toujours au niveau des accolades :

    sa doit être mieux.
    Oui, merci, c'est mieux, mais j'ai un résultat comme ça:
    Valeur max: 3
    La valeur lu est plus petite que la valeur max
    Valeur max: 3
    Valeur max: 7
    La valeur lu est plus petite que la valeur max
    Valeur max: 7
    La valeur lu est plus petite que la valeur max
    Valeur max: 7
    La valeur lu est plus petite que la valeur max
    Valeur max: 7
    La valeur lu est plus petite que la valeur max
    Valeur max: 7
    Valeur max: 8
    Valeur max: 9
    La valeur lu est plus petite que la valeur max
    Valeur max: 9
    La valeur lu est plus petite que la valeur max

    Moi, je voudrais seulement: Valeur max: 9

  13. #13
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    La valeur max affichée plusieurs fois c'est le max trouvé à chaque iteration. As-tu essayé au moins de comprendre ce que l'on te donne au lieu de faire des copier/coller ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i=0;i<tab.size();i++){
    		 temp = tab.get(i);
     		 if ( temp > max)
    			 max = temp;
    	 }
     System.out.println("Valeur max: "+ max);
    A+.

  14. #14
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Ne le prend pas mal mais effectivement il faut que tu étudies un peu les bases, se sont les System.out.println qui affiche sur ta console des informations.


    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
     
     ArrayList<Integer> tab = new ArrayList<Integer>();
    	 tab .add(3);
    	 tab .add(7);
    	 tab .add(2);
    	 tab .add(4);
    	 tab .add(5);
    	 tab .add(1);
    	 tab .add(8);
    	 tab .add(9);
    	 tab .add(6);
    	 tab .add(0);
     
    	 // on initialise à la première valeur du tableau
    	 int max = tab.get(0);
    	 int temp = tab.get(0);
     
    	 for (int i=0;i<tab.size();i++){
    		 temp = tab.get(i);	 
    		 if ( temp > max)
    			 max = temp;
    	 }
     
    	 System.out.println("valeur max: "+max);
        }
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 115
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    La valeur max affichée plusieurs fois c'est le max trouvé à chaque iteration. As-tu essayé au moins de comprendre ce que l'on te donne au lieu de faire des copier/coller ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (int i=0;i<tab.size();i++){
    		 temp = tab.get(i);
     		 if ( temp > max)
    			 max = temp;
    	 }
     System.out.println("Valeur max: "+ max);
    A+.
    Oui, j'ai essaié, seulement je suis vraiment débutant (ça fait quelques jours que j'ai commencé) est ce n'est pas facile pour moi, mais je veux apprendre.

    Merci!!

  16. #16
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par harkrisz Voir le message
    Oui, j'ai essaié, seulement je suis vraiment débutant (ça fait quelques jours que j'ai commencé) est ce n'est pas facile pour moi, mais je veux apprendre.

    Merci!!
    ça me rappel un truc,
    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 115
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par XxArchangexX Voir le message
    Ne le prend pas mal mais effectivement il faut que tu étudies un peu les bases, se sont les System.out.println qui affiche sur ta console des informations.
    Merci! Est-ce que tu connais un site où les bases sont bien expliqués?

  18. #18
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Si tu viens juste de commencer je comprend que tu es du mal. Tu as les tutoriels et la FAQ du site qui sont bien. Pour ma part j'ai appris durant ma scolarité donc je n'ai pas de ressources précise à te donner.

    Pour préciser ma pensée les bases je veux dire la compréhension de la visibilité des variables, un bloc,un objet, l'héritage avant de commencer à faire des traitements. Des notions que tu retrouves dans tous les langages pour certains terme mais avoir le vocabulaire avant de passer à la rédaction. J'en reviens au début, même sans ressources précise je pense que dans les livres ou les liens pour débutant java tu dois avoir l'explication de ces termes du moins j'espère.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  19. #19
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Salut,

    Avec les 3 int a b et c contenant les 3 valeurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                if( (a > b) && (a > c) )
                   valMax = a;
                else
                   if( (b > a) && (b > c) )
                      valMax = b;
                   else
                      valMax = c;
     
                System.out.println("valeur maxi saisie: " + valMax + "\n");
    Ou bien, si tes 3 valeurs (ou plus) sont dans un tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
             int[] leTableau = {8, 12, 7, 134, 312, -18};
             Arrays.sort(leTableau); //import java.util.Arrays;
             System.out.println("La valeur la plus grande est: " + leTableau[leTableau.length -1]);
     
             System.out.println("La valeur la plus petite est: " + leTableau[0]);
    Cordialement,

    Dan

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

Discussions similaires

  1. [XL-2003] Trouver le plus grand parmi ceux commençant par "J1"
    Par Walt51 dans le forum Excel
    Réponses: 9
    Dernier message: 23/09/2013, 13h14
  2. trouver la plus grande date
    Par xander412 dans le forum Hibernate
    Réponses: 2
    Dernier message: 31/07/2010, 18h15
  3. quel algorithme pour trouver le plus grand sous arbres commun à des arbres?
    Par iwky911 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 20/05/2009, 21h08
  4. trouver la plus grande occurence d'un tableau
    Par tiboo dans le forum Langage
    Réponses: 2
    Dernier message: 20/04/2007, 13h54
  5. Trouver le plus grand numero
    Par lepeule dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/12/2006, 14h59

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