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

C# Discussion :

c# tableau a deux dimensions


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Par défaut c# tableau a deux dimensions
    salut
    je n'arrive pas a bien me servir des tableaux a plusieurs dimension. En fait je dispose d'une structure Vorlesung:

    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
     public struct Vorlesung
        {
            private int nummer;
     
            public String Dozent { get; set; }
            public String kurzbezeichnung { get; set; }
     
     
     
     
            private int Nummer
            {
                get
                {
                    return nummer;
                }
            }
     
     
            public Vorlesung(int nummer)
                : this()
            {
                this.nummer = nummer;
            }
     
            public Vorlesung(String kurzbezeichnung,String nummer)
                : this()
            {
                this.kurzbezeichnung = kurzbezeichnung;
                this.nummer=nummer
            }
     public Vorlesung(String kurzbezeichnung,int nummer, String dozent)
                : this()
            {
                this.kurzbezeichnung = kurzbezeichnung;
                this.nummer=nummer
                this.dozent=dozent
            }
        }
    je dispose aussi d'une énumération Tags:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enum Tags { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
    d'une classe Vorlesungseinheit:

    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
     class Vorlesungseinheit
        {
            private Vorlesung gilles;
            public Vorlesung Gilles
            {
                get
                {
                    return gilles;
                }
            }
            public String Raum { get; set; }
     
            public Vorlesungseinheit(Vorlesung gilles, String raum)
            {
                this.gilles = gilles;
                this.Raum = raum;
            }
        }
    je dois ensuite implémenté une classe Vorlesungsplan dont Vorlesungsplan lui même est un array a deux dimensions dont les éléments sont de type Vorlesungseinheit:
    i- la première dimension presénte les jours
    ii- la deuxième présente les blocks de cours ie de 1 á 6

    je ne sais pas comment m'y prendre. j'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public class Vorlesungsplan
        {
            Vorlesungsplan[,] plan = new Vorlesungsplan[,] { { Tags.Monday }, { Tags.Tuesday }, { Tags.Wednesday }, { Tags.Thursday }, { Tags.Friday }, { 1, 2, 3, 4.5, 6 } };
    mais mes élement ne sont pas de type vorlesungseinheit, bref je suis............

    merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    J'ai pas tout compris à ton histoire, et les identifiants en allemand ça aide pas

    Citation Envoyé par gilles81 Voir le message
    je dispose aussi d'une énumération Tags:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enum Tags { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
    Ca ce n'était pas nécessaire : cette énumération existe déjà, exactement identique à part le nom : DayOfWeek

    je ne sais pas comment m'y prendre. j'ai essayé ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public class Vorlesungsplan
        {
            Vorlesungsplan[,] plan = new Vorlesungsplan[,] { { Tags.Monday }, { Tags.Tuesday }, { Tags.Wednesday }, { Tags.Thursday }, { Tags.Friday }, { 1, 2, 3, 4.5, 6 } };
    mais mes élement ne sont pas de type vorlesungseinheit, bref je suis............
    [/QUOTE]

    Ca n'a pas vraiment de sens ce que tu as écris... Déjà, si tu veux que le tableau contienne des éléments de type Vorlesungseinheit, il faut le déclarer comme un tableau de Vorlesungseinheit et pas comme un tableau de Vorlesungsplan.
    Ensuite, si tu essaies de l'initialiser en une fois tu vas t'y perdre : il vaut mieux créer le tableau en indiquant sa taille, puis le remplir.
    Enfin, les indexes de tableau sont forcément des entiers, ils ne peuvent pas être des Tags. Si tu veux utiliser des jours comme index dans le tableau, manipule les comme des entiers de 0 (dimanche) à 6 (samedi)

    Au final tu peux faire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public class Vorlesungsplan
        {
            Vorlesungsplan[,] plan = new Vorlesungsplan[6,7]; // 6 blocs de cours, 7 jours dans la semaine
            for (int bloc = 0; bloc<6; bloc++) // Pour chaque bloc de cours :
            {
                for (int jour = 0; jour < 7; jour++)
                {
                    plan[bloc, jour] = new Vorlesungsplan(gilles, raum);
                }
            }
        }
    }
    (en remplaçant gilles et raum par des valeurs pertinentes...)

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Par défaut
    en fait je veux obtenir un turc du genre:
    monday tuesday....
    1

    2

    ...

    j'ai pensé a créer deux constructeur dans la calsse vorlesungsplan:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public Vorlesungsplan(int bloc)
           {
               this.bloc = bloc;
           }
           public Vorlesungsplan(Tags jour)
           {
               this.jour = jour;
           }
    en j'ai essaye ceci:



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    plan[0,0] = new Vorlesungsplan(Tags.Monday);
                    plan[1,0] = new Vorlesungsplan(1);
                    plan[0, 1] = new Vorlesungsplan(Tags.Tuesday);
                    plan[1, 1] = new Vorlesungsplan(2);
    je n'obtiens toujours pas ce que je veux

  4. #4
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Par défaut
    Au risque de paraitre réellement bête je ne vois pas trop ou est le souci...
    la réponse de Tomlev est correct...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     public class Vorlesungsplan
        {
            Vorlesungsplan[,] plan = new Vorlesungsplan[6,7]; // 6 blocs de cours, 7 jours dans la semaine
            for (int bloc = 0; bloc<6; bloc++) // Pour chaque bloc de cours :
            {
                for (int jour = 0; jour < 7; jour++)
                {
                    plan[bloc, jour] = new Vorlesungsplan(gilles, raum);
                }
            }
        }
    }
    il initialise un tableau de type Vorlesungsplan puis l'instancie avec les éléments dont tu as besoin.


    de plus quand tu dis tu n'obtiens pas ce que tu veux : tu a un message d'erreur ?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    pourquoi faire 2 constructeurs qui permettent chacun de définir une seule propriété ?
    Il vaudrait mieux en faire un seul avec 2 paramètres (jour et bloc). Ou alors tu fais un constructeur sans paramètre et tu définis les propriétés après avoir instancié l'objet

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2006, 17h25
  2. Un string dans un tableau de deux dimensions...
    Par FinalSpirit dans le forum C++
    Réponses: 5
    Dernier message: 15/01/2006, 14h29
  3. [PERL] Trier un tableau a deux dimensions
    Par piregwan dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2005, 22h29
  4. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  5. Réponses: 13
    Dernier message: 13/10/2005, 16h03

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