Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2326 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  retourner un tableau 2d d une fct

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

retourner un tableau 2d d une fct

n°2252428
abbl1
Posté le 06-03-2015 à 11:27:23  profilanswer
 

bonjour,
j essais d avoir une matrice 3*3 comme return d une fct mais je n y arrive pas et c est important que ca soit ca parseque je suis en train de reecrire un code python en c++ c est difficile de tout changer apres voila ce que j ai esseye de faire  
float** toMatrix() {
float mat[3][3]; float a ; float b ; float c ; float d ;
 
a=R; b=I; c=J; d=K;
 
mat[0][0]= a*a+b*b-c*c-d*d; mat[0][1]= 2*(b*c-a*d); mat[0][2]= 2*(a*c+b*d);
 
mat[1][0]= 2*(b*c+a*d); mat[1][1]= a*a-b*b+c*c-d*d; mat[1][2]=2*(c*d-a*b);
 
mat[2][0]= 2*(b*d-a*c); mat[2][1]=2*(a*b+c*d); mat[2][2]=a*a-b*b-c*c+d*d;
 
return mat;
 
 
 
}  
et apres j ai ca  " error: cannot convert 'float (*)[3]' to 'float**' in return return mat;"  
est ce que quelqu un pourrais m aider ?
merci

mood
Publicité
Posté le 06-03-2015 à 11:27:23  profilanswer
 

n°2252518
vckbm
tu destroye tout le monde
Posté le 07-03-2015 à 20:10:53  profilanswer
 

Salut, difficile de bien comprendre ton problème.
A titre d'information, tu peux éditer ton message avec des balises de code <cpp></cpp> entre crochets [] ça aide la lecture et augmente la probabilité de réponse.
 
Si ta matrice est toujours de dimensions 3x3, tu peux utiliser le code suivant :
 

Code :
  1. // example for HFR                                                                                                                                 
  2. #include <iostream>
  3. using namespace std;
  4. void tomatrix(const double &A, const double &B, const double &C, double MAT[3][3])
  5. {
  6.   MAT[0][0] = A*A + B*B;
  7.   MAT[0][1] = A*A + B*B;
  8.   MAT[0][2] = A*A + B*B;
  9.   MAT[1][0] = A*A + B*B;
  10.   MAT[1][1] = A*A + B*B;
  11.   MAT[1][2] = A*A + B*B;
  12.   MAT[2][0] = A*A + B*B;
  13.   MAT[2][1] = A*A + B*B;
  14.   MAT[2][2] = A*A + B*B;
  15. }
  16. int main(int argc, char* argv[]){
  17.   double mat[3][3] = {{0.,0.,0.}, {0.,0.,0.}, {0.,0.,0.}};
  18.   double a=1.;
  19.   double b=3.;
  20.   double c=5.;
  21.   tomatrix(a, b, c, mat);
  22. }


Message édité par vckbm le 07-03-2015 à 20:13:30

---------------
A Vendre
n°2252519
vckbm
tu destroye tout le monde
Posté le 07-03-2015 à 20:17:58  profilanswer
 

Je pense que ton problème consiste à passer un tableau 2D comme argument d'une fonction, tu peux faire des recherches google sur ce sujet.
 
Il en n'est pas moins que le code ci dessus est dégueulasse, il faudrait :
 
* soit créer des objets matrice et vecteurs
* soit utiliser des objets matrices et vecteurs en prenant n'importe quelle bibliothèque d'algèbre linéaire -- par ex BLAS --


---------------
A Vendre
n°2252520
bjone
Insert booze to continue
Posté le 07-03-2015 à 20:36:20  profilanswer
 

complètement à l'arrache en mode fatigué:
 
class mat33 {
 
   double m_data[3][3]; /// pod
 
public:
   operator double[3][3] () {
        return m_data;
   }
};
 
mat33 machin() {
 mat33 value; // nrvo
 // truc fait avec value
 return value;
}
 
void pouet( double mat[3][3] ){
 // autre truc fait avec mat
}
 
 
void bidule() {
  mat33 space = machin();
  pouet( space ); // l'operator de cast devrait être appellé
}
 
 
si le compilo peut faire du link-time optimization, il fera un nrvo:
 
void machin( mat33 & value ) {
 // truc fait avec value
}
 
de manière à pas faire de copie pour rien.

pfff, j'ai dit de la merde, oublie :D


Message édité par bjone le 09-03-2015 à 19:05:51
n°2252952
vckbm
tu destroye tout le monde
Posté le 11-03-2015 à 13:06:43  profilanswer
 

Hello, y'a qqu'un? ne me dis pas que tu t'es inscrit juste pour poser une question et disparaître dans la nature ?


---------------
A Vendre
n°2252979
theshockwa​ve
I work at a firm named Koslow
Posté le 11-03-2015 à 17:21:42  profilanswer
 

Code :
  1. struct Matrix
  2. {
  3. // ...
  4. };


Et hop ! Plus de problèmes [:manust]


---------------
last.fm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  retourner un tableau 2d d une fct

 

Sujets relatifs
Javascript Selector / colonne d'un tableauIncrémenter un tableau Excel toutes les minutes
TRI TABLEAU à partir liste déroulante[VBA] [Excel 2010] Retourner un tableau de tableaux dynamiques
Saisie modification d'un tableauEnvois d'un double tableau à une fonction
VBA. Nom de Tableau dynamique.VBA - creer tableau dans word
[Python] Tri tableau 
Plus de sujets relatifs à : retourner un tableau 2d d une fct


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR