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 :

Blocage pour une sélection de nombre pair


Sujet :

avec Java

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 85
    Points : 100
    Points
    100
    Par défaut Blocage pour une sélection de nombre pair
    blocage pour une sélection de nombre pair
    Salut
    On m'a demandé de faire un td concernant les Piles dans un tableau

    1) Il s'agit d'empiler une Pile (où des nombres ont été sélectionnés de façon aléatoire) et l'afficher
    2)Puis de sélectionner uniquement les nombres pairs et les afficher.

    J'ai fait le 1) mais je bloque pour le 2)....Si vous avez des suggestions, ce serait sympa de me les faire partager...
    Merci

    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
    import java.util.*;
     
    class PileTab2
    {
    	int taille=3;
    	int[]tab=new int[taille];
     
    	int hauteur; //nombre d'entiers ranges
            Random rand = new Random();
           // int tabs= rand.nextInt(100);
     
    	public void afficheA()
    	{
     
    		for(int i=0;i<taille;i++)
    		{
    			int tabs=rand.nextInt(10);
    			this.empiler(tabs);
    			//System.out.print(""+tabs+" ");
    		}
     
    			System.out.println("");
    	}
     
    	public void empiler(int tabs)
    	{
    		if(hauteur==taille)
    		{
    			taille++;
    			int[] tabBis=new int[taille];
     
    			for(int i=0;i<hauteur;i++)
    			{
    				tabBis[i]=tab[i];
    				tab=tabBis;
    			}
     
    			tab[hauteur]=tabs;
    			hauteur++;
    		}
    		System.out.print(" "+tabs+" ");
     
    		this.PilePair(tabs);
    	}
     
    	public void PilePair(int tabs)
    	{
    		int[] tabBis=new int[taille];
     
    		for(int i=0;i<hauteur;i++)
    		{
     
    			if((tabs%2)==0)
    			{
    				tabBis[i]=tabs;
    			}	
    		}
     
    		tab=tabBis;
    		System.out.println("");
    		System.out.println ("liste de pairs "+tab+"");
    		System.out.print (tab+" ");
     
    		}
     
    	public static void main(String[]args)
    	{
    		PileTab2 Pt=new PileTab2();
    		Pt.afficheA();
    	}
     
     
    }

  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
    Il y a quelques erreurs d'algorithme dans ton code.

    Ceci fonctionne chez moi.
    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
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Random;
     
    class PileTab2 {
    	private static final int TAILLE=12;
    	int[]tab=new int[TAILLE];
     
    	int hauteur; //nombre d'entiers ranges
            Random rand = new Random();
           // int tabs= rand.nextInt(100);
     
    	public void afficheA() {
     
    		for(int i=0;i<TAILLE;i++) {
    			int valeur=rand.nextInt(10);
    			this.empiler(valeur);
    		}
     
    		System.out.println ("liste "+ Arrays.toString(tab)+"");
    		int[] tabPairs = recupererPairs(tab);
    		System.out.println ("liste de pairs "+ Arrays.toString(tabPairs));
    	}
     
    	public void empiler(int valeur) {
    		if(hauteur<TAILLE) {
    			tab[hauteur++]=valeur;
    		}
    	}
     
    	public int[] recupererPairs(int[] tableau) {
    		List<Integer> listePairs = new ArrayList<Integer>(); // Utiliser un Set pour supprimer les doublons si besoin
    		for(int i=0;i<tableau.length;i++) {
    			if((tableau[i]%2)==0) {
    				listePairs.add(tableau[i]);
    			}	
    		}
    		int[] tabPairs = new int[listePairs.size()];
    		int i = 0;
    		for(Integer valeur : listePairs) {
    			tabPairs[i++] = valeur.intValue();
    		}
    		return tabPairs;
    	}
     
    	public static void main(String[]args) {
    		PileTab2 Pt=new PileTab2();
    		Pt.afficheA();
    	} 
    }

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 85
    Points : 100
    Points
    100
    Par défaut
    Salut
    merci pour le code
    mais il tourne bizarrement..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    java PileTab2a 
     0 
    liste de pairs [I@1bc4459
    [I@1bc4459  8 
    liste de pairs [I@12b6651
    [I@12b6651  2 
    liste de pairs [I@4a5ab2
    [I@4a5ab2

  4. #4
    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
    Utilise Arrays.toString(tab) pour afficher un tableau.

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 85
    Points : 100
    Points
    100
    Par défaut
    ça marche nickel

    Merci beaucoup

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

Discussions similaires

  1. Action groupée pour une sélection de fichiers
    Par BenjGe dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 05/08/2010, 21h26
  2. [Toutes versions] [VBA] Convertir une chaine en Range pour une sélection de colonnes
    Par Aurelangelo dans le forum Macros et VBA Excel
    Réponses: 34
    Dernier message: 14/04/2009, 15h37
  3. Excel pour une simulation de nombres ?
    Par Joubarbe dans le forum Excel
    Réponses: 2
    Dernier message: 13/07/2008, 21h03
  4. Besoin d'un conseil pour une sélection Access/fichier
    Par Oluha dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/03/2005, 19h10
  5. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 16h32

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