Tom's Guide > Forum > Programmation > Graphes en C
Mot :    Pseudo :           
 

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.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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

Répondre à Rakipu

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.

Répondre à damboy


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:

Code :
  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:

Code :
  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;

Code :
  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 :-)

Répondre à Rakipu

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.

Répondre à damboy

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

Répondre à Rakipu

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 ?

Répondre à damboy



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:

Code :
  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:

Code :
  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...

Répondre à Rakipu
Tom's Guide > Forum > Programmation > Graphes en C
Aller à :

Il y a 2280 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens