Se connecter / S'enregistrer
Votre question

Graphes en C

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
12 Février 2006 18:07:37

Bonjour à tous,

Je cherche à savoir comment on peut écrire une fonction en C, générant de manière aléatoire, un graph à n sommets et m arcs ??

Merci d'avance.

Autres pages sur : graphes

12 Février 2006 18:13:19

Quels sont les outils dont tu dispose?
Je te parle de librairies,etc...
Donnne plus de détails.
Et puis qu'est ce que tu veux exactement? Qu'on te fasse ton travail? :-D
12 Février 2006 18:20:12

J'utilise TcWin45 comme compilateur mais je n'ai jamais utilisé la librairie graphique ! (Celle que j'ai s'appelle graphics.h)

C'est un projet en sciences-mathématiques mais ce que je demande n'est pas le quart de ce que je dois faire...

J'aimerai juste savoir déjà comment on programme un graphe (surtout aléatoire) pour commencer..

Merci.
Contenus similaires
12 Février 2006 18:53:50


Graphics.h: je connais pas ce fichier header, donc la dessus je peux pas t'aider.

Citation :
C'est un projet en sciences-mathématiques mais ce que je demande n'est pas le quart de ce que je dois faire...


Tu nous demande quand même de faire une partie de ton boulot là :-)

Pour un graphe, je pense que tu pourrais représenter les points par leur coordonnées dans une structure, par exemple:
  1. typedef struct point
  2. {
  3. int x,y;
  4. } point;


tu pourrais donc t'en servir pour connaitre la coordonnée x et y d'un point en ayant son numéro:
exemple d'utilisation:
  1. point Sommet[1];/*exemple avec un point; le point 0*/
  2. Sommet[0].x=/*coordonnée x du point 0*/10;
  3. Sommet[0].y=/*coordonnée y du point 0*/20;



Ensuite tu pourrais représenter les arètes par un tableau à deux dimensions, ou tu mettra 0 si il n'y a pas d'arete entre deux points et 1 sinon;
  1. int G[2][2];
  2. G[0][1]=1;/*supposons que il y a une arete entre le point 0 et le point 1*/


Donc là déja, si jme suis pas trompé, tu peux représenter un graphe dans la machine... Apres pour le dessiner c'est facile.
C'est ce que tu voulais savoir?
Sois précis :-)
12 Février 2006 20:00:15

Désolé, c'est vrai que je demande de faire une partie du boulot (car le projet est très complexe).

Cependant, je ne sais même pas comment dessiner un graph à l'écran ou encore ce qu'est une structure !

Ma question se porte donc sur l'existence de commandes permettants de créer des graphes aléatoires en C ou encore de compter le nombre de cycles dans de tels graphes,...

Merci pour ses précisions.
12 Février 2006 21:03:34

Citation :
Cependant, je ne sais même pas comment dessiner un graph à l'écran


Oula. C'est embêtant. Pour dessiner ton graphe, je pense qu'il suffit de placer tes points et de tracer des traits entre les points possédant une arête... Après, je ne connais pas le contenu de ton graphics.h, donc pour tracer les traits ou autres, je ne peux pas t'aider.

[code]ou encore ce qu'est une structure ![/quote]
Ben je ne maitrise pas trop les structures, alors je vais éviter de te l'expliquer... Mais bon, tu as quand même compris l'emploi que j'en fais?
Sinon, demande et j'essayerais de te renseigner...


Citation :

Ma question se porte donc sur l'existence de commandes permettants de créer des graphes aléatoires en C ou encore de compter le nombre de cycles dans de tels graphes,...


Cherche pas, à moins que tu n'ait ces fonctions dans ton graphics.h, tu va devoir les créer toi même...
Pour créer des graphes aléatoires, sert toi de
rand(); du header stdlib.h (je suppose que tu possède les bibliothèques standards... sinon, tu dois surement en avoir un équivalent quelque part).
Cette fonction renvoie des nombres pseudo-aléatoires; donc tu peux t'en servir pour avoir des coordonnées "aléatoires" pour tes points; et puis tu peux aussi faire de même pour les arêtes, jusqu'à atteindre le nombre d'arètes voulu...

...J'espère que t'a compris... :-D
12 Février 2006 21:35:38

Oui merci beaucoup !

En fait, j'ai fait de l'analyse numérique (résolution de problèmes mathématiques par ordinateur) et je connais donc les choses utiles en C(tableau,fonction,...).
Rien de très approfondi pour autant !

Ici, c'est une optique différente et faire une fonction qui compte les cycles d'un graph ou créer des fonctions à paramètres additionnels...aucune idée !

Pouurais-tu m'aider sur la syntaxe d'une fonction à paramètre additionnel ?
Quel est l'avantage d'une telle fonction comparer à une fonction classique ?
12 Février 2006 22:01:26



Citation :
des fonctions à paramètres additionnels...

Alors la je vois pas du tout ce dont tu veux parler. Qu'est ce que tu appele par "fonction a paramètres additionnels"? tu veux dire une fonction du type:
  1. void fonction(int arg1, char arg2, int *arg3)
  2. {
  3. /*par exemple...*/
  4. }

c'est à dire une fonction avec des paramètres, que tu appelera ainsi:
  1. fonction(arg1,arg2,arg3);/*encore un exemple*/

Si c'est ca, les avantages se voient tout de suite; tu peux lui passer des arguments et donc la fonction peut resservir à différents moments de l'execution avec un comportement différent...
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS