Algo: maximum de 2 ou 3 entier
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Algo: maximum de 2 ou 3 entier



  1. #1
    invited66ae163

    Algo: maximum de 2 ou 3 entier


    ------

    Bonsoir,
    Je dois écrire deux Methodes l'une qui calcule le maximum de 2 entiers, et l'autre qui calcule le maximum de 3 entiers. Bien sur pour gagner en efficacité je dois utiliser la première fonction, pour la deuxième. Mais je ne sais pas trop comment faire, si quelqu'un pouvez m'aider. Merci !



    Code:
    public class MaxEntier { 
    public static void main(String args[]) { 
    int nb1, nb2; 
    System.out.println("Entrer un entier:");
    nb1=Clavier.saisirInt();	
    System.out.println("Entrer un entier:");
    nb2=Clavier.saisirInt();	
    if (nb1 > nb2) 
    System.out.println("l’entier le plus grand est "+ nb1); 
    else 
    System.out.println("l’entier le plus grand est "+ nb2); 
    } 
    }
    Voilà la première partie celle pour deux entier, je pensais mettre la fonction de deux entier dans celle de trois, mais comment?

    -----

  2. #2
    invitee75a95d8

    Re : Algo: maximum de 2 ou 3 entier

    Bonjour,

    Dans la façon dont tu as procédé pour déterminer le max de 2 entiers, ce n'est pas réutilisable pour le cas à 3 entiers.

    Tu dois créer une fonction du type
    Code:
    public int MAX (int valeur1 , int valeur2)
    à laquelle tu fais appel dans ton main qui se contente de gérer l'acquisition du clavier et l'affichage du résultat.

    Ensuite, avec 3 entiers, tu procède dans ton main à la saisie des 3 valeurs au clavier, puis appel à ta fonction MAX(nb1, nb2) qui te donne une valeur intermédiaire, puis à nouveau appel à MAX(valeur_intermediaire , nb3)

    Si j'en dis plus, j'ai peur de faire tout l'exercice à ta place... j'espère que ça va te mettre sur la voie.

  3. #3
    invited66ae163

    Re : Algo: maximum de 2 ou 3 entier

    Je bloque au niveau de l'écriture déja pour 2 entier ( c'est nouveau pour moi):

    Code:
    public class MaxEnt { 
    public static void main(String args[]) { 
    int nb1, nb2; 
    System.out.println("Entrer un entier:");
    nb1=Clavier.saisirInt();	
    System.out.println("Entrer un entier:");
    nb2=Clavier.saisirInt();	
    System.out.println("l’entier le plus grand est "+ Max(int nb1 , int nb2) ); 
    } 
    
    
    public int Max(int valeur1 , int valeur2) {
    int valeur1, valeur2, maximum; 
    if (valeur1 > valeur2){ 
    maximum = valeur1; 
    return maximum;
    }
    else {
    maximum= valeur2; 
    return maximum;
    } 
    }
    }

  4. #4
    invitee75a95d8

    Re : Algo: maximum de 2 ou 3 entier

    Tu fais beaucoup trop de déclarations de variables. Je corrige :

    Pour le if...else, j'ai simplifié, c'est plus propre

    PS : essaies d'indenter, ça rend tout ça beaucoup plus lisible...

    Code:
    public class MaxEnt { 
    	public static void main(String args[]) { 
    		int nb1, nb2; 
    		System.out.println("Entrer un entier:");
    		nb1=Clavier.saisirInt();	
    		System.out.println("Entrer un entier:");
    		nb2=Clavier.saisirInt();	
    		System.out.println("l’entier le plus grand est "+ Max(nb1 , nb2) ); 
    	} 
    
    
    	public int Max(int valeur1 , int valeur2) {
    		int maximum = 0 ; //il faut initialiser au risque de ne pas avoir de retour valable (message d'erreur possible à la compilation) 
    		if (valeur1 > valeur2){ 
    			maximum = valeur1; 
    		}
    		else {
    			maximum= valeur2; 
    		}
    		return maximum;
    	} 
    }

  5. A voir en vidéo sur Futura
  6. #5
    invited66ae163

    Re : Algo: maximum de 2 ou 3 entier

    Merci j'ais compris mes erreurs de déclarations et j'avais vu entre temps que je pouvais simplifier le if...else, cependant à la compilation j'ais une erreur ligne 8:

    Code:
    Max.java:8: non-static method Max(int,int) cannot be referenced from a static context
    		System.out.println("l’entier le plus grand est "+ Max(nb1 , nb2) ); 
                                                                      ^

  7. #6
    invited66ae163

    Re : Algo: maximum de 2 ou 3 entier

    Pense tu que c'est bon ?:

    Code:
    public class Max3 { 
    	public static void main(String args[]) { 
    		int nb1, nb2,nb3, intermediaire; 
    		System.out.println("Entrer un entier:");
    		nb1=Clavier.saisirInt();	
    		System.out.println("Entrer un entier:");
    		nb2=Clavier.saisirInt();
    		System.out.println("Entrer un entier:");
    		nb3=Clavier.saisirInt();
    		intermediaire= Max(nb1 , nb2);
    		System.out.println("L’entier le plus grand est "+ Max2(intermediaire , nb3) ); 
    	} 
    
    
    	public static int Max(int valeur1 , int valeur2) {
    		int maximum = 0 ; 
    		if (valeur1 > valeur2){ 
    			maximum = valeur1; 
    		}
    		else {
    			maximum= valeur2; 
    		}
    		return maximum;
    	} 
    
    
    	public static int Max2(int interm1 , int nombre3) {
    		int maxi = 0 ; 
    		if (interm1 > nombre3){ 
    			maxi = interm1; 
    		}
    		else {
    			maxi= nombre3; 
    		}
    		return maxi;
    	} 
    }
    Et encore Merci de ton aide ^^

  8. #7
    invite2d7144a7

    Re : Algo: maximum de 2 ou 3 entier

    Bonjour,

    Pourquoi avoir créé 2 fonctions Max et Max2 qui font le même travail ?

    Tu vois bien qu'à part les noms des variables locales, c'est exactement le même code.

  9. #8
    invited66ae163

    Re : Algo: maximum de 2 ou 3 entier

    Je procède comment alors pour que la même fonction Max (et non deux) retourne des résultats différents ? Merci.

  10. #9
    invited66ae163

    Re : Algo: maximum de 2 ou 3 entier

    J'ais enfin compris:

    Code:
    public class Max3 { 
    	public static void main(String args[]) { 
    		int nb1, nb2,nb3, intermediaire; 
    		System.out.println("Entrer un entier:");
    		nb1=Clavier.saisirInt();	
    		System.out.println("Entrer un entier:");
    		nb2=Clavier.saisirInt();
    		System.out.println("Entrer un entier:");
    		nb3=Clavier.saisirInt();
    		intermediaire= Max(nb1 , nb2);
    		System.out.println("L’entier le plus grand est "+ Max(intermediaire , nb3) ); 
    	} 
    
    
    	public static int Max(int valeur1 , int valeur2) {
    		int maximum = 0 ; 
    		if (valeur1 > valeur2){ 
    			maximum = valeur1; 
    		}
    		else {
    			maximum= valeur2; 
    		}
    		return maximum;
    	} 
    
    }
    Merci !

Discussions similaires

  1. Problème du plus court chemin ( Algo de dijkstra, algo A*)
    Par invite5a18c7d1 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 12/06/2010, 11h25
  2. estimation du maximum de vraisemblance (Maximum Likelihood)
    Par Bartolomeo dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 02/06/2009, 14h47
  3. aide algo
    Par invitec2ca608a dans le forum Électronique
    Réponses: 0
    Dernier message: 30/05/2009, 22h26
  4. algo
    Par invite71e41d1a dans le forum Discussions scientifiques
    Réponses: 2
    Dernier message: 28/01/2009, 23h29
  5. Chercher Algo
    Par invite717d01ee dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 15/03/2007, 18h24
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...