IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Probleme fonction tri


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut Probleme fonction tri
    Bonjour,
    J'explique mon probleme:
    j'ai trois tableaux, un contenant des int,un contenant de float et un contenant des chaines de caracteres( char * ).Le but est de creer une fonction qui permettent de trier ces trois types de tableaux.
    Pour cela j'utilise une fonction générale qui utilise le tri a bulle.Cette fonction a pour prototype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );
    La fonction recoit comme premier argument le pointeur sur la premiere case du tableau(le nom du tableau);le deuxieme est le nombre de case du tableau;le troisieme la taille en octet de chaque case du tableau et le quatrieme c'est un pointeur sur une fonction de comparaison qui recoit deux const void* et qui renvoit un int.
    Le probleme est que dans cette fonction, quand je compare deux cases voisines à l'aide de fonctions de comparaisons(que je n'ai pas mentionnées ici,il y en a une pour chaque type) passées en parametre de la fonction qsort,et qui se trouve que le premier élément est plus grand que le suivant alors je dois echanger les deux cases et mon probleme est là :
    je dois normalement utiliser une variable temporaire pour l'échange mais je ne sais pas de quel type déclarer cette variable temporaire vu que les éléments comparés peuvent etre soit tout 2 des int, ou des float ou des char*.
    Peut etre il y aurait une solution de creer une variable de type void (pas void *) ou sinon une autre solution?
    Merci

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Ca me semble être du C plus que du C++ ton code.
    As tu une bonne raison de ne pas utiliser les vectors,std::sort et tout la clique ?

    Si tu ne peux aps faire autrement, 2 pistes:
    *Une fonction swap par type possible
    *Les templates
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 257
    Par défaut
    En fait on a pas encore appris les vector ni les templates donc je vais regarder du coté de la fonction swap.
    Merci je vous tiens au courant

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    Citation Envoyé par Miko95 Voir le message
    En fait on a pas encore appris les vector ni les templates donc je vais regarder du coté de la fonction swap.
    Merci je vous tiens au courant
    ce qu'il faut que tu retiennes c'est que pour l'instant tu apprends le C ( le forum d'en face )
    La plupart du temps C et le C++ sont très mal expliqués en cours. Ce sont deux langages différents. Le point commun entre les deux est que le C++ intègre le C.

    Le problème de commencer l'apprentissage du C++ par sa partie C, c'est qu'on en oublie ce qui en fait un langage à part.

  5. #5
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    HS : Je en comprend pas comment des prof de fac n d'iut ou de bts peuvent enseigner le C++ en commençant par une approche C-like.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par nikko34 Voir le message
    [...]La plupart du temps C et le C++ sont très mal expliqués en cours. [...]
    J'espère bien sûr que tu bases cette remarque sur quelques études sérieuses et non sur un avis personnel et la connaissance de ce qui se fait autour de toi ?

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    J'espère bien sûr que tu bases cette remarque sur quelques études sérieuses et non sur un avis personnel et la connaissance de ce qui se fait autour de toi ?
    ben je sais pas si il y a des études à ce sujet, mais tu serais le premier à me dire que le C++ est bien enseigné.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme fonction de tri alphabetique
    Par clickandgo dans le forum VBA Access
    Réponses: 15
    Dernier message: 25/03/2014, 17h14
  2. probleme fonction gethostbyname
    Par oclone dans le forum Développement
    Réponses: 6
    Dernier message: 14/04/2005, 10h31
  3. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52
  4. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 10h32
  5. [LG]problème de tri de pointeur (bulles non optimisé)
    Par blackmage dans le forum Langage
    Réponses: 3
    Dernier message: 20/11/2003, 23h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo