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 :

fonctions en C


Sujet :

C

  1. #21
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    j'ai fait les questions c et d, mais je suis bloqué pour les questions suivantes et j'aimerais que vous m'aidiez pour ces questions s'il vous plait.

    e)Ecrire une fonction additionMonome qui additionne le monôme représenté par les valeurs coefficient et exposant au polynôme passé en paramètre. Nous supposons que le polynôme est ordonné suivant l’ordre décroissant
    de ses exposants, l’addition doit conserver cet ordre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    struct polynome* additionMonome (struct polynome* poly, struct polynome* coeff)
    Exemple : (x^3 + 2x + 1) + (−2x) = x^3 + 1

    f)En utilisant la fonction additionMonome, écrire une fonction additionPolynome. Les deux polynômes donnés en argument sont ordonnés suivant l’ordre décroissant de leurs exposants. L’addition doit conserver cet ordre, c’est-à-dire que le résultat de l’addition est un polynôme dont les monômes sont aussi ordonnées dans
    l’ordre décroissant des exposants.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    struct polynome* additionPolynome (struct polynome* p1, struct polynome* p2);

  2. #22
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    Toujours assez classique.
    Juste par curiosité, j'aimerais savoir ce que tu fais comme étude.

    En fait dans un premier temps faudrait que tu comprenne comment fonctionne ta structure, comment la gérer etc... dans l'ensemble c'est assez simple mais ca demande un peu de réflexion.
    Après tu va voir que ce que l'on te demande est assez simple aussi.

  3. #23
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    je fais de la chimie, mais on nous demande de maitriser le C.
    Est-ce que tu pourrais me mettre les codes des fonctions pour que je puisse bien comprendre, s'il te plait ?
    merci.

  4. #24
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    Ben là, j'ai pas vraiment le temps... Je vais aller me pieuter parce que demain j'ai cours aussi.
    Je verrais demain si j'ai le temps de te pondre juste l'algo en pseudo-code ou juste des pistes, mais je te donnerais pas le code tout fait ça t'aidera pas vraiment (je le sais je suis passé aussi par là).

  5. #25
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par max327 Voir le message
    merci.
    On doit écrire :

    c) une fonction stMonome qui convertit un monome en chaine de caractere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     char* stMonome (struct polynome* monome);

    d) une fonction afficherPolynome qui utilise stMonome pour afficher sur la sortie standard le polynome associé à la liste chainée passée en paramètre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     void afficherPolynome (struct polynome* poly);

    pour la c), ilfaut utiliser sprintf, mais je ne vois pas comment faire cette fonction.

    merci.
    j'ai un problème pour la fonction afficherPolynome, comment fait-on pour utiliser stMonome dans afficherPolynome, est-ce qu'il suffit de mettre la fonction stMonome dans la fonction afficherPolynome ou il faut faire autrement ?

    merci.

  6. #26
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    est-ce que quelqu'un peut m'aider, svp ?
    merci.

  7. #27
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    Ben tu fais ta fonction stMonome et dans ta fonction affiche tu l'appelle tout simplement.
    Sachant que ta fonction prend un monome et retourne un char*.

  8. #28
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    j'ai pas compris.
    je crois qu'il ne faut pas utiliser de fonction dans une fonction.
    au fait, est-ce que tu as pu écrire les pseudos codes des fonctions ?
    merci.

  9. #29
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    tu as très bien le droit d'utiliser une fonction dans une autre fonction et tu as même le droit de faire une fonction qui s'appelle elle même (c'est ce que l'on appelle la récursivité).

    Sinon pour le pseudo code, j'ai pas vraiment le temps... J'ai du boulot par dessus la tête => j'ai des partiels qui arrivent bientôt plus des projets à rendre, désolé...

  10. #30
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    quand j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void afficherPolynome (struct polynome* a) {
          char s[40];
          stringOfMonome (s, a);
     
     }
    ça ne renvoie rien, comment faire ?

  11. #31
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    quand j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void afficherPolynome (struct polynome* a) {
    char s[40];
    stringOfMonome (s, a);
     
    }
    ça ne renvoie rien, comment faire ?

    Tu as changé le nom et le prototype de ta fonction ??
    Franchement, poste un code complet parce que je peux pas deviner ce que fait ta fonction... dans ton premier prototype stMonome, elle retournait un char* donc tu faisais char* resultat = stMonome(Ici_tu_passe_en_parametre_ton_monome);

  12. #32
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par AuraHxC Voir le message
    quand j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void afficherPolynome (struct polynome* a) {
    char s[40];
    stMonome (s, a);
     
    }
    ça ne renvoie rien, comment faire ?

    Tu as changé le nom et le prototype de ta fonction ??
    Franchement, poste un code complet parce que je peux pas deviner ce que fait ta fonction... dans ton premier prototype stMonome, elle retournait un char* donc tu faisais char* resultat = stMonome(Ici_tu_passe_en_parametre_ton_monome);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char* stMonome (char* r, struct polynome* z) {
          sprintf(r, "%f %f", z->coeff, z->expo);
          printf("%s", r);
     
             return NULL;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void afficherPolynome (struct polynome* a) {
         char* resultat = stMonome(resultat, a);
         printf("%s", resultat);
     
    }
    ça marche pas, que faire ?

  13. #33
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    Citation Envoyé par max327 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    char* stMonome (char* r, struct polynome* z) {
          sprintf(r, "%f %f", z->coeff, z->expo);
          printf("%s", r);
     
             return NULL;
    }
     
     
    void afficherPolynome (struct polynome* a) {
         char* resultat = stMonome(resultat, a);
         printf("%s", resultat);
     
    }
    ça marche pas, que faire ?
    Ta fonction stMonome retourne NULL donc forcement dans ton char* resultat tu aura NULL => essaie de faire plutôt return r.

  14. #34
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    ça ne marche pas.
    En fait, le return NULL est obligatoire, donc il ne faut pas le toucher.
    Comment procéder ?
    merci.

  15. #35
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    Obligatoire !!!
    Je sais pas d'où tu sors ca... mais bon si tu veux garde le comme ca et ta fonction retournera éternellement rien du tout.

  16. #36
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    char* stMonome (char* r, struct polynome* z) {
    sprintf(r, "%f %f", z->coeff, z->expo);
    printf("%s", r);
     
    return r;
    }
     
     
    void afficherPolynome (struct polynome* a) {
    char* resultat = stMonome(resultat, a);
    printf("%s", resultat);
     
    }
    même en mettant r, ça ne marche pas. Est-ce que tu pourrais réecrire mon code en mieux, stp ?
    merci.

  17. #37
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    max327 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void afficherPolynome (struct polynome* a) {
    char* resultat = stMonome(resultat, a);
    printf("%s", resultat);
    }
    resultat DOIT être un tableau de char, pas un simple pointeur, sinon, on n'a pas la place pour stocker la chaîne produite par stMonome
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void afficherPolynome (struct polynome* a) {
    char resultat [80]; // ou la taille adéquate
    stMonome(resultat, a);
    printf("%s", resultat);
    }
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  18. #38
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    quand je mets un malloc dans la fonction, ça affiche quelque chose mais pas ce que je veux, comment rectifier ce code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void afficherPolynome (struct polynome* a) {
    a=(struct polynome *)malloc(sizeof(struct polynome));   
    char resultat [80]; // ou la taille adéquate
    stMonome(resultat, a);
    printf("%s", resultat);
    }
    merci.

  19. #39
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Citation Envoyé par max327 Voir le message
    quand je mets un malloc dans la fonction, ça affiche quelque chose mais pas ce que je veux, comment rectifier ce code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void afficherPolynome (struct polynome* a) {
    a=(struct polynome *)malloc(sizeof(struct polynome));   
    char resultat [80]; // ou la taille adéquate
    stMonome(resultat, a);
    printf("%s", resultat);
    }
    merci.
    Mais personne n'a jamais rien mis de sensé dans *a.
    Il n'y a aucune raison pour faire ce malloc : On doit utiliser le polynome dont l'adresse est passée en argument. Supprimer ce malloc !
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  20. #40
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 21
    Points : 1
    Points
    1
    Par défaut
    quand je supprime le malloc, je vois qu'il affiche bien les valeurs mais une fenetre me dit qu'il y a une erreur quand même, et je suis forcé de quitter la console. Je ne vois pas où pourrait-être l'erreur dans cette fonction (sachant que c'est forcément cette fonction qui bloque le programme).

    merci.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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