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

Langage C++ Discussion :

allocation dynamique d'un tableau triangulaire


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Par défaut allocation dynamique d'un tableau triangulaire
    salut

    en c++ pour allouer un tableau il faut faire ça
    mais quelqu'un m'expliquer comment faire pour allouer dynamiquement un tableau triangulaire dans un petit exemple

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par high_koko Voir le message
    ...un tableau triangulaire...
    Un tableau triangulaire ? Tu peux expliquer ce que tu attends vraiment parce que sinon, cela n'existe pas (ou alors pas sous cette appellation)
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Par défaut
    comme
    crée un tableau bidimensionnel triangulaire ou les nombres d'éléments
    varie d'une rangé à autre c.à.d pour rangé 0 on a un seul élément
    et de façon générale la rangé i on a (i+1) éléments

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    OK, je viens de comprendre ce que tu veux faire.

    Non, ce n'est pas possible, tu es obligé de faire un tableau carré (ou rectangulaire) et d'ignorer certaines cases.

    Ou alors, c'est plus économe en mémoire mais un peu plus délicat en calcul, tu fait un tableau à une dimension (une ligne) mais par contre, c'est à toi de bien gérer les indices.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Par défaut
    merci
    mais dire comment faire et quoi ecrire

  6. #6
    Invité
    Invité(e)
    Par défaut
    Ton tableau triangulaire aura n(n+1)/2 éléments (n étant la base du triangle), pour l'allouer tu feras donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    double *tab=new double[n*(n+1)/2];
     
    ou
     
    vector<double> tab(n*n+1)/2);
    La façon dont tu accèderas tes éléments dépend de la facon dont tu stockes tes données (triangulaire supérieure ou inférieure), mais si tu as un triangle comme ca

    *
    **
    ***
    ****

    etc...

    alors l'élément de coordonnée tab(i,j) (i<=j, les indices comptés de zéro), est en position (i(i+1)/2+j) (taille du triangle qui le précède plus position dans la ligne).

    Tu peux donc définir une fonction du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    double elem(int i,int j {
    return tab[i*(i+1)/2+j];
    }
    Pour faire mieux, tu pourrais aussi définir ta matrice diagonale comme une classe, et redéfinir son opérateur []... (en faisant que tab[i] renvoie un pointeur sur le premier élément de chaque ligne)

    Francois

Discussions similaires

  1. [debutant] allocation dynamique d'un tableau.
    Par méphistopheles dans le forum Débuter
    Réponses: 3
    Dernier message: 16/03/2007, 12h45
  2. Réponses: 2
    Dernier message: 05/03/2007, 18h37
  3. Réponses: 67
    Dernier message: 13/02/2007, 18h08
  4. Réponses: 13
    Dernier message: 01/10/2006, 00h25
  5. [PRO*C] Allocation dynamique d'un tableau de VARCHAR
    Par NéalZheimer dans le forum Interfaces de programmation
    Réponses: 5
    Dernier message: 07/07/2006, 13h02

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