begin process at 2012 05 29 14:33:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

Probleme a la creation de matrices


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme a la creation de matrices

mercredi 31 mai 2006 à 12:53:37 | Probleme a la creation de matrices

feanor04

Bonjour a tous,

j'aurais besoin de vos lumieres pour le probleme suivant:
Je travaille en C (pas d'autre option) avec Eclipse (derniere version je crois),  et j'utilise egalement la derniere version de gcc et Cygwin (je sais ...)


Mon probleme est le suivant, j'ai besoin de travailler sur des matrices, mais elles semblent se chevaucher.
Voici le code:


type.h:
[...]
#define type_data int
[...]

 
assignation.c:
[...]
type_data  *MatrixA. *MatrixB;
[...]
taille = NbreLigne*NbreColonne;
MatrixA = (type_data *) malloc(taille*sizeof(type_data));
MatrixB = (type_data *) malloc(taille*sizeof(type_data));



Apres initialisation des matrices, tout se passe comme si les matrices se chevauchaient ainsi:
__________________
|    MatrixA               |
|                    _______|________
|__________|______|                |
                     |                             |
                     |  MatrixB            |
                     |______________|


Pour resoudre ce probleme j'ai du sur-dimensionner les matrices ainsi:

type.h:
[...]
#define type_data int
#define Pas 10
[...]

 
assignation.c:
[...]
type_data  *MatrixA. *MatrixB;
[...]
taille = NbreLigne*NbreColonne *Pas;
MatrixA = (type_data *) malloc(taille*sizeof(type_data));
MatrixB = (type_data *) malloc(taille*sizeof(type_data));



Avez vous une idee. En fait, sur un autre projet j'avais le meme principe pour declarer des matrices, mais je n'avais alors aucun probleme !

Feanor


NB:
je n'utilise pas la facon classique de declarer des matrices car leur taille depend de donnees utilisateur et de plus, j'ai besoin de pouvoir les passer en parametre de differentes fonctions. C'est la facon la plus propre que j'ai trouve pour le faire.
mercredi 31 mai 2006 à 13:55:22 | Re : Probleme a la creation de matrices

HSylvio

Réponse acceptée !
Ce n'est peut être pas la meilleure façon de procéder mais pourquoi ne fais tu pas une classe où tu déclares un tableau (une seule dimension donc) pour l'utiliser tel une matrice avec par exemple getElement(a,b){return tableau[a*sizeJ+b];}
La même chose avec des list pour subvenir à la taille variable des matrices, mais il faudra verifier la taille de ce que tu ajoutes chaque fois...
Ca marche plutôt bien, ne demande pas trop plus de calculs au cpu et tu peux transformer ta classe en matrice n-dimentionnelle sans trop de travail une fois qu'elle est faite.
Voila j'espere t'avoir donné de bonnes idées.

mercredi 31 mai 2006 à 14:30:19 | Re : Probleme a la creation de matrices

feanor04

Réponse acceptée !
C'est  deja la solution que j'ai choisie:
je declare un tableau a une dimension mais pouvant contenir autant d'entiers que de donnee a memoriser dans la matrice. 
A cote de ca, j'utilise une fonction pour calculer l'element du vecteur correspondant a la donnee (i, j) de la matrice  => ce que vous vous qppelez getElement.


Quand a utiliser des listes, (1) cela consommera  plus de place (donnees + pointeurs), (2) les algorithmes de recherche sur des tableaux sont plus performant.


Enfin, je fais du C pas du C++ ... donc pas de classe a proprement parle.


Merci pour ces idees, je continue a creuser!


Cette discussion est classée dans : taille, type, probleme, data, matrices


Répondre à ce message

Sujets en rapport avec ce message

template [ par dam1234 ] G un probleme avec une methode de classe declaree en template. J'aurai besoin de savoir comment est ce que l'on fait pour connaitre quel a été le type probleme macro et cast !!! argh !!! [ par ToasTy62 ] bon voila le pb : g fé une tite macro ac une condition mais ca marchas pas des masses... un ti peu d'aide serait vraiment le bienvenue !!! marchi !reg Pb fichier de plus de 2 go [ par yamatoto ] Bonjour, j'ai un petit probleme avec un fichier dont la taille depasse 2Go. C est un fichier mixte (texte + valeur binaire). Pour pouvoir traiter mon probleme de pointeur et de liste chainée [ par krater ] sur un projet de video-club nous avons utilise une liste double chainées cepedant, nous avons quelque récurent à la compillation si une reponse pouvai question d'allocation probleme char char* Question simple [ par youpiyoyo ] voici mon probleme://///////////////////////////////////////////////////int rec = recv(ns,buffer,64*sizeof(char),0); buffer[rec] = '\0' ; //cout Template matrice [ par anisdilou ] Je souhaite q'on s'aide a fin d'meliorer nos nivauxSalut : Je veux implémenter une classe qui représente des matrices de dimensions et type de donnés probleme de compilation [ par casper_2 ] A ma compilation g un message de type:(transfert est une fonction);warning:type mismatch with previous implicit declarationwarning:previous implicit d taille de textures [ par erazor ] mmm voila mon probleme est que je suis en trai nde develloper un jeu opengl a l'aide d'allegro et allegrogl, et que apres quelques petits test mon pro matrices et c++ [ par anne-lise ] Bonjour, je debute en c++ et j'ai quelques problemes avec les tableaux... D'abord, y a t'il un moyen d'avoir pour resultat d'une fonction un tableau ? Probleme de compilatio en utilisant des socket [ par casper_2 ] Bonjour,j'utilise dev_cpp,et je debute avec l'utilisation des sockets.ama compilation,g un message de type"  [Linker error] undefined reference to `WS


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,732 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales