Tableau à 2 dimensions en C# [Résolu]

Messages postés
6
Date d'inscription
dimanche 12 avril 2009
Dernière intervention
6 septembre 2009
- - Dernière réponse : krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
- 11 déc. 2009 à 12:04
Bonjour à tous,
Je voudrais créer, définir et afficher un tableau de caractère( soit the type "char") à 2 dimension, en C#. Je le fais sans problème en Java, mais C# qui est "soit disant" le jumeau de Java, la syntaxe semble différente pour le faire.
VOici mon exemple:
C#:
char[,] matrice = new char[3,3];
...
// soit i pour les rangées et j pour les //colonnes
for(int i=0; i < 3; i++ ){
for(int j=0; j < 3; j++)
matrice[i,j] = ' ';
}
...
// plutard quand je veux l'afficher

for(int i=0; i < 3; i++ ){
for(int j=0; j < 3; j++)
Console.Write(matrice[i,j] + "\t");
}
--> Le programme plante.

Merci infiniment de votre attention.
Salutations.

Phil Dragon
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
72
Date d'inscription
vendredi 16 mai 2003
Dernière intervention
12 août 2009
3
Merci
C# distingue tableaux à plusieurs dimensions et tableaux déchiquetés.

Pour le tableau à deux dimensions c'est :
char [,] CharArray;

Pour le tableau déchiqueté à deux niveaux c'est :
char [][] CharArray;


Pour les tableaux à plusieurs dimensions, tu as une propriété int Rank pour le nombre de dimensions et GetLength (int) pour obtenir la longueur dans la dimension considérée.

Par exemple, pour énumérer la longueur de CharArray par dimensions croissantes :
char[,,,,] CharArray = new char[5, 8, 5, 7, 8];
for (int i = 0; i < CharArray.Rank; i++)
Console.WriteLine (CharArray.GetLength (i));
Console.ReadLine ();


Pour les tableaux déchiquetés, tu dois parcourir les éléments du tableaux. Si tu ne connais pas le rang, tu n'échapperas pas à une fonction récursive. Sinon tu peux faire :
char[][] JaggedCharArray = new char[][]
{
new char[] {'a'},
new char[] {'a', 'b'},
new char[] {'a', 'b', 'c'}
};
foreach (char[] ACharArray in JaggedCharArray)
Console.WriteLine (ACharArray.Length);
Console.ReadLine ();


Mathieu.

Merci Minotthor 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 112 internautes ce mois-ci

Commenter la réponse de Minotthor
Messages postés
7
Date d'inscription
lundi 7 décembre 2009
Dernière intervention
14 décembre 2009
1
Merci
bonjour les amis pouvez-vous indiquer à un débutant comment déclrarer, afficher un tableau et récupérer ses données afin de les utiliser après
je vous remercie d'avance.
Commenter la réponse de anibro
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
1
Merci
Tu te rends bien compte qu'il y a des tonnes d'exemples sur Internet ? Tu te rends compte également qu'il y en a dans mon exemple que j'ai fait pour toi dans ce post ? Tu te rends compte enfin qu'il y a même des exemples sur CE post-ci ?

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
Commenter la réponse de krimog
Messages postés
6
Date d'inscription
dimanche 12 avril 2009
Dernière intervention
6 septembre 2009
0
Merci
Merci, j'ai réussi à le faire fonctionner dans une program plus imple, mais pas dans mon projet. En passant, je ne sais pas si vous savez programmer en Java, mais en Java, pour savoir la longueure d'une rangée c'est matrice.length et d'une colonne c'est matrice[0].length (la valeur de l'indice peut etre 0, 1, 2, ... ou n-1).

En C#, je ne sais pas si Matrice.Lentgh veux dire la même chose et je ne sais pas la syntaxe pour trouver le nombre des colonnes.

J'ai du mettre une valeur pour faire tourner la boucle.
Merci infiniment de votre attention.

Salutations.

Phil Dragon
Commenter la réponse de phildragon
Messages postés
6
Date d'inscription
dimanche 12 avril 2009
Dernière intervention
6 septembre 2009
0
Merci
Merci infiniment Mathieu!
Je vous dois une fière chandelle.

Philippe

Phil Dragon
Commenter la réponse de phildragon
Messages postés
72
Date d'inscription
vendredi 16 mai 2003
Dernière intervention
12 août 2009
-2
Merci
Et bien je sais pas comment tu fais ton compte, parce que chez moi ça marche.

char TestChar = (char)65;
char[,] Matrice = new char[3, 3];
for (int i = 0; i < 3; i++)
{
    for (int j = 0; j < 3; j++)
        Matrice[i, j] = TestChar++;
}
for (int i = 0; i < 3; i++)
{
    for (int j = 0; j < 3; j++)
    Console.Write (Matrice[i, j] + "\t");
} 
Console.ReadLine ();


Ceci affiche les 9 premiers caractères de l'alphabet entre des tabulations, sans problème apparent. Que veux-tu dire par "le programme plante" ? Levée d'exception ou plantage ?

Mathieu.
Commenter la réponse de Minotthor

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.