afficher un tableau de deux dimension

Voir le sujet précédent Voir le sujet suivant Aller en bas

afficher un tableau de deux dimension

Message  didi le Ven 13 Mar 2009, 17:42

bounjour à tous

je voulais afficher mon tableau à 2 dimension
1 2 3 4
5 6 7 8
9 10 11
mais il affiche comme ça
1
2
3
4
5
..

voici mon code
Code:

import java.util.Scanner;
public class Tab {
        public static void main(String[] args)  {
        Scanner clavier = new Scanner(System.in);
        int ligne;
        int cologne;
        int [][]entier ;
        int compter = 0;

        try  {

        ligne = clavier.nextInt();
        cologne = clavier.nextInt();
        entier = new int[ligne][cologne];
        for (int i = 0; i < ligne; i++) {
                for (int j = 0; j < cologne; j++)      {
                compter = compter + 1;
                entier[i][j] = compter;
        System.out.println(entier[i][j]);
                }
        }
                } catch (Exception e)  {
                  System.out.println("Ce n'est pas un entier ");
                }
        }
}
                                                                                                   

merci pour quel qu'un qui va donner le bon reponse Very Happy

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  vinise le Ven 13 Mar 2009, 18:16

Code:

import java.util.Scanner;
public class Tab {
        public static void main(String[] args)  {
        Scanner clavier = new Scanner(System.in);
        int ligne;
        int cologne;
        int [][]entier ;
        int compter = 0;

        try  {

        ligne = clavier.nextInt();
        cologne = clavier.nextInt();
        entier = new int[ligne][cologne];
        for (int i = 0; i < ligne; i++) {
                for (int j = 0; j < cologne; j++)      {
                    compter = compter + 1;
                    entier[i][j] = compter;
                    System.out.print(entier[i][j]);
                }
                System.out.println("");//ou System.out.print("\r\n");
        }
                } catch (Exception e)  {
                  System.out.println("Ce n'est pas un entier ");
                }
        }
}
                                                                                                   

vinise

Nombre de messages : 30
Age : 28
Prénom : Vincent
Statut : Dit "plomé"
Localisation : bruxelles
Date d'inscription : 20/09/2008

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  nvs le Ven 13 Mar 2009, 18:39

simplement
Code:
System.out.println();
le fait...






_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  didi le Ven 13 Mar 2009, 18:57

[quote="nvs"]simplement
Code:

import java.util.Scanner;
public class Tab {
        public static void main(String[] args)  {
        Scanner clavier = new Scanner(System.in);
        int ligne;
        int cologne;
        int [][]entier ;
        int compter = 0;

        try  {

        ligne = clavier.nextInt();
        cologne = clavier.nextInt();
        entier = new int[ligne][cologne];
        for (int i = 0; i < ligne; i++) {
                for (int j = 0; j < cologne; j++)      {
                compter = compter + 1;
                entier[i][j] = compter;
        System.out.println(entier[i][j] );
/*      System.out.println("");**/
        System.out.println();
        }
        }
                } catch (Exception e)  {
                  System.out.println("Ce n'est pas un entier ");
                }
        }
}
~                                                           

même



Code:

1


2


3


4


5


6


7


8   


9   


10   


11   


12   


didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  nvs le Ven 13 Mar 2009, 19:00

je voulais dire que dans le code de vinisse,
Code:
System.out.println("");
est inutilement lourd, alors que
Code:
System.out.println();
est suffisant Smile





_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  mcd le Ven 13 Mar 2009, 19:28

En gros, didi, ton problème c'est qu'il passe à la ligne trop souvent.
Lis dans l'API la différence entre 'println' et 'print'

mcd

Nombre de messages : 1548
Prénom : Marco
Statut : prof
Localisation : Molenbeek
Date d'inscription : 29/09/2006

http://mcd.namok.be

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  didi le Ven 13 Mar 2009, 23:19

j'arrive pas j'essaié comme - ci
Code:
  String tab = "\t";
        String saut ="\n";
        try  {

        ligne = clavier.nextInt();
        cologne = clavier.nextInt();
        entier = new int[ligne][cologne];
        for (int i = 0; i < ligne; i++) {
                for (int j = 0; j < cologne; j++)      {
                compter = compter + 1;
                entier[i][j] = compter;
  System.out.println(entier[i][j] + tab + saut);

                        }
                }

je sais que print il affiche le valeur que on donne
et println qui va à la ligne

didi

Nombre de messages : 215
Prénom : Dinesh
Statut : Smile
Date d'inscription : 21/01/2009

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  nvs le Ven 13 Mar 2009, 23:59

tu affiches chaque élément dans le corps de la boucle sur j. par contre, tu dois aller à la ligne (affichage, println) après l'affichage de toute une ligne (du tableau), juste avant de passer à la ligne suivante (du tableau). l'indice de ligne (du tableau) et la boucle sur une ligne (du tableau) sont contrôlés par le compteur i. c'est donc dans le corps de la boucle sur i que les changements de ligne (du tableau et à l'affichage) peuvent être aisément gérés, pas dans celle sur j qui passe à la colonne suivante (à l'affichage et dans le tableau) de la même ligne (du tableau) Smile







_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

tableau à deux dimensions

Message  maxmalli le Jeu 29 Oct 2009, 17:37

Bonjour à tous,

Je suis en première mes connaissances sont donc assez limitées, j'essaye de maîtriser les tableaux à 2D (avec un programme qui ne sert absolument à rien ^^) mais là j'ai deux problèmes:

1) comme didi je souhaiterais afficher mon tableau sous forme "matricielle" et je n'y arrive pas...
2) je ne comprends pas pourquoi mais alors que j'utilise une random pour compléter mon tableau, à la grande habitude de java je n'ai que des 0...

Voici mon code:
Code:

import java.util.Scanner;
public class Matrix{
   public static void main (String [] args){
    Scanner clavier=new Scanner(System.in);
    System.out.println("Combien de lignes?");
    int nblignes=clavier.nextInt();
    System.out.println("Combien de colonnes?");
    int nbcolonnes=clavier.nextInt();
    System.out.println("Combien d'affichages?");
    int repet=clavier.nextInt();
    int [][]tab;
    int higher=100;
    int lower=1;
    tab=new int[nblignes][nbcolonnes];
   
      for(int i=0;i==nblignes;i++){
         for(int j=0;j==nbcolonnes;j++){
         tab[i][j]=(int)(Math.random()*(higher-lower))+lower;
         }
      }
      for(int x=0;x<nblignes;x++){
         for(int y=0;y<nbcolonnes;y++){
         int cpt=1;
         cpt ++;
         if(cpt<=nbcolonnes)
         System.out.print(tab[x][y]+" ");
         else
         System.out.println(" ");
         }
      }
   }
}

maxmalli

Nombre de messages : 4
Age : 25
Prénom : Maxime
Statut : étudiant 1ère indus. groupe 1b32
Localisation : Bousval... ça veut dire ce que ça veut dire...
Date d'inscription : 25/09/2009

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  Anthoblack le Jeu 29 Oct 2009, 17:52

Code:
for(int i=0;i==nblignes;i++){
        for(int j=0;j==nbcolonnes;j++){
        tab[i][j]=(int)(Math.random()*(higher-lower))+lower;
        }
      }
Très comique comme implémentation d'une boucle Razz Relis bien ton for...

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  pbt le Jeu 29 Oct 2009, 18:02

Ce que veux dire Anthoblack c'est que la condition du for (l'expression entre les deux Wink doit être vraie si l'on veut entrer dans le corps de la boucle.



_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

implémentation for

Message  maxmalli le Jeu 29 Oct 2009, 18:04

ok, bête faute... (Grrrr...)

ça règle donc le deuxième problème, merci!

maxmalli

Nombre de messages : 4
Age : 25
Prénom : Maxime
Statut : étudiant 1ère indus. groupe 1b32
Localisation : Bousval... ça veut dire ce que ça veut dire...
Date d'inscription : 25/09/2009

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  Anthoblack le Jeu 29 Oct 2009, 18:15

Pour le premier problème, il faut que tu passes à la ligne "\n" à chaque ligne (donc ta première boucle) et que tu fasses un espace entre les colonnes (donc ta deuxième boucle).

Je te laisse corriger ça Smile

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  maxmalli le Jeu 29 Oct 2009, 18:25

là par contre j'ai pas tout compris... tu saurais m'expliquer un peu plus en détail s'il te plaît?

maxmalli

Nombre de messages : 4
Age : 25
Prénom : Maxime
Statut : étudiant 1ère indus. groupe 1b32
Localisation : Bousval... ça veut dire ce que ça veut dire...
Date d'inscription : 25/09/2009

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  Anthoblack le Jeu 29 Oct 2009, 18:39

Si je comprend bien, tu veux afficher ton tableau en ligne et colonne.

Donc il faut bien deux boucles, l'une pour les lignes (i), l'autre pour les colonnes (j).

Tu affiches donc chaque ligne et pour chaque ligne, chaque colonne.
A chaque colonne, tu veux afficher l'élément du tableau, suivi d'un espace. Un simple print (sans ln) sera parfait avec la valeur suivi d'un espace.
Une fois toutes les colonnes affichées, tu vas vouloir passer à la ligne. Donc tu affiches un println (ou un print avec \n) dans ta boucle des lignes, après que les colonnes soient affichées (en dehors de ta boucle j mais dans ta boucle i donc).

Et pour finir, après tes deux boucles, tu n'oublies pas de passer encore à la ligne, pour pas que la suite de ton programme soit écrasé ^^ Mais ça c'est anecdotique Smile


Ça va ?

EDIT :

En fait Maître Van Steenkiste avait déjà tout dit -_-"

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

tableau à deux dimensions

Message  maxmalli le Jeu 29 Oct 2009, 18:45

okééééééééé c'est plus clair, et évidement ça fonctionne... (à se demander à quoi ça sert de chercher des trucs supers compliqués quand il suffit de tirer profit de tes boucles... ^^) merci bcp! bonne soirée!

En fait Maître Van Steenkiste avait déjà tout dit -_-"
ouaip mais j'avais pas compris tout de suite et tu es parvenu au même résultat (le bon) avec d'autres mots dc c'était pas inutile... Very Happy


Dernière édition par maxmalli le Jeu 29 Oct 2009, 18:51, édité 1 fois (Raison : correction de ta derniere intervention)

maxmalli

Nombre de messages : 4
Age : 25
Prénom : Maxime
Statut : étudiant 1ère indus. groupe 1b32
Localisation : Bousval... ça veut dire ce que ça veut dire...
Date d'inscription : 25/09/2009

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  Anthoblack le Jeu 29 Oct 2009, 18:46

maxmalli a écrit:okééééééééé c'est plus clair, et évidement ça fonctionne... (à se demander à quoi ça sert de chercher des trucs supers compliqués quand il suffit de tirer profit de tes boucles... ^^) merci bcp! bonne soirée!
Au plaisir Smile

Anthoblack

Nombre de messages : 764
Age : 28
Prénom : Anthony
Statut : Ex-étudiant
Localisation : Bruxelles
Date d'inscription : 11/03/2008

Revenir en haut Aller en bas

Re: afficher un tableau de deux dimension

Message  Contenu sponsorisé Aujourd'hui à 07:15


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum