Projet de programmation
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Projet de programmation
 
AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  
Le Deal du moment :
Cdiscount : -30€ dès 300€ ...
Voir le deal

 

 Fonctions de bases des domaines et structures

Aller en bas 
3 participants
AuteurMessage
Francis L.




Messages : 1
Date d'inscription : 14/02/2015

Fonctions de bases des domaines et structures Empty
MessageSujet: Fonctions de bases des domaines et structures   Fonctions de bases des domaines et structures Icon_minitimeSam 14 Fév - 15:05

Salut.


Avec l'aide du groupe donné j'ai implémenté la structure de base des domaines, c'est une liste doublement chaînée d'entier.
Du coup voici des pastebin des différents fichiers :
-domaine.h les fonctions sont expliquées sans entrer dans les détails, je conseille tout de même d'aller voir l'autre pastebin pour avoir de plus amples informations sur la fonction ajouter_valeur().
-domaine.c les fonctions "bateaux" ne sont pas commentées il y a uniquement la fonction ajouter_valeur qui l'est puisqu'elle sort un peu de l'ordinaire.
-exemple d'exécution un petit ideone pour que vous puissiez voir le comportement des fonctions une fois celles-ci exécutées (ideone indique une Runtime Error mais avec gcc et l'option -Wall tout compile en silence).

Si vous souhaitez plus d'explications sur les fonctions n'hésitez pas.
J'ai quelques habitudes de programmation (nom de fonction avec des underscore, etc.), si celles-ci dérangent ou bien dans un but d'uniformiser la syntaxe du code du programme je peux les changer.
Il est fort probable que les fonctions ne soient pas optimales d'un point de vue syntaxique et algorithmique, n'hésitez donc pas à poster si vous pensez pouvoir améliorer le code.

EDIT du 20/02/15 : Ajout de 3 fonctions et modification mineure d'une fonction existante.
EDIT du 01/03/15 : Ajout d'une fonction basique.


Bye.


Dernière édition par Francis L. le Dim 1 Mar - 21:03, édité 10 fois
Revenir en haut Aller en bas
Guillaume G.




Messages : 7
Date d'inscription : 05/02/2015

Fonctions de bases des domaines et structures Empty
MessageSujet: Re: Fonctions de bases des domaines et structures   Fonctions de bases des domaines et structures Icon_minitimeLun 16 Fév - 15:09

J'ai pris un peu de temps pour faire une fonction enlever_valeur, ce sera toujours ça de fait.
Je précise que j'ai pas eu le temps de la tester, donc faut voir si elle marche.

Code:


int retirer_valeur(domaine* d, int value)
{
  //Fonction qui retire la valeur donnée en argument au domaine.
  if (!deja_presente(*d, value))
  {
    //Si la valeur est pas présente dans le domaine, on va même pas plus loin.
    return 0;
  }

  if ((*d)->valeur == value)
  {
    //Si la valeur est la première de la liste, on l'enlève et change la liste pour qu'elle pointe sur la seconde.
    domaine del = *d;
    *d = (*d)->suivant;
    free(del);
    if (*d != NULL)
    {
      (*d)->precedent = NULL;
    }
    return 1;
  }

  domaine courant = *d;

  while(courant != NULL)
  {
    //Dans les autres cas, recherche classique dans le domaine
    if (courant->valeur == value)
    {
      if (courant->precedent == NULL)
      {
        fprintf(stderr, "Probleme! La valeur %d n'a pas de précédent alors qu'on est sensé être au milieu de la liste!\n", courant->valeur);
      }
      courant->precedent->suivant = courant->suivant;
      if (courant->suivant != NULL)
      {
        //vérif si le suivant existe
        courant->suivant->precedent = courant->precedent;
      }
      free(courant);
      return 1;
    }

    courant = courant->suivant;
  }

  return 0;
}

Revenir en haut Aller en bas
Guillaume G.




Messages : 7
Date d'inscription : 05/02/2015

Fonctions de bases des domaines et structures Empty
MessageSujet: Re: Fonctions de bases des domaines et structures   Fonctions de bases des domaines et structures Icon_minitimeMer 8 Avr - 9:03

Bon, je reposte un message pour dire que j'ai édité la fonction retirer_valeur ci dessus pour qu'elle marche, je l'ai testé et il n'y avait pas de problème.

Voici le prototype:

int retirer_valeur(domaine* d, int value);//Renvoie 1 si la valeur donnée a été supprimé, 0 sinon.
Revenir en haut Aller en bas
Léo G




Messages : 12
Date d'inscription : 04/02/2015

Fonctions de bases des domaines et structures Empty
MessageSujet: Re: Fonctions de bases des domaines et structures   Fonctions de bases des domaines et structures Icon_minitimeMer 8 Avr - 9:32

je mi la fonction sur github
Revenir en haut Aller en bas
Contenu sponsorisé





Fonctions de bases des domaines et structures Empty
MessageSujet: Re: Fonctions de bases des domaines et structures   Fonctions de bases des domaines et structures Icon_minitime

Revenir en haut Aller en bas
 
Fonctions de bases des domaines et structures
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Projet de programmation :: Projet :: Partie Donnée-
Sauter vers: