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 :

Signification du pointeur this


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Par défaut Signification du pointeur this
    Bonjour à tous,

    Je suis actuellement en cursus physique, et j'essaie de progresser dans la partie Méthodes Numériques appliquées au C++ qui me posent pas mal de problèmes.
    Est ce que parmis vous une ame charitables pourrais m'aider à y voir plus claire?

    Je vous remercie infiniement tous par avance!!

    J'ai mis mes fichier en PJ compressés en ZIP

    Merci encore à tous

    QUESTION 1

    Nom : im1.png
Affichages : 643
Taille : 18,3 Ko


    Je n'arrive pas à utiliser comme demandé le pointeur this* et à l'adapter à ce qui se trouve dans mon squelette de programme (voir SysLin.cpp)

    J'ai trouvé ça pour m'aider mais je n'arrive pas à l'adapter à l'amorce qu'on me donne dans SysLin.cpp dans partie décomposition LU au tout début

    http://www.sanfoundry.com/cpp-progra...on-any-matrix/

    http://www.sci.utah.edu/~wallstedt/LU.htm
    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
    // Crout uses unit diagonals for the upper triangle
    void Crout(int d,double*S,double*D){
       for(int k=0;k<d;++k){
          for(int i=k;i<d;++i){
             double sum=0.;
             for(int p=0;p<k;++p)sum+=D[i*d+p]*D[p*d+k];
             D[i*d+k]=S[i*d+k]-sum; // not dividing by diagonals
          }
          for(int j=k+1;j<d;++j){
             double sum=0.;
             for(int p=0;p<k;++p)sum+=D[k*d+p]*D[p*d+j];
             D[k*d+j]=(S[k*d+j]-sum)/D[k*d+k];
          }
       }
    }
    void solveCrout(int d,double*LU,double*b,double*x){
       double y[d];
       for(int i=0;i<d;++i){
          double sum=0.;
          for(int k=0;k<i;++k)sum+=LU[i*d+k]*y[k];
          y[i]=(b[i]-sum)/LU[i*d+i];
       }
       for(int i=d-1;i>=0;--i){
          double sum=0.;
          for(int k=i+1;k<d;++k)sum+=LU[i*d+k]*x[k];
          x[i]=(y[i]-sum); // not dividing by diagonals
       }
    }

    QUESTION 2

    Nom : im2.png
Affichages : 629
Taille : 24,9 Ko
    J'ai répondu 2

    QUESTION 3
    Nom : im3.png
Affichages : 616
Taille : 30,1 Ko
    D'après le fichier SysLin.h, on peut voir que c'est réponse 5
    La matrice inversible hérite de la matrice carrée
    Images attachées Images attachées  

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 2
    Par défaut Pièce jointe
    Pardon j'ai oublié la pièce jointe
    Merci!
    Méthodes_Num.zip

  3. #3
    Membre éclairé
    Homme Profil pro
    Cocher moderne
    Inscrit en
    Septembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Oman

    Informations professionnelles :
    Activité : Cocher moderne

    Informations forums :
    Inscription : Septembre 2006
    Messages : 50
    Par défaut
    La vache...

    Bon, le calcul matriciel, les matrices inverses, Jacobi, tout ça, on te le laisse, hein?

    En ce qui concerne ta question, le pointeur this pointe sur l'adresse de l'objet lui même. Pour l'accès à ses méthodes ou attributs, on déréférence le pointeur avec *. Ainsi, (*this) désigne l'objet, et on peut accéder à ses méthodes ou attributs... Donc dans ton cas, aux méthodes et attributs de MatriceInversibles (mais ça sert à rien si j'ai bien compris) et aux méthodes "public" et "protected" de MatriceCarree puisqu'il y a héritage.

    Et là ça devient intéressant pour toi, puisque tu peux par exemple appeler les opérateurs et donc utiliser (i, j) qui te donne accès aux valeurs dans la matrice. Je veux la valeur en i, j , j'écris (*this)(i, j). C'est ce qui est expliqué dans les commentaires de SysLin.h.

Discussions similaires

  1. Pointeur this et événement OnClick
    Par Argonz dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/11/2009, 11h32
  2. Réponses: 4
    Dernier message: 02/08/2007, 14h11
  3. Question sur le pointeur this
    Par Core8 dans le forum C++
    Réponses: 4
    Dernier message: 29/03/2007, 14h31
  4. pointeur this - c++ builder
    Par mathieu57 dans le forum C++Builder
    Réponses: 7
    Dernier message: 03/03/2006, 14h19
  5. [MFC] Pointeur this et fonctions statiques
    Par Yellowmat dans le forum MFC
    Réponses: 5
    Dernier message: 08/02/2005, 10h15

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