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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Partiel de C++

n°1569287
Mac-H1
Posté le 03-06-2007 à 14:38:33  profilanswer
 

Reprise du message précédent :
Salut à tous,  
 
desole pour l'absence, j'ai eu vraiment plein de choses a faire ces jrs ci. Concernant le partiel, merci beaucoup à tous pour votre aide. J'ai fait la fin et ai reussi à croiser le prof pour qu'il me corrige tout ça. Visiblement, rien de bien complique. Je dois revenir sur quelques details mais rien d'affolant, je devrai m'en sortir.  
 
Par contre maintenant, je me retrouve avec un projet d'info. Et cette fois, ce sont les listes chainée qui sont a l'honneur.  
 
en effet, je dois representer une matrice creuse. En clair je dois creer une matrice en fonction de ce que l'utilisateur rentrera comme données puis faire des operations.  
 
si l'un d'entre vous a des idées, qu'il n'hesite pas, elles seront les bienvenues.  
 
merci d'avance :)
 

mood
Publicité
Posté le 03-06-2007 à 14:38:33  profilanswer
 

n°1569289
Joel F
Real men use unique_ptr
Posté le 03-06-2007 à 14:48:29  profilanswer
 

classiquement, tu as une matrice N lignes M colonnes que tu representes comme une liste chainées de N éléments, chacun étant une liste chainées contenant des structures du style :

 
Code :
  1. struct element
  2. {
  3.   int col;
  4.   int ligne;
  5.   double val;
  6. };
 

Ainsi, la matrice 3000x3000 :

 
Code :
  1. [-1 0 0 ... 0 0 1
  2. 0 0 0 ... 0 0 0
  3. ...
  4. 0 0 0 ... 0 0 0
  5. -1 0 0 ... 0 0 1]
 

est stockée comme une liste chainées de deux éléments (la ligne 0 et la ligne 2999) qui contiennent chacune
deux éléments :
- pour la ligne 0 : {0,0,-1}, {0,2999,1}
- pour la ligne 2999 : {2999,0,-1}, {2999,2999,1}

 

Faire des opérations la dessus (genre a+b) nécessite de parcourir les éléments des listes des deux matrices
et de vérifier si les éléments correpondent en terme de col/lig et d'éffectuer l'opérations nécessaire. En fonction de l'opérations, il sera pe nécessaire d'ajouter des éléments dans la matrice résultats.

 

Si tu fais A+B avec A qui contient seulement une ligne non-vide de N éléments et B seulement une colonne non-vide de N éléments, c'est 2N-1 valeurs à stockées dans A+B


Message édité par Joel F le 03-06-2007 à 14:51:56
n°1570070
Mac-H1
Posté le 05-06-2007 à 00:02:25  profilanswer
 

Merci Joel !  
 
J'ai pensé qu'il fallait dans un premier temps faire en sorte de fabriquer la matriceu, peut importe la valeur des elements qui seraient à l'interieur ; j'ai donc considerer que tout serait à 0.
 
J'ai trouvé quelque chose comme ça :  
 
j'ai d'abord creé les types jugés necessaires
 
typedef struct colonne*liste
 
typedef struct colonne
{
int lig;
liste ligne;
liste Lsuiv;
}colonne;
 
typedef struct Ligne
{
int col;
Double valeur;
liste Csuiv;
}ligne;
 
typedef struct matrice
{
colonne j;
ligne i;
}matrice;

 
 
Puis, la fonction qui me ferait la matrice. Je n'ai pas pu tester, le logiciel deconne chez moi, faut que je le reinstalle. Après ca, il me faudrait faire, si mon idée de départ est bonne, une autre fonction permettant à l'utilisateur de changer les elements qui sont dans la matrice ! Pas très pratique à l'usage mais dans un premier temps le principal est que ça marche !  
 
matrice creer_matrice (int a, b)
{
int a, i; //a : nombre de ligne
 
i=0;
 
cout<<"Entrez la nombre de lignes : ";
cin>>a;
 
while(i<=) i=i++
  {
creer liste_vide
 
nouveau = new colonne;
nouveauc -> ligne=i;
nouveauc -> ligne = creer_ligne;
  }
return matrice;
}
 
 
 
ligne creer_ligne (int b)
{
int b,j;
 
j=0;
 
cout<<"Entrez le nombre de colonnes : ";
cin>>b;
 
While(j<=b) j=j++
  {
nouveaul = new ligne;
ligne -> col = j;
nouveaul -> val = 0;
nouveaul -> Csuiv = j;
 
cout<<val<<endl;
  }
return ligne;
}

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[C#] [Résolu] Comment communiquer avec une dll c++[C] Des accolades "just pour le fun" ?
Partiel de programmation (C++)ki pourrait me corriger vite fait deux exos d'un partiel sur pascal
Doublons dans un affichage partiel d'un résultat SQLImport/export partiel d'une BDD
[Partiel]Est ce qu'un mec cool pourrait m'aider à faire ça ?Urgent - Besoin d'aide pour un partiel
[mysql-php] importation partiel de base de donnéeBouton parcourir avec VB6 [URGENT - PARTIEL IMMINENT]
Plus de sujets relatifs à : Partiel de C++


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)