comparaison - C++ - Programmation
Marsh Posté le 19-01-2008 à 18:00:49
Question à 2€, comment arrives-tu à coder des listes chainées, alors que le code que tu nous montres ne vaut rien et est bourré de fautes j'aimerais comprendre.
Marsh Posté le 19-01-2008 à 18:09:13
Question à 1€, a quoi sert ce genre de replique ? augmenter le nombre de tes post ?
Marsh Posté le 19-01-2008 à 18:48:05
étant donné que le nombre de posts écrit se limite à 32, ça ne doit pas être cela
mais si tu arrives à implémenter une liste chainée, cela implique que tu as des connaissances avec la gestion mémoire => les pointeurs.
Maintenant, en lisant ton code, il a une complète incohérence
Marsh Posté le 19-01-2008 à 18:53:05
J'ai reagis cme ça a ta replique car je n'ai aucune experience en info et que par consequent, ton jugement est plutot decourageant. C'est en effet purement scolaire ! j'apprecie en faire, mais n'en ferai pas mon metier
du coup, je compte sur des internautes experienté pour un coup de main...
Marsh Posté le 19-01-2008 à 19:03:05
bien que ma première réponse pouvait te sembler désagréable, il n'en est rien. Ce qui m'étonnait, c'est de voir que tu avais codé une structure de liste chainée, basée sur des allocations mémoires et de la gestion de pointeur. Ce qui fait que tu as les bases nécessaires pour résoudre à ton propre problème.
Une possibilité dans ton code, si tu dis que ton code passe directement dans ton else, alors ta condition est fausse, pour cela, vérifier les valeurs des deux variables utilisées, afin de voir si elles ne contiennent pas de '\n' qui pourrait fausser ta condition.
Marsh Posté le 19-01-2008 à 19:20:16
je trouve que la gestion de pointeur accessible quand on visualise l'ensemble mais lorsqu'il s'agit de coder mais alors le reste... des que je sors du cadre du cours c'est terminé ! d'autant que c'est sence etre un cours de C et qu'on voit pas mal de melange C/C++ il me semble.
concernant mon probleme, aucun /n !
je vais reprendre mes deux variables, merci !
j'ai regarde un peu pour la gestion de mémoire mais les lignes de codes que j'ai ne sont pas tres claires à ce sujet. que penses tu de ça :
Eleve *pEleve = (Eleve)*malloc(size of (Eleve)); pour etre franc je ne vois pas tres bien comment l'adapter a mon programme
Marsh Posté le 19-01-2008 à 19:38:31
je crois avoir trouve mon probleme. En fait je lui demande de regarder si les mots sont similaires et si ce n'est pas le cas il passe au mot suivant ! Seulement, il ne le fait pas ! d'ou mon probleme !
comment fait pour lui dire de passer au mot suivant, je pensai que lorsque je fait :
cout<<D->mot //affiche le premier mot de la liste
D->suiv //passe au suivant
cout<<D->mot //affiche le second mot de la liste
mais visiblement ca ne suffit pas... avis ?
Marsh Posté le 19-01-2008 à 19:58:22
Oh le mauvais, honte sur moi... D=D->suiv.... la voila l'erreur !!!!
je sors ------------> !
Marsh Posté le 20-01-2008 à 03:02:52
Bon ok pour l'utilisation des listes chaînées en C, mais quel intérêt d'utiliser une telle structure en C++ quand on a tous les conteneurs qu'on veut ?
Regarde tout ce qui est vector, map, list, etc.
Tu trouveras une documentation complète ici : http://cplusplus.com/reference/stl/
Marsh Posté le 19-01-2008 à 17:23:45
Salut à tous,
j'ai la un petit soucis de comparaison. J'ai creer deux liste chainée comportant un texte et un dictionnaire. L'idée est de comparer le premier mot du texte avec le dico pour voir s'il existe. Seulement, d'apres les test que j'ai fait, il ne passe que par le else de la boucle.
des idées ???
bool comparaison (ptext ptE, dico D)
{
chaine mot, mt;
bool present;
present = false;
D = lire_dico (mot);
ptE = lire_texte (mt);
while (D->suiv != NULL)
{
if (strcmp (ptE->motxt, D->mot) == 0)
{
present = true;
cout<<"dans le dico";
}
else
{
D->suiv;
cout<<"test";
}
}
return present;
}