Tableau à deux dimension [Résolu]

cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 17 janv. 2008 à 14:02 - Dernière réponse : Twinuts 5282 Messages postés dimanche 4 mai 2003Date d'inscription 19 octobre 2018 Dernière intervention
- 18 janv. 2008 à 14:18
bonjour
j'ai déclaré un tableau à deux dimensions comme suit:
//déclaration des variables
String sCmd;
 char nbParamIn, nbParamOut, nbCaracAtt;

char[][] TabComd = new char[10][15];
 char[][] TabComd ={{0,"", 0, 0},
    {nbParamIn,"STA", nbParamOut,nbParamOut},
    {nbParamIn,"RPM", nbParamOut,nbParamOut},
    {nbParamIn,"SBY", nbParamOut,nbParamOut}};

mais il affiche une erreur....

    quelq'un peut me dire comment je doit le déclarer et l'initialiser
      je suis débutante en java,
Merci
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
Twinuts 5282 Messages postés dimanche 4 mai 2003Date d'inscription 19 octobre 2018 Dernière intervention - 18 janv. 2008 à 11:58
3
Merci
Salut,

au plus simple tu fais comme suit :

la classe TParamCmd.java :

public class TParamCmd {
    private byte    nbParamIn;
    private String    idCmd;
    private byte    nbParamOut;
    private byte    nbCaracAtt;

    public TParamCmd(byte nbParamIn, String idCmd, byte nbParamOut,
            byte nbCaracAtt) {
        this.nbParamIn = nbParamIn;
        this.idCmd = idCmd;
        this.nbParamOut = nbParamOut;
        this.nbParamIn = nbParamIn;
    }

    public byte getNbParamIn() {
        return nbParamIn;
    }

    public void setNbParamIn(byte nbParamIn) {
        this.nbParamIn = nbParamIn;
    }

    public String getIdCmd() {
        return idCmd;
    }

    public void setIdCmd(String idCmd) {
        this.idCmd = idCmd;
    }

    public byte getNbParamOut() {
        return nbParamOut;
    }

    public void setNbParamOut(byte nbParamOut) {
        this.nbParamOut = nbParamOut;
    }

    public byte getNbCaracAtt() {
        return nbCaracAtt;
    }

    public void setNbCaracAtt(byte nbCaracAtt) {
        this.nbCaracAtt = nbCaracAtt;
    }

}

l'utilisation :
TParamCmd[] ParamCmd = {
                new TParamCmd((byte) 0, "", (byte) 0, (byte) 0),
                new TParamCmd((byte) 0, "STA", (byte) 0, (byte) 78),
                new TParamCmd((byte) 1, "RPM", (byte) 0, (byte) 8),
                new TParamCmd((byte) 1, "SBY", (byte) 0, (byte) 8) };

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Twinuts
Meilleure réponse
Twinuts 5282 Messages postés dimanche 4 mai 2003Date d'inscription 19 octobre 2018 Dernière intervention - 18 janv. 2008 à 14:18
3
Merci
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>
</title>
<meta name="GENERATOR" content="OpenOffice.org 2.3 (Linux)" />
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
Salut,

le problème c'est
que les struct en java ça n'existe pas... en gros en C++ tu vois que les struct sont plus ou moins
équivalentes à un objet java dans le sens ou tu les considères plus
comme des objets (une struc peut utiliser le mot clé new pour l'instancier, un objet C++ peut hériter d'une struct, etc...); maintenant pour ce qui est de l'initialisation,
en java contrairement au c/c++ tu dois obligatoirement passer par le
constructeur de l'objet (ou les setteurs de ton objet).

PS : Si tu as eu l'aide escompté
merci de valider la ou les réponses qui ont résolus le
problème.









------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Twinuts
KenZara 112 Messages postés vendredi 24 décembre 2004Date d'inscription 20 décembre 2011 Dernière intervention - 17 janv. 2008 à 15:02
0
Merci
    Bonjour,

C'est normal si tes tableaux ont le meme nom ? Sinon essaie de mettre un String, parce qu'à un moment tu fais "SBY" et ca c'est un String il me semble ....

Kenza
Commenter la réponse de KenZara
cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 17 janv. 2008 à 15:41
0
Merci
bonjour

en faite la première ligne c'est la déclaration du tableau:
char[][] TabComd = new char[10][15];

et la deuxième ligne c'est pour initialiser le tableau
char[][] TabComd ={{0,"", 0, 0},
    {nbParamIn,"STA", nbParamOut,nbCaracAtt},
    {nbParamIn,"RPM", nbParamOut,nbCaracAtt},
    {nbParamIn,"SBY", nbParamOut,nbCaracAtt}};

mais vu que un tableau à deux dimensions, il est fait que pour le même type de donnée, mais pour mon cas j'ai un string et un char........

donc la seule solution c'est de créer une classe struct (vu struct en C n'existe pas en java)......mais je ne sais pas commet affecter cette struct comme un tableau........

quelq'un peut me dire s'il y a un exemple sur le net ou sur le forum, si possible de me l'envoyer,
j'éspère que j'ai bien expliqué car je suis débutante......

merci
Commenter la réponse de cs_dunith
KenZara 112 Messages postés vendredi 24 décembre 2004Date d'inscription 20 décembre 2011 Dernière intervention - 17 janv. 2008 à 16:05
0
Merci
    Euuh,

Pour ce qui est de :
char[][] TabComd ={{0,"", 0, 0},
    {nbParamIn,"STA", nbParamOut,nbCaracAtt},
    {nbParamIn,"RPM", nbParamOut,nbCaracAtt},
    {nbParamIn,"SBY", nbParamOut,nbCaracAtt}};
Là tu redéclares ton tableau en char[][] ... Pour faire une simple initialisation tu fais juste un:
TabComd ={{0,"", 0, 0},
    {nbParamIn,"STA", nbParamOut,nbCaracAtt},
    {nbParamIn,"RPM", nbParamOut,nbCaracAtt},
    {nbParamIn,"SBY", nbParamOut,nbCaracAtt}};

Concernant l'équivalent de struct en Java c'est Enum.
Sinon, est ce que tes nbParamIn et Out sont obligatoirement des chars, tu peux mettre un string ou faire :

TabComd ={{0,'', 0, 0},
    {nbParamIn,'STA', nbParamOut,nbCaracAtt},
    {nbParamIn,'RPM', nbParamOut,nbCaracAtt},
    {nbParamIn,'SBY', nbParamOut,nbCaracAtt}};

Je ne sais pas si ça marche ça, à revérifier :)
Commenter la réponse de KenZara
cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 17 janv. 2008 à 16:22
0
Merci
bonjour

après avoir déclaré mon tableau;
je l'ai initialisé comme suit:
TabComd ={{0,'', 0, 0},
    {nbParamIn,'STA', nbParamOut,nbCaracAtt},
    {nbParamIn,'RPM', nbParamOut,nbCaracAtt},
    {nbParamIn,'SBY', nbParamOut,nbCaracAtt}};

mais il me met une erreur: expected

et pourtant je l'ai déclaréau départ?

merci
Commenter la réponse de cs_dunith
KenZara 112 Messages postés vendredi 24 décembre 2004Date d'inscription 20 décembre 2011 Dernière intervention - 17 janv. 2008 à 16:38
0
Merci
Il me semble que tu ne dois pas spécifier la taille de ton tableau quand tu fais des { }.
et qu'il faut faire directement:

char[][] TabComd ={{0,'', 0, 0},
    {nbParamIn,'STA', nbParamOut,nbCaracAtt},
    {nbParamIn,'RPM', nbParamOut,nbCaracAtt},
    {nbParamIn,'SBY', nbParamOut,nbCaracAtt}};

Sinon, tu peux faire un tabComd[1][1] ainsi de suite ...
Commenter la réponse de KenZara
cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 17 janv. 2008 à 17:01
0
Merci
bonjour

l'erreur de tout à l'heure,elle n'est plus, en mettant
comme vous m'avez dit:
char[][] TabComd ={{0,'', 0, 0},
    {nbParamIn,'STA', nbParamOut,nbCaracAtt},
    {nbParamIn,'RPM', nbParamOut,nbCaracAtt},
    {nbParamIn,'SBY', nbParamOut,nbCaracAtt}};

par contre il me met une erreur:
empty character literal : à cause de ''
et unclosed character literal à cause de 'STA', car c'est une chaine de caractère.......

je ne sais pas comment je doit déclaré STA, RPM, SBY qui sont des string qui correspondent aux noms des commandes.

vous avez une idée?
Commenter la réponse de cs_dunith
KenZara 112 Messages postés vendredi 24 décembre 2004Date d'inscription 20 décembre 2011 Dernière intervention - 17 janv. 2008 à 17:11
0
Merci
    Euh pour le empty character met un null à la place,
Concernant les STA Mmmm, c'est assez délicat, vu que c'est carrément un String et que pour convertir tu peux convertir STA en tableau de char de telle sorte que tu auras: 'S', 'T' et 'A' ....
Ma question as tu besoin d'avoir un tableau de chars ? et est ce qu'un tableau de string ne t'aiderait pas ?
Commenter la réponse de KenZara
cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 17 janv. 2008 à 17:22
0
Merci
bonjour;

ce que j'ai compris mettre mon tableau à deux dimensions en string, comme suit
String[][] TabComd ={{0,'', 0, 0},
    {nbParamIn,'STA', nbParamOut,nbCaracAtt},
    {nbParamIn,'RPM', nbParamOut,nbCaracAtt},
    {nbParamIn,'SBY', nbParamOut,nbCaracAtt}};
mais nbParamIn , nbParamOut, nbCaracAtt se sont des bytes et non des string; à part si je vais les convertir en string?

comment vous pensez?
Commenter la réponse de cs_dunith
KenZara 112 Messages postés vendredi 24 décembre 2004Date d'inscription 20 décembre 2011 Dernière intervention - 17 janv. 2008 à 17:28
0
Merci
    Bonjour,

Oui, ca me semble une bonne idée, tu peux les convertir en String ça passera mieux :) ou faire je pense un new String(nbParamOut) par exemple :) ...
Commenter la réponse de KenZara
cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 17 janv. 2008 à 17:33
0
Merci
bonjour

j'ai trouver une méthode de la classe string qui convertit un caractère en chaine de caractère;
c'est la méthode: ValueOf

vous saviez sur cette méthode?

merci
Commenter la réponse de cs_dunith
KenZara 112 Messages postés vendredi 24 décembre 2004Date d'inscription 20 décembre 2011 Dernière intervention - 17 janv. 2008 à 17:38
0
Merci
    Qu'il suffit de faire un valueOf(paramIn) là ou tu veux mettre tes paramIn en String.. Cette fonction te renvoit un String et prend en paramétre, soit un entier / long / char ou Objet ...

Kenza
Commenter la réponse de KenZara
KenZara 112 Messages postés vendredi 24 décembre 2004Date d'inscription 20 décembre 2011 Dernière intervention - 17 janv. 2008 à 17:40
0
Merci
Ca donnerait un truc du style:

    String[][] TabComd ={{0,"", 0, 0},
    {valueOf(nbParamIn),"STA",valueOf( nbParamOut),valueOf(nbCaracAtt)},
ainsi de suite :)
Commenter la réponse de KenZara
cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 17 janv. 2008 à 17:53
0
Merci
bonjour

je l'ai mis mais apparament il ne voit pas cette méthoe ValueOf:
il met cette erreur:cannot resolve symbol ; method ValueOf (byte)
merci
Commenter la réponse de cs_dunith
cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 18 janv. 2008 à 11:31
0
Merci
bonjour

pour le tableau à deux dimensions, j'ai abondonné,
la seule solution est de créer une classe TParamCmd ailleurs, comme suit:

class TParamCmd
{
      public byte nbParamIn; 
       public String idCmd;
       public byte nbParamOut;
       public byte nbCaracAtt;



}

et puis dans ma  classe TATHMProtocole qui est déclarée ailleurs que la précédente:

j'ai déclaré et initialise mon tableau de type TParamCmd, comme suit :
TParamCmd[] ParamCmd = {{0,"", 0, 0},
                                              {0,"STA", 0, 78},
                                              {1,"RPM", 0, 8},
                                              {1,"SBY", 0, 8}};
mais il me mit une erreur : illegal initializer for TParamCmd, à cause des {

vous pouvez me dire comment je dois déclarer et initialise mon tableau de la classe TParamCmd, ou m'envoyer un exemple qui est sur le net.....

merci et encore une fois je suis vraiment débutante de ce langage et je travaille sur l'envoi de commnde de l'API vers les pompes via RS232.

                                                                    
Commenter la réponse de cs_dunith
cs_dunith 100 Messages postés samedi 5 janvier 2008Date d'inscription 11 avril 2008 Dernière intervention - 18 janv. 2008 à 13:40
0
Merci
salut

vous m'avez sauvez.........ça marche nickel......
 j'ai une questionà vous posez:
donc pour déclareret utiliser les struct (en C++),  en Java il faut les déclarer comme vous m'avez montré si dessus? 
merci encore .
Commenter la réponse de cs_dunith

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.