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

Collection et Stream Java Discussion :

Tableau trié à l'ajout


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut Tableau trié à l'ajout
    Bonjour ,

    Sur ce programme que j'ai écrit qui trie le tableau à chaque ajout d'un élément , la partie trier sans doublon fonctionne très bien mais si je veux addition les mêmes éléments , j'ai pas ce que je devrais avoir , la somme des deux mêmes éléments est incorrecte après des recherches , je suis un peu perdu...

    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
    public class Table_tri_dynamique_sans_doublon 
        public static void main(String[] args) {
     
           //tableau sans doublon croissant
        	char tableau[]=new char[9];
        	int ca[]=new int[9];
            char tabclient[]={'e','b','c','a','l','d','f','b','l'};
            int CA[]={100,200,300,400,500,600,700,800,900};
            int i, j, k = 0, dim;
            boolean verif;
            for (i = 0; i < 9; i++) {
                verif = false;
                for (j = 0; j < k && verif != true; j++) { 
                    if (tabclient[i] != tableau[j]) {
                        if (tabclient[i] < tableau[j]) {                
                            dim = k + 1;
                            if(dim == 9) dim = 8; 
                            while (dim > j) {
                                tableau[dim] = tableau[dim - 1];
                                ca[dim] = ca [dim - 1];
                                dim--;
                            }
                            tableau[j] = tabclient[i];
                            ca[j] = CA[i];
                            k++;
                            verif = true;
                        }
                    }
                    if (tabclient[i] == tableau[j]) {
                        ca[i]=ca[i]+CA[j];
                        verif = true;
                    }
                }
                if (verif != true && k < 9) {
                    tableau[k] = tabclient[i];
                    ca[k] = CA[i];
                    k++;
                }
            }
     
    /*------------------------------------------------------------------*/
            //pour le tableau
            for (i = 0; i < 9; i++) {
                System.out.print(tableau[i] + " ");
            }
            System.out.println();
           // pour les chiffres affaires
            for(i=0; i < 9; i++) {
            	System.out.print(ca[i] + " ");
     
            }
        }
    }
    J'obtiens :
    a b c d e f l // ce qui est bon
    800 1200 600 1200 100 1400 1400 0 0 // ici non

    Merci pour toutes aides , je pense que l'erreur est sûrement petite

    Ps: je sais qu'il existe des méthodes qu'ils font cela en Java mais c'est un entraînement d'algo

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    evitez de nommer deux variable de la même manière (ca et CA), ça vous évitera de les confondre à l'avenir ou d'éviter au lecteur de confondre

    Pour le reste j'ai du mal à comprendre ce que l'algo est censé faire :s Le mieux est d'afficher vos tableaux à chaque étape pour voir ce qui se passe

  3. #3
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Par défaut
    Bonjour,
    pourquoi ne pas utiliser directement un SortedSet ? (TreeSet) pour éviter les doublons et trier automatiquement les données ?
    Sachant que la seule contrainte est de s'assurer que les objets à trier implémentent bien l'interface Comparable ou Comparator, je sais plus
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

Discussions similaires

  1. [Tableaux] Affichage valeur d'un tableau trié
    Par kcizth dans le forum Langage
    Réponses: 1
    Dernier message: 05/01/2006, 15h47
  2. Réponses: 6
    Dernier message: 05/01/2006, 14h23
  3. tableau trié
    Par devdébuto dans le forum C
    Réponses: 3
    Dernier message: 07/11/2005, 18h00
  4. [Tableau][TRI] Tri d'un String[]
    Par zakir dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/03/2005, 17h31
  5. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 17h21

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