Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

Correction sur un code en java

Posté par
Riley
28-01-15 à 16:48

Bonjour à tous,
je reviens à la charge avec un autre problème.
Alors, on me demande de corriger plusieurs lignes de code en java que voici:

public class TesterValider {
    public void testerValider(int grille[][]) {
        Boloean solution = true;
        nbelement = 0;
        // testez le premier élément de la ligne avec les autres éléments de cette même ligne
        for (int i = 0; i < grille.length; i++) {
            int max = grille[i][0];
            for (int e = 1; e < grille[i].length; e++) {
                // on commence par 1, on compare à la valeur max et on s'assure que max est différent de 0.
                if (grille[i][e] = max && max != 0) {
                    solution = false;
                    System.out.println("la grille est non valide ! ");
                    break;
                }

                if (grille[i][e] != 0) {
                    nbelement++;
                }
                max = grille[i][e];
            }
        }
        if (soltion && max < 16) {
            solution = false;
            System.out.println("la grille est non valide ! ");
        }
    }

    public static void main(String[] args) {
        int[][] grille = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {1, 3}, {4, 6}, {7, 9}};
        testerValider(grille);
    }
}

Posté par
Riley
re : Correction sur un code en java 28-01-15 à 16:51

Voici ce que j'ai corrigé, mais il y a trois faute où je ne sais pas quoi faire:

public class TesterValider {
    public void testerValider(int grille[][]) {
        Boolean solution = true;
        int nbelement = 0;
        // testez le premier élément de la ligne avec les autres éléments de cette même ligne
        for (int i = 0; i < grille.length; i++) {
            int max = grille[i][0];
            for (int e = 1; e < grille[i].length; e++) {
                // on commence par 1, on compare à la valeur max et on s'assure que max est différent de 0.
                if (grille[i][e] = max && max != 0) {
                    solution = false;
                    System.out.println("la grille est non valide ! ");
                    break;
                }

                if (grille[i][e] != 0) {
                    nbelement++;
                }
                max = grille[i][e];
            }
        }
        if (solution && max < 16) {
            solution = false;
            System.out.println("la grille est non valide ! ");
        }
    }

    public static void main(String[] args) {
        int[][] grille = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {1, 3}, {4, 6}, {7, 9}};
        testerValider(grille);
    }
}

Posté par
Riley
re : Correction sur un code en java 28-01-15 à 16:54

J'ai essayé de les mettre en gras mais c'est pas top alors je vais les recopier ici:
if (grille[i][e] = max && max != 0) {

ensuite
if (solution && max < 16) {

et pour finir
testerValider(grille);

Posté par
gggg1234
re : Correction sur un code en java 28-01-15 à 17:02

première erreur :
pour tester il faut 2 signes "egal", sinon c'est une affectation

tu dois donc ecrire if (grille[i][e] == max ...)

deuxieme erreur:
a cet endroit du code, max n'est pas cnnue puisque que tu l'a déclarée dans une boucle
tu peux par exemple resoudre ca en faisant

Boolean solution = true; (ligne 3)
int nbelement = 0;
int max= 0;

et en remplacant

int max = grille[i][0];
par
max = grille[i][0]; (ligne 7)

troisieme erreur:
problèeme de sécurité
tu peux resoudre en déclarant ta fonction "main" sans le static

Posté par
gggg1234
re : Correction sur un code en java 28-01-15 à 17:12

tu utilises quel éditeur de code?

Posté par
Riley
re : Correction sur un code en java 28-01-15 à 17:13

J'utilise Eclipse.

Posté par
gggg1234
re : Correction sur un code en java 28-01-15 à 17:15

ok voir mes réponses plus haut alors.

Posté par
Riley
re : Correction sur un code en java 28-01-15 à 17:24

Je te remercie pour ton aide, alors en faisant ce que tu m'as dit j'ai refait le tout et ça me semble correct:

public class TesterValider {
    public void testerValider(int grille[][]) {
        Boolean solution = true;
        int nbelement = 0;
        int max = 0;
        // testez le premier élément de la ligne avec les autres éléments de cette même ligne
        for (int i = 0; i < grille.length; i++) {
             max = grille[i][0];
            for (int e = 1; e < grille[i].length; e++) {
                // on commence par 1, on compare à la valeur max et on s'assure que max est différent de 0.
                if (grille[i][e] == max && max != 0) {
                    solution = false;
                    System.out.println("la grille est non valide ! ");
                    break;
                }

                if (grille[i][e] != 0) {
                    nbelement++;
                }
                max = grille[i][e];
            }
        }
        if (solution && max < 16) {
            solution = false;
            System.out.println("la grille est non valide ! ");
        }
    }

    public void main(String[] args) {
        int[][] grille = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {1, 3}, {4, 6}, {7, 9}};
         testerValider(grille);
    }
}

Posté par
Riley
re : Correction sur un code en java 28-01-15 à 17:26

je l'ai exécuté et ça marche, j'obtient ça:
123456789
456789123
789123456
214365897
365897214
897214365
531642978
642978531
978531642

Encore merci

Posté par
gggg1234
re : Correction sur un code en java 28-01-15 à 18:36

de rien



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !