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

  FORUM HardWare.fr
  Programmation
  C++

  table de connectivité

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

table de connectivité

n°2110616
dianbobo
la bonne note
Posté le 09-11-2011 à 20:22:41  profilanswer
 

Bonjour ,  
je suis débutant en c++ , et je travail sur un projet . voila j'ai un fichier qui contient une matrice (40,4) , telle que la premiere colonne représente les indexes et les 3 autres colonnes des points  
pour chaque ligne i, je voudrais associer l'indexe au 3 points de la ligne .
j'ai déjà pu lire les données via un code que j'ai écris , mais je bloc sur la façon de creer une table de connectivité entre les indexes et les points .  
voici mon code :  

Code :
  1. #include <iostream>
  2. #include<cstdlib>
  3. #include<cstdio>
  4. #include<vector>
  5. #include<stdio.h>
  6. #include<fstream>
  7. #include<math.h>
  8. using namespace std;
  9. int main()
  10. {
  11.     int Nombre_d_elements,b,c;
  12.     int t1[40],t2[40],t3[40],t4[40];
  13.     FILE * f;//FILE* cette fonction permet d'ouvrir un fichier en lecture
  14.     f = fopen("D:/Lesondes/disque.1.ele","r" );//ouverture du fichier contenant les triangles
  15.     //vector<int>index;
  16.     if (f == NULL)
  17.         cout<<"Impossible d'ouvrir le fichier en lecture!"<<endl;
  18.     else
  19.     {
  20.         fscanf(f,"%d %d %d",&Nombre_d_elements,&b,&c);//lecture des 3 premiers entiers dans le fichier
  21.         //definissons les indexes des triangles
  22.             vector<int>index;//vecteur de taille nombre d'éléments
  23.             for (int i=0;i<Nombre_d_elements;i++)
  24.             {
  25.                     //int t1[Nombre_d_elements],t2[Nombre_d_elements],t3[Nombre_d_elements],t4[Nombre_d_elements];
  26.                     fscanf(f,"%d %d %d %d",&t1[i],&t2[i],&t3[i],&t4[i]);
  27.             }
  28.     fclose(f);
  29.     }
  30.     //table de connectivité a l'aide d'une map
  31.   //  map <int,
  32.     cout<<"Nombre_d_elements="<<Nombre_d_elements<<endl<<"b="<<b<<endl<<"c="<<c<<endl;
  33.     for ( int i = 0 ;i<Nombre_d_elements;i++)
  34.     {//int t1[Nombre_d_elements],t2[Nombre_d_elements],t3[Nombre_d_elements],t4[Nombre_d_elements];
  35.      cout<<t1[i]<<""<<t2[i]<<""<<t3[i]<<""<<t4[i]<<endl;
  36.      }
  37.     return 0;
  38. }


 
j'ai pensé à créer une map , qui associerait chaque indexe aux points de la meme ligne mais je ne sais comment le faire  
 
merci de votre aide  

mood
Publicité
Posté le 09-11-2011 à 20:22:41  profilanswer
 

n°2110657
Joel F
Real men use unique_ptr
Posté le 10-11-2011 à 07:32:02  profilanswer
 

ce code est du C.

n°2110671
Un Program​meur
Posté le 10-11-2011 à 09:27:57  profilanswer
 

Joel F a écrit :

ce code est du C.


 
La derniere fois que j'ai regarde, il n'y avait pas de template en C. C'est du C++, pas idiomatique pour un sous, mais c'est du C++.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
n°2110790
dianbobo
la bonne note
Posté le 10-11-2011 à 15:52:38  profilanswer
 

bonjour, :)  
 
Je programme en c++ , pas en c .
en gros je voudrais associé pour tout i , t1[i] à t2[i], t3[i] et t4[i]
j'ai voulu essayé avec une map , j'ai donc ajouté ceci dans mon fichier  

Code :
  1. vector<int>index;//vecteur de taille nombre d'éléments
  2.     vector< vector<int> > Matrix(40,vector<int>(3,0));
  3.     vector< vector<int> >:: iterator it_i;
  4.     vector<int>:: iterator it_j;
  5. for(int i=0; i<Nombre_d_elements; i++)
  6.    {
  7.         Matrix[i][0] = t2[i] ;
  8.         Matrix[i][1] = t3[i] ;
  9.         Matrix[i][2] = t4[i] ;
  10.         index.push_back(t1[i]);//table des elements
  11.         //cout<<Matrix[i][0]<<""<<Matrix[i][1]<<""<<Matrix[i][2]<<endl;
  12. }
  13.     // table de connectivité qui associe l'element aux 3 noeuds qui composent le triangle
  14.     map<int, vector< vector<int> > >Connexion;
  15.     for (int i = 0;i<Nombre_d_elements;i++)
  16.     {
  17.         Connexion[index[i]]= Matrix[i][0];
  18.           Connexion[index[i]] = Matrix[i][1] ;
  19.            Connexion[index[i]] = Matrix[i][2];
  20.     }
  21.     //parcourons la table en faisant une relation entre l'element et ses noeuds
  22.     for(map<int, int>::iterator it_i=Connexion.begin();it_i!=Connexion.end (); ++it_i)
  23. {
  24.             cout << it_i->first << " est associe a" << it_i->second <<endl;
  25. }


 
mais la map  ne fonctionnne pas  :??:

n°2110855
Joel F
Real men use unique_ptr
Posté le 10-11-2011 à 19:31:55  profilanswer
 

Un Programmeur a écrit :


 
La derniere fois que j'ai regarde, il n'y avait pas de template en C. C'est du C++, pas idiomatique pour un sous, mais c'est du C++.


 
Y avait un troll caché obviously :o

n°2111040
Lightness1​024
Posté le 11-11-2011 à 23:33:45  profilanswer
 

c'est deja beau que ca compile, si je lis bien, dans ta derniere boucle tu fais un iterateur de map<int,int> ce qui n'est pas compatible avec une map<int, v<v<int> > > !
deja.
de deux, j'ai l'impression que tu te poses un faux probleme. si tu as une table d'indices alors tu as déjà l'association. un indice te permet d'aller chercher directement la ou il faut dans tes tableaux t1, t2, t3.
 
en gros tes données c'est un vertex buffer de positions 1D et un index buffer quoi c'est bien ca ?


---------------
http://projets.6mablog.com/

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

  table de connectivité

 

Sujets relatifs
Copier une table d'une base dans une autre base donnéebalise TABLE : espace créé au dessus du tableau
Optimiser requête lourde (Copying to tmp table ?)[MySQL] Jointure sur une meme table
[ACCESS/VBA] Remplir une table reliée à une autre automatiquement[RECH] WPF Tutorial datagrid/databinding avec Table Oracle
Execution fonction stockée dans table SQLRécupérer valeurs table MySQL
pb insertion dans une tableAlimentation du Champ d'une table !!
Plus de sujets relatifs à : table de connectivité


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