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

avec Java Discussion :

Appel de matrice


Sujet :

avec Java

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    En effet merci. Et pour la question : Pour faire en sorte qu'un caractère soit affichée dans une matrice du type "(" est il obligatoirement nécessaire de passer par le code Ascii ?
    Merci.

  2. #22
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    ben là tu as une matrice d entier tu ne peux pas mettre "(" dedans ...

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    Oui je sais mais il me semble qu'en passant par le code ASCII le caractère ( correspond à un nombre et ca permet ainsi l'affichage non ?

  4. #24
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par Javabad Voir le message
    Oui je sais mais il me semble qu'en passant par le code ASCII le caractère ( correspond à un nombre et ca permet ainsi l'affichage non ?
    Précise ce que tu veux à l'affichage ... on t'aidera

  5. #25
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    Merci c'est gentil. Je veux par exemple que l'on puisse afficher dans ma matrice un caractère ( à la place d'un 0.

  6. #26
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    ben du coup je pense qu'il faudrait que ta matrice devienne une matrice de chaine de caractères... :
    mais on s'éloigne de ce que tu voulais au départ :s :s

  7. #27
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    C'est juste pour savoir en fait. Une question un chiffre est il considéré comme un caractère ?

  8. #28
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    un chiffre c'est chiffre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String s = "1 " ; // c est un caractere
    int i = 1;          // un chiffre ...

  9. #29
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    Donc il est impossible d'afficher un caractère et un chiffre dans une meme matrice ?

  10. #30
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    ben si ta matrice devien une matrice de String du peux afficher ce que tu veux (chiffre , caractere ) car tt sera considéré comme caractère.
    En revanche si tu la garde comme ça ( int[][]mat) ben tu peux afficher que des int désolé

  11. #31
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    Ah ok donc suffit de changer le int en string... Merci.

  12. #32
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par Javabad Voir le message
    Ah ok donc suffit de changer le int en string... Merci.
    Pas seulement !!
    tes tests changent aussi
    mat[i][j] == 0 devient (mat[i][j]).equals("0"))

  13. #33
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    Ok merci. Donc je vais le réécrire en changeant et vous montrer ce que ca donne. Par contre je reviens à la boucle tant que faite dans les messages précédents, elle ne marche pas, la matrice n'est initialisée qu'une seule fois.
    Je parle de cet algo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static void remplacement(int[][]mat,int n,int m, int val){
    int cpt1;
    cpt1=0;
    while(cpt1!=nbre){
    	if (mat[n][m]==0){
    		mat[n][m]=val;
            }
           else{
               System.out.println("Error");
           }
           cpt1=cpt1+1;
    }
     
    }
    Je ne vois pas pourquoi le tant que ne se déclenche pas et que seulement à la fin la matrice soit affichée. Merci d'avance.

  14. #34
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par Javabad Voir le message
    Ok merci. Donc je vais le réécrire en changeant et vous montrer ce que ca donne. Par contre je reviens à la boucle tant que faite dans les messages précédents, elle ne marche pas, la matrice n'est initialisée qu'une seule fois.
    Je parle de cet algo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static void remplacement(int[][]mat,int n,int m, int val){
    int cpt1;
    cpt1=0;
    while(cpt1!=nbre){
    	if (mat[n][m]==0){
    		mat[n][m]=val;
            }
           else{
               System.out.println("Error");
           }
           cpt1=cpt1+1;
    }
     
    }
    Je ne vois pas pourquoi le tant que ne se déclenche pas et que seulement à la fin la matrice soit affichée. Merci d'avance.
    nbre n'est pas initialisé .....

  15. #35
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    cette boucle marche bien , c'est juste qu'elle ne veux rien dire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while(cpt1!=nbre){
    	if (mat[n][m]==0){
    		mat[n][m]=val;
            }
           else{
               System.out.println("Error");
           }
           cpt1=cpt1+1;
    }
    ceci boucle sur la meme case (n,m). Elle boucle en mettant 0 à chq fois dans cette case...

    A mon avis tu dois faire boucler l'appel à cette fonction pas la fonction elle meme...
    Donc plutot ça :
    TANT_QUE il reste des case à 0 FAIRE
    demander les valeurs à l utilisateur (print)
    remplacer cette case par la valeur donné ( remplacer(mat,...) )
    FIN

  16. #36
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    Je l'ai passé en tant que paramètre nbre. Voici l'algo rectifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static void remplacement(int[][]mat,int n,int m, int val, int nbre){
    int cpt1;
    cpt1=0;
    while(cpt1!=nbre){
    	if (mat[n][m]==0){
    		mat[n][m]=val;
            }
           else{
               System.out.println("Error");
           }
           cpt1=cpt1+1;
    }
     
    }
    Jojo je suis d'accord avec toi mais dans l'algo principal je demande à l'utilisateur combien il veut changer de case et je ne voudrais pas que toutes les cases à 0 soit changé...

  17. #37
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    cela revient au même, tu change juste la condition du TANT_QUe. Ca devient :
    TANT_QUE il reste des case à changer FAIRE
    demander les valeurs à l utilisateur (print)
    remplacer cette case par la valeur donné ( remplacer(mat,...) )
    FIN

    tu vois ?

  18. #38
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    Tu veux dire de faire de la sorte :
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    // Remplacement
     
    public class remplacement{
        public static final int MAX= 20 ;
     
     
          public static void creation(int[][]mat){
          int i,j;
          int N=mat.length;
          int M=mat[0].length;
     
          for(i=0;i<N;i++){
              for(j=0;j<M;j++){
           System.out.print(mat[i][j]+"\t");
              }
                System.out.println();
            }
          }
          public static void remplissagemat(int[][]mat,int n,int m,int A){
          int i,j,cpt;      
    	cpt=0;
    	while(cpt!=A){
    		i=(int) (Math.random()*((n-1)+1));
    		j=(int) (Math.random()*((m-1)+1));
     
    	if (mat[i][j]==0){
    		mat[i][j]=(int) (Math.random()*(MAX+1));
    		cpt=cpt+1;
     
            }
          }
        }
     
    public static void remplacement(int[][]mat,int n,int m, int val){
     
    	if (mat[n][m]==0){
    		mat[n][m]=val;
           }
    }
     
     public static void afficher(int[][]mat){
          int i,j;
          int N=mat.length;
          int M=mat[0].length;
     
          for(i=0;i<N;i++){
              for(j=0;j<M;j++){
           System.out.print(mat[i][j]+"\t");
              }
                System.out.println();
            }
          }
     
    //Programme principal.
      public static void main(String [] args){
      System.out.println("Taille du plateau en commencant par le nombre de lignes puis en second le nombre de colonnes");
      int N=Clavier.readInt();
      int M=Clavier.readInt();
    System.out.println(" nombre d'objets ");  
      int A= Clavier.readInt(); // A correspond au nombre d'objets voulu.
      int[][] mat1= new int[N][M];
      System.out.println("Le plateau est le suivant :");
      remplissagemat(mat1,N,M,A);
    creation(mat1);
    System.out.println("Nombres de cases à remplacer");
      int nbre= Clavier.readInt();
    int cpt1;
    	cpt1=0;
    	while(cpt1!=nbre){
    System.out.println("Donnez la ligne et la colonne de la valeur que vous voulez remplacer :");
    int n= Clavier.readInt();
    int m= Clavier.readInt();
    System.out.println("Donnez la valeur à mettre :");
    int val = Clavier.readInt();
    remplacement(mat1,n,m,val);
    cpt1=cpt1+1;
    	}
    afficher(mat1);
      }
    }
    J'ai une petite erreur cependant... Mais les demandes se déclenchent correctement...

  19. #39
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    quel est ton erreur ?

  20. #40
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    En fait c'est bon. Merci beaucoup. C'était une erreur de ma part. Dans 5 minutes je poste l'algo modifié pour que ce soit bon pour les caractères.

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/07/2013, 16h56
  2. appel d'une matrice dans un compteur
    Par sergy01 dans le forum MATLAB
    Réponses: 5
    Dernier message: 22/06/2012, 12h49
  3. VBA: Appeler une Liste/Matrice définie sous Excel
    Par vatfer dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/07/2010, 11h48
  4. appeler une matrice dans une subroutine
    Par brahim20 dans le forum Fortran
    Réponses: 2
    Dernier message: 01/07/2010, 09h51

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