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 :

Définir et utiliser une structure


Sujet :

C

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Définir et utiliser une structure
    Bonjour, est ce quelqu'un sait faire l'implémentation de l'algorithme de DINIC en C svp?

    Je dois construire le graphe d'ecart, trouver le plus court chemin en nombre d'arcs , trouver l'arc avec la capacité minimale et mettre à jour le graphe et le graphe d'écart.

    JE suis parvenue à créer cette structure mais je sais pas comment l'utiliser.

    voila le fichier.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #if ! defined (DINIC_H)
     
    #defineDINIC_H 1
     
    /* IMPLANTATION */
     
    struct maillon_arc
     
    {   int cap;
     
        int flow;
     
        int ecart;
     
    struct maillon_arc* next;
     
    };
     
    struct struc_sommet
     
    {   int nbsucc;
     
    struct maillon_arc* tete;
     
    };
     
    struct struct_reseau
     
    {   int nbsommet;
     
        int nbarcs;
     
        int source;
     
        int puit;
     
        struct_sommet* sommet
     
    };
     
    /* PROTOTYPES DES FONCTIONS (TYPE ABSTRAIT)*/
     
      extern void init_struct_reseau ();
     
      extern void clear_struct_reseau ();
     
      extern void buildGRAPH();
     
      extern void buildRG();
     
      extern void shortestPath();
     
      extern void minCap();
     
      extern void updateFlowInNet();
     
      extern void updateFlowInRG();
     
      #endif

  2. #2
    Membre actif Avatar de zaza576
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2013
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2013
    Messages : 175
    Points : 275
    Points
    275
    Par défaut
    Bonjour,

    malheureusement pour toi (et heureusement pour nous :-) ), personne ne fera le travail à ta place.
    Ici, il s'agit d'un forum d'aide, pas d'esclavagisme toléré !

    Du coup, un maximum d'efforts de ta part est requis si tu souhaites qu'on t'accompagne dans ton développement.

    Pour le moment, tu as la structure d'exploitation de tes données, mais tu n'as pas encore le corps de ton algorithme (le principal en fait).

    Moi, j'utilise la démarche suivante quand on me demande de réaliser un travail :
    - je lis les exigences du client (plusieurs fois si besoin)
    - je pose des questions au client si je n'ai pas compris son énoncé
    - je prépare l'ensemble des fichiers à rédiger (.java, .c, .h ...)
    - j'écris les structures de données nécessaires
    - j'écris les prototypes de classes / méthodes / fonctions ... attendues
    - pour chaque classe / méthode / fonction ... , je vais rédiger les exigences attendues du client en tant que COMMENTAIRE. Telle méthode doit faire ceci puis cela ... (Cela me permet de visualiser au bon endroit dans mon code ce que je dois produire)
    - enfin, ... je développe mon code par petits bouts (une fonction, fonction par fonction, une classe ...)
    - je teste !!!!!! Unitairement, puis globalement ! (Pour les tests et la validation, à chacun sa méthode, TDD ...)

    La question que je me pose est :
    - sais-tu utiliser les structures de données en C ? Que dis ton cours à ce sujet ?

    Petit indice algorithmique (j'ai bien dis algorithmique, pas en langage C) :
    struct MaStruct{
    TypeAttribut1 NomAttribut1,
    ...
    }

    Du coup, théoriquement, si tu souhaites exploiter cette structure :

    MaStruct.NomAttribut1 => te retournes la valeur de ton attribut de type TypeAttribut1
    MaStruct.NomAttribut1 = "nouvelle valeur" => affecte une nouvelle valeur respectant le type TypeAttribut1 de ton attribut

    Après, que ce soit en C, en JAVA ou en BrainFuck, la manière de le rédiger / l'exploiter n'est que du sucre syntaxique ! Le principe est le même !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function googleIsYourF*ck*ngFriend(String url, String maQuestion){
        goTo(url);
        reponse = find(maQuestion);
        if(isAcceptable(reponse)){
            clickOn(By.xpath("//button[@id='resolvedButton']"));
        }
        sendMessage("Merci");
    }
    
    googleIsYourF*ck*ingFriend("http://www.google.fr", "ma question");

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 616
    Points : 30 833
    Points
    30 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lilly59 Voir le message
    JE suis parvenue à créer cette structure mais je sais pas comment l'utiliser.
    Bonjour
    Ca m'étonnerait fort que ce soit toi qui ait créé cette structure. Parce que jamais tu n'aurais écrit (par exemple) extern void minCap() sans savoir à quoi cette fonction va servir. Et si tu sais à quoi elle va servir alors jamais tu n'aurais dit que tu ne savais pas utiliser ta (en réalité "tes" parce qu'il y en a 3) structure(s).

    Pour le reste, voir l'excellent post de zaza576
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. utiliser une structure dans une bibliothèque
    Par michel4_1 dans le forum C
    Réponses: 7
    Dernier message: 15/05/2012, 14h03
  2. Réponses: 2
    Dernier message: 10/11/2009, 09h43
  3. Utiliser une structure comme argument d'une fonction
    Par guilermo dans le forum Débuter
    Réponses: 7
    Dernier message: 15/10/2009, 11h05
  4. [XSLT] Comment utiliser une structure de type if-then-ELSE ?
    Par ribrok dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/11/2006, 13h39
  5. [C#]Pourquoi utiliser une structure plutôt qu'une classe?
    Par egoom dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/10/2006, 10h49

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