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 :

Initialiser les éléments d'un tableau.


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut Initialiser les éléments d'un tableau.
    Bonjour à tous, je m’entraîne un peu sur les tableaux et dans un exercice on me demande de compléter une classe. Dans cette dernière on me demande d'initialiser les éléments du tableau à zéro. J'ai essayé de chercher sur internet des infos sur comment modifier les éléments d'un tableau mais j'ai rien trouvé.
    Comment je suis sensé faire ?

    Voici la consigne:

    Dans ce projet, la grille de SUDOKU est composée de 81 cases regroupées dans 9 carrés de 3*3 cases. Jusqu'ici, vous connaissez la notion des tableaux à une dimension. C'est pourquoi nous vous proposons de reprendre un SUDOKU composé d'un tableau à une dimension. Ce tableau est composé de 9 régions de 9 cases. La première région s'étend du premier élément (l'élément qui se trouve à l'indice 0 du tableau) au dernier élément (l'élément qui se trouve à l'indice 8 du tableau) et ainsi de suite.

    Vous allez donc compléter la classe SUDOKU définie ci-dessous et écrire un programme pour le tester. Il est à noter que chaque carré doit contenir des nombres de 1 à 9. Il ne doit pas le même nombre plus d'une fois.

    Voici le code :

    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
    public class Exo4 {
     
     
    	    int grille[];
    	    int n;   //nombre d'élément
    	    String complexite;
    	    int[] tableaufinal;
     
    	    public Sudoku(int n, String complexite) {
    	        this.n = n;
    	        this.grille = new int[n];
    	        this.complexite = complexite;
    	        init();
    	    }
     
    	    /*permet de mettre tous les éléments d'un tableau à 0*/
    	    public void init() {
     
    	        // Vous devez compléter cette partie
    	        //...
     
    	    }
     
    	    /*cette fonction permet de recopier un tableau dans un autre*/
    	    public int[] clonage(int[] tab) {
     
    	        // Vous devez compléter cette partie
    	        //...
     
    	    }
     
    	    /* cette fonction permet de vérifier si une case est libre ou non. */
    	    public boolean libre(int _case, int[] tab, int chiffre) {
     
    	        // Vous devez compléter cette partie
    	        //...
     
    	    }
     
    	}
    Merci d'avance pour le temps consacré à m'aider.

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut
    Voici ce que j'ai fait pour l'instant.
    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
    public class Exo4 {
     
     
    	    int grille[];
    	    int n;   //nombre d'élément
    	    String complexite;
    	    int[] tableaufinal;
     
    	    public Sudoku(int n, String complexite) {
    	        this.n = n;
    	        this.grille = new int[n];
    	        this.complexite = complexite;
    	        init();
    	    }
     
    	    /*permet de mettre tous les éléments d'un tableau à 0*/
    	    public void init() {
    	    	for(int i=0; i < grille.length; i++){
    	    	    grille[i]=0;
    	    	}
     
    	        // Vous devez compléter cette partie
    	        //...
     
    	    }
     
    	    /*cette fonction permet de recopier un tableau dans un autre*/
    	    public int[] clonage(int[] tab) {
    	    	tableaufinal = (int[]) grille.clone();
    	    	return tableaufinal;
     
    	        // Vous devez compléter cette partie
    	        //...
     
    	    }
     
    	    /* cette fonction permet de vérifier si une case est libre ou non. */
    	    public boolean libre(int _case, int[] tab, int chiffre) {
     
    	        // Vous devez compléter cette partie
    	        //...
     
    	    }
     
    	}

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 579
    Par défaut
    Hello,

    .... Le petit problème c'est qu'il y a pas besoin d'initialiser un tableau à zéro, il est déjà à zéro quand tu le crées avec new -_-°.
    Du coup.... Ce qu'il faut faire, après l'avoir créé, c'est juste rien.

    Cela dit, s'il avait fallu l'initialiser à -1, par exemple, ta boucle était pas mal. Tu pouvais aussi utiliser Arrays.fill(grille, -1); .
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut while.dede,

    Ça ressemble fortement à ta question ici. Sauf que dans cette question tu avais des tableaux à deux dimensions et là tu as des tableaux à une dimension.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut
    Merci pour vos conseils, oui en effet en faisant quelques recherches j'avais vu que les tableaux étaient initialisés à zéro, mais je comprend pas pourquoi ils mettent une étape spécifique liée à cette initialisation, vu que ça sert strictement à rien.

    J'ai une dernière petite question, comment je fais pour savoir si une case est vide ou pas?

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Déjà, ça dépend ce que tu entends par case vide. Un tableau est une liste d'éléments de même type : c'est comme si tu créais plusieurs variables et que tu les gérais en un seul block. Donc les règles sur les variables s'appliquent aux éléments de tableaux. Or une variable de type primitif, comme int, dans ton cas, a toujours une valeur. Pour un type classe, il peut éventuellement avoir la valeur null qui pourrait être considéré comme valeur d'une case vide.

    Dans ton cas, à priori, si le but est de mettre des chiffres de 1 à 9 dans un tableau de int, la valeur 0 peut être considéré comme indiquant une case vide (mais on pourrait aussi dire que toutes les valeurs qui ne sont pas comprises entre 1 et 9 inclus sont aussi à considérées comme telles.
    Donc pour savoir si une case est "vide" avec une telle définition, il suffit de faire comme on ferait pour tester la valeur d'une variable int.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut
    Ok donc un truc dans ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public boolean libre(int _case, int[] tab, int chiffre) {
    	    	for(int i=0;i<tab.length;i++)
    	        {
    	        if(tab[i]==chiffre)
    	        {
    	            return true;
    	        }
    	        }
    	        return false;
    	        // Vous devez compléter cette partie
    	        //...
     
    	    }

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Oui, enfin, pas la peine de passer la valeur à chercher en paramètre non plus : tu décides d'une condition sur une case qui signifie "case vide", et tu la codes en dur.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 217
    Par défaut
    D'accord, merci beaucoup pour votre aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/05/2006, 22h23
  2. Lister les éléments d'un tableau
    Par uado dans le forum ASP
    Réponses: 8
    Dernier message: 22/05/2006, 12h02
  3. [Tableaux] Tester les éléments d'un tableau dans un if
    Par Leobaillard dans le forum Langage
    Réponses: 3
    Dernier message: 20/05/2006, 16h07
  4. Réponses: 10
    Dernier message: 27/03/2006, 18h38
  5. Réponses: 4
    Dernier message: 11/01/2006, 09h22

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