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 :

Tracer une courbe en c++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    étudiant en informatique
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Albanie

    Informations professionnelles :
    Activité : étudiant en informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 0
    Points
    0
    Par défaut Tracer une courbe en c++
    bonjour
    je ss un étudiant en 2em année informatique et j'ai un tp a rendre le dimanche , on nous demande d'implémenter 4 fonctions : tri par insertion ,tri rapide , recherche séquentielle et recherche dichotomique ; de calculer leurs complexités , et de tracer les courbes qui indiquent la variation du nbr d'opérations exécutées EN FONCTION DE LA TAILLE DU TABLEAU .
    pour les fonctions c bon c réglé , pour le calcule de la complexité j'ai introduit une variable " compteur " et dans chaque boucle jai fait " compteur ++ " ,puis un return compteur le problème c que je c vraiment pas comment faire pour tracer les courbe ,j'ai donner pour chaque fonction 5 tailles du tableau {50 , 100 , 250 , 500 , 1000} donc j'ai 5 valeurs de compteur pour chaque fonction
    mais pour tracer le graphe en c je c vraiment pas quoi faire ,quelle bibliothèque appeler , quoi faire au main()
    SVP aidé moi c vraiment urgent je doit avoir une bonne note svp et merci d'avance

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    La complexité ne se calcule pas en mettant des compteurs . Et les courbes se font avec un tableur (exel, loo calc) et la formule de complexité.

    Pour expliquer très succinctement la complexité algorithmique:
    On s'attarde sur le nombre de tours boucle maximal effectué. Les autres opérations ont une complexité de 1: O(1). Généralement, on enlève aussi les constantes O(2n) = O(n).
    - une boucle de 0 à n => O(n)
    - une boucle de 0 à n dans une boucle de 0 à m => O(n*m).

    Par exemple, strlen qui parcours une chaîne de caractère jusqu'au caractère '\0' à une complexité de O(n), pour n le nombre de caractère.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    étudiant en informatique
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Albanie

    Informations professionnelles :
    Activité : étudiant en informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    oui oui je c sa ; et je c comment arrivé a la formule de complexité ,et de la calculer au meilleur et pire cas mais comment tracer la courbe de complexité en c++ je c pas ,je connais même pas se tableur esque vous pouvais me donner un exemple disons que la formule de complexité est ; t[n]=2n-1 (par exemple ) donc la complexité c o(n) ;alors comment tracer sa en c++ ( si vous pouvez me donner un pti programme sa sré génial qui trace la courbe en c sa sré génial ) ;MERCI BCQ DE VOTRE AIDE

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Tracer est une question de graphisme.
    Tu peux utiliser gnuplot, par exemple.

    Un tableur est un programme permettant de gérer des feuilles de calculs.
    Par exemple, Calc, dans LibreOffice, ou MS Excel.

    Mais je ne comprends même pas pourquoi tu veux tracer une courbe de complexité.
    La courbe n'est pas intéressante en tant que telle.
    On sait juste que la différence entre deux classes de complexité est énorme quand on a beaucoup de données.

    Beaucoup n'a pas de valeur minimale, mais on sait toujours quand on l'atteint.
    Les classes de complexité sont: 1, N, N², N3, ... , 2n, n! et entre une classe et la suivante, la même multiplié log(N).
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    étudiant en informatique
    Inscrit en
    Novembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Albanie

    Informations professionnelles :
    Activité : étudiant en informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 3
    Points : 0
    Points
    0
    Par défaut
    disons qu'on a un pti fragment de programme

    for(i=0;i<n;i++)
    for(j=0;i<n;j++)
    s=i+j;

    ( un pti exemple )

    la formule de complexité est : t[n]=n*n+n ; donc la complexité est : o(n^2)
    alors comment tracer sa en c++ ;
    si vous pouvez me donner un pti programme qui trace la courbe de se fragment sa sré génial ;
    MERCI BCQ DE VOTRE AIDE
    (on veut tracer la courbe qui indique la variation du nombre d'opérations en fonction de n )

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Tu n'as pas lu ma réponse?

    Personnellement, je ne compte que N*N*1, je ne vois pas ton +N

    Et essaie de faire un effort avec le français.
    On tolère quelques fautes, tout le monde peut en faire, mais là, ça fait vraiment beaucoup. Le langage "SMS" est interdit sur notre forum
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  7. #7
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 352
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 352
    Points : 20 359
    Points
    20 359
    Par défaut
    Citation Envoyé par brixo Voir le message
    d
    la formule de complexité est : t[n]=n*n+n ; donc la complexité est : o(n^2)
    alors comment tracer sa en c++ ;
    si vous pouvez me donner un pti programme qui trace la courbe de se fragment sa sré génial ;
    le tracé graphique dépend de l'OS donc merci d'indiquer
    1 quel OS
    2 quel outil de développement ? Visual Studio (donc VC++ )..
    3 quels bibliothèques additionnelles ? MFC, Qt....?
    Faire du tracé graphique sous Windows revient à utiliser le GDI donc il suffit d'obtenir un HDC, contexte de tracé graphique et on peut appeler l'API MoveTo et LineTo.

    Ensuite il est indispensable d'obtenir la taille de la zone de tracé en largeur et hauteur ( ce qui s'appelle en programmation win32 la zone cliente )
    Donc on obtient un rectangle délimitant la zone de tracé.
    Peu importe la courbe et la fonction utilisée pour tracer cette courbe : si tu as une fonction y=x^2 eh bien il faut
    1 calculer la valeur maximale de la courbe pour un ensemble de valeurs données , donc f(x) varie sur un certain ensemble de définition.
    2 déterminer la valeur minimale.
    Une fois que tu as obtenu ces valeurs la valeur maximale en y ( abcisse) permet de faire une mise à l'échelle.
    Comme la valeur en x ( ordonnée)..
    Mettons que la valeur maximale soit 10000 en y et que la zone de tracé soit 768 pixels en hauteur il suffit de faire une régle de trois pour tracer les points en abscisse.

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/09/2014, 00h08
  2. Tracer une courbe dans un formulaire ?
    Par jessy212 dans le forum Access
    Réponses: 5
    Dernier message: 04/09/2006, 17h46
  3. Tracer une courbe avec 2 tableau de points
    Par babarpapa dans le forum 2D
    Réponses: 3
    Dernier message: 19/04/2006, 16h24
  4. [Images] [Librairie] Tracer une courbe ???
    Par cedre22 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 20/02/2006, 15h53
  5. Tracer une courbe théorique sur un TChart
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/09/2005, 12h46

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