Question de tableau et booleen

Résolu
ZeroenJava Messages postés 4 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 4 novembre 2011 - 3 nov. 2011 à 16:34
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 - 4 nov. 2011 à 17:47
Bonjour, je suis un nouveau en java et j'apprends avec ce qu'internet m'offre. Je désire écrire un programme qui demande a l'utilisateur d'entrée 9 chiffres et ensuite les placer dans une grille 3x3 (peut importe l'ordre)

import java.util.*;
class Projet {

//début de scanner. S'aisir les 9 chiffres par l'utilisateur
public static void scanner (String[] args) {

Scanner clavier = new Scanner (System.in);

System.out.println ("Completer la grille de 9 cases");

for (int i=0; i<9; i++) {
int[][] a = new int [][]; //C'est ici que sa bloque, je ne trouve pas la façon de convertir l'entrée du scanner en grille.


System.out.println("And printed with printArray:");
printArray(a);
} }

//Présentation dans une grille 3x3 des chiffres.
public static void printArray(int[][] a) {
int rows = a.length;
int cols = a[0].length;
for (int row=0; row<rows; row++) {
for (int col=0; col<cols; col++) {
if (col > 0) System.out.print(", ");
System.out.print(a[row][col]);
}
System.out.println();
}
}
}

Merci beaucoup de votre aide!

8 réponses

BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
3 nov. 2011 à 17:05
Hello,
Déjà, utilises les balises code: c'est plus lisible.
Ensuite, un peu de réflexion:
- tu as UNE grille 3x3, donc tu l'initialises UNE fois
- tu dois demander 9 chiffres à l'utilisateur: une boucle for fait bien l'affaire
- pour chaque chiffre:
. tu demandes à l'utilisateur de le saisir
. tu le stockes dans ta grille(attention aux "erreurs" de saisie)
- une fois tes 9 valeurs stockées, tu affiches ta grille

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
ZeroenJava Messages postés 4 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 4 novembre 2011
3 nov. 2011 à 21:23
Merci de ta réponse, j'ai fait plusieurs recherche et j'ai découvert mon erreur!
J'admet que je me suis débrouillé avec quelques exemples pris sur des sites, mais je crois bien comprendre la réflexion de ce qui suit.

//Ceci importe la classe Scanner du package java.util
import java.util.Scanner;

class test123{

public static void main(String[] args){
Scanner input = new Scanner(System.in);
int[][] a = new int[3][3]; //tableau 3x3

System.out.println("Entrée vos 9 chiffres pour compléter la grille 3x3"); //aviser lutilisateur de la demarche
for (int i=0 ; i < a.length ; i++) //boucle pour vérifier la ligne jusqua 3
for (int j=0 ; j < a[i].length ; j++){ //boucle pour vérifier la colonne jusqua 3
a[i][j] = input.nextInt(); //récuperer la saisit
}

System.out.print("grille 3x3"); //présentation de la grille
for (int i=0 ; i < a.length ; i++)
{ System.out.println(); //inscrire 3 chiffres et passer a la prochaine ligne
for (int j=0 ; j < a[i].length ; j++){ //definir les colonne avec une espace entre chaque ligne
System.out.print(a[i][j]+" ");
}
}
}
}

je ne suis pas encore au erreurs de saisit, ça va venir avec la prochaine étape les booleens.
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
4 nov. 2011 à 07:41
Attention, booléen différent de chiffre


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
ZeroenJava Messages postés 4 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 4 novembre 2011
4 nov. 2011 à 13:49
je comprends ce que tu veux dire, je me retrouve avec beaucoup d'erreurs de int ne peut être converti
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ZeroenJava Messages postés 4 Date d'inscription samedi 29 octobre 2011 Statut Membre Dernière intervention 4 novembre 2011
4 nov. 2011 à 17:10
//Ceci importe la classe Scanner du package java.util
import java.util.Scanner;

class Projet{

public static boolean Saisit();{
Scanner input = new Scanner(System.in);
int[][] a = new int[3][3]; //tableau 3x3

System.out.println("Entrée vos 9 chiffres pour compléter la grille 3x3"); //aviser lutilisateur de la demarche
for (int i=0 ; i < a.length ; i++) //boucle pour vérifier la ligne jusqua 3
for (int j=0 ; j < a[i].length ; j++){ //boucle pour vérifier la colonne jusqua 3
a[i][j] = input.nextInt(); //récuperer la saisit
if( (a[][] > 0) && (verif==true) ) //si un chiffre est supérieur a 0 donner reponse true
else verif = false; //sinon false
} return verif; //retourner a verif pour donner la réponse

}

System.out.print("grille 3x3"); //présentation de la grille
for (int i=0 ; i < a.length ; i++)
{ System.out.println(); //inscrire 3 chiffres et passer a la prochaine ligne
for (int j=0 ; j < a[i].length ; j++){ //definir les colonne avec une espace entre chaque ligne
System.out.print(a[i][j]+" ");
}

verif = Saisit ();
System.out.println ("Réponse : " +Saisit);
}

}

}
Mesemble que la logique est bonne non ??? Mais je me retrouve avec plusieurs erreurs
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
4 nov. 2011 à 17:32
Et la balise code?!

for (int i=0 ; i < a.length ; i++)

Si tu connais la taille, pourquoi ne pas la mettre? Idem pour j

if( (a[][] > 0) && (verif==true) )

Manque pas i et j dans tes crochets? Il est déclaré où verif? Et tu fais quoi si la condition est vraie? Et tes parenthèses, tu les mets au hasard??

Je m'arrêtes là et je te laisse revoir ta copie


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
4 nov. 2011 à 17:45
Aller, un petit coup de pouce avant le week-end

import java.util.Scanner;

public class Project {

  public static void main(String[] args) {

  // Déclaration des variables
  Scanner input = new Scanner(System.in); 
  int[][] a = new int[3][3]; //tableau 3x3 
  int i,j;

  // Récupération des valeurs et stockage dans la grille
  System.out.println("Entrée vos 9 chiffres pour compléter la grille 3x3");
  for (i=0; i<3; i++)
    for (j=0; j<3; j++)
      a[i][j] = input.nextInt();

  // Affichage du résultat
  System.out.print("grille 3x3");
  for (i=0; i<3; i++) 
  { 
    System.out.println();
    for (j=0; j<3; j++)
      System.out.print(a[i][j]+" "); 
    } 
  }
}

Attention, je n'ai pas codé la vérification de la saisie

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
BunoCS Messages postés 15330 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 novembre 2022 103
4 nov. 2011 à 17:47
Bon, après relecture, je vois que je n'ai pas mis d'accolade dans la 1ère double boucle. C'est correct, mais c'est pas bien....


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0