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 :

tableau à 2 dimensions


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Points : 12
    Points
    12
    Par défaut tableau à 2 dimensions
    Bonsoir tout le monde !

    Je vous fais appel à vous car je bloque sur mon programme.
    En effet si j'affiche ce tableau à 2 dimensions:

    300
    000
    300

    je n'arrive pas à obtenir le suivant:

    -300
    -300
    -300

    ou bien pour prendre un autre exemple si j'ai:

    0400
    0000
    0040
    0000

    pour parvenir à:

    0 -4 0 0
    0 -4 0 0
    0 -4 -4 0
    0 0 0 0

    Donc si vous avez quelques idées elles sont les bienvenues !

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Un tableau à deux dimensions se déclare comme ceci :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int[][] a = new int[24][];
                a[0] = new int[15];
                a[0][1] = 12;
    Par contre je n'ai pas du tout compris ce que tu veux ...

  3. #3
    Membre habitué Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Points : 156
    Points
    156
    Par défaut
    je ne suis pas sur d'avoir bien compris mais je pense que c'est ça que tu souhaite, non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for (int i = 0; i < tab.GetLength(0); i++)
    {
            for (int j = 0; j < tab.GetLength(1); j++)
            {
                      if (tab[i, j] > 0)
                              tab[i, j] = -tab[i, j];
            }
     }

  4. #4
    Membre actif Avatar de el_pedro
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 200
    Points : 236
    Points
    236
    Par défaut
    J'ai rien pigé à ce qui est demandé...

  5. #5
    Membre habitué Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Points : 156
    Points
    156
    Par défaut
    si c'est pour faire un "chemin" de la première valeur positif à la suivante avec l'opposé de cette valeur, ça donne ça en très gros (marche pas si la première valeur est en haut à droite par rapport à la 2ème, c'est juste une idée de conception, quoi que sacrément usine à gaz...)

    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
     
    int startlong  = 0;
    int startlarg  = 0;
    int startvalue  = 0;
    int endlong  = 0;
    int endlarg  = 0;
    bool find1 = false;
    bool find2 = false;
     
    int i = 0;
    while (i <  tab.getlength(0) || (!find1 && !find2))
    {
           int j = 0;
           while (j < tab.getlength(1) || (!find1 && !find2))
           {
                   if (tab[i, j] > 0)
                        if (!find1)
                        {
                               find1 = true;
                               startlong = i;
                               startlarg = j;
                               startvalue = tab[i, j];
                        }
                        else if (tab[i, j] == value  && !find2 && find1)
                        {
                               endlong = i;
                               endlarg=j;
                         }
           }
           i++;
    }
     
    for (int a=startlong; a<=endlong; a++)
    {
           tab[a, startlarg] = -startvalue;
    }
    for (int b=startlarg; b<=endlarg; b++)
    {
          tab[endlong, b] = -startvalue;
    }

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut
    Citation Envoyé par el_pedro Voir le message
    J'ai rien pigé à ce qui est demandé...
    idem

    thelpi est bien courageux de faire des suppositions sur ce que notre ami veut...

Discussions similaires

  1. [Collections] lecture tableau 2 dimensions
    Par heloise dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 30/09/2004, 10h49
  2. [tableau à 2 dimensions] association String et float
    Par LoLoSS dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/07/2004, 10h53
  3. Tableau à n dimensions
    Par youb dans le forum MFC
    Réponses: 10
    Dernier message: 13/05/2004, 14h13
  4. Passage d'un tableau à deux dimensions
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 20/10/2003, 14h50
  5. Réponses: 23
    Dernier message: 21/08/2003, 07h16

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