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 :

d�claration et initialisation d'une matrice


Sujet :

C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 168
    Par d�faut d�claration et initialisation d'une matrice
    bonjour � tous,

    il y a un truc que je comprend pas. Voici une portion abr�g� de mon programme :

    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
     
    // ...
     
    // déclarations des variables globales :
    int a ;
    const int b = 2*a ;
    const int c = a*a ;
    int matrice[b][b][c];
     
    // déclaration du prototype de la fonction :
    void f1();
     
    int main()
    {
         // ... (lors de ces instructions, la variable 'matrice' n'est pas appelé)
         f1 ;
         // ... 
         return 0 ;
    }
     
    void f1()
    {
         cout << "Entrer une valeur entière pour 'a' : " << flush ;
         cin >> a ;
         // vérification si la valeur entrer pour 'a' est bien entière
    }
    remarque :
    j'ai essay� de plac� la d�claration de ma matrice sous la fonction principale 'main', r�sultat ... aucun changement malheureusement.

    En gros le bute de cette partie de mon programme, c'est que ce soit l'utilisateur du programme qui choisisse une valeur pour 'a', ensuite 'a' est pris en compte dans initialisations des varaibles constantes, jusque l� pas de probl�me mais ensuite il veut pas prendre les variables 'b' et 'c' comme dimension de ma matrice ... pourquoi ???

    merci d'avance pour les r�ponses.

  2. #2
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    jusque l� pas de probl�me mais ensuite il veut pas prendre les variables 'b' et 'c' comme dimension de ma matrice ... pourquoi ???
    Parce que ton code est n'importe quoi.
    matrice est d�j� d�finie avant, changer les param�tres de sa d�finition ne va pas la r�d�finir. D'ailleurs d�finir la taille d'un tableau avec une variable n'est pas permis en C++98.
    Apprends les bases quand m�me avant de venir poser des questions.

    Enfin bref, d�j�, ton truc c'est pas une matrice mais un tableau de tableaux de tableaux de int, ce qui n'est m�me pas en bijection avec une matrice comme l'aurait �t� un tableau de tableaux de int.
    Une matrice s'utiliserait d'ailleurs avec une classe sp�ciale et un joli operator().

  3. #3
    Expert confirm�
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par d�faut
    b et c doivent �tre connus � la compilation, ce qui n'est pas le cas ici puisque a ne l'est pas.
    Ce code compile si on remplacepar mais ce n'est �videmment pas une solution � ton probl�me.
    Il faut voir du cot� de l'allocation dynamique ou des std::vector de la STL(voir FAQ)

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    D�cembre 2005
    Messages
    168
    D�tails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 168
    Par d�faut
    ...ton truc c'est pas une matrice mais un tableau de tableaux de tableaux de int...
    (citation de loufoque)

    ne t'inqui�te surtout pas, je sais bien que ma matrice est en faite un tableau de tableau de tableau d'entier (enfin de 'int' pardon) ... mais bon si t'aime pas le nom de 'matrice' que je lui aie donn� et que t'as envie de chipoter sur le nom de mon tableau de tableau de tableau ... aucun probl�me !!! Tu as qu'� remplacer le terme de 'matrice' par 'matrice tridimentionnel' ou 'truc' comme tu l'appel si gracieusement mais sa change fondamentalement rien au probl�me.

    en faite encore merci pour ta r�ponse loufoque mais elle me sert stictement � rien et ... ne t'inqui�te pas j'ai quand m�me quelque base et j'ai vu une fois une mani�re qui permet de r�soudre mon probl�me en mettant quelque chose avant qui permettait de dire que 'a' allait �tre d�terminer par la suite dans le programme mais je ne sais plus comment, c'est pouquoi je me permet de le poster sur ce forum.

  5. #5
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    Pour les tableaux � plusieurs dimensions il vaut mieux utiliser boost.multi_array.

  6. #6
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Voire boost.ublas ou Blitz++ pour les calculs num�riques intensifs.

    Quand aux bases ... tout le monde ne sait pas forc�ment que les VLA sont propres au C99. Il faut dire qu'un certain compilo en mode non p�dantique laissent passer.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. D�claration et initialisation d'une variable
    Par micjal dans le forum Visual C++
    R�ponses: 6
    Dernier message: 23/04/2014, 18h42
  2. Initialisation d'une matrice
    Par brindacier dans le forum MATLAB
    R�ponses: 3
    Dernier message: 06/03/2007, 19h03
  3. Probl�me d'initialisation d'une matrice ?
    Par wilval dans le forum C
    R�ponses: 5
    Dernier message: 04/02/2007, 16h13
  4. [VB.Net]D�claration et initialisation d'une variable
    Par DonF dans le forum Windows Forms
    R�ponses: 6
    Dernier message: 14/11/2006, 20h05
  5. R�ponses: 4
    Dernier message: 17/10/2005, 19h57

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