Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de langage C

(les fonctions)

    6 septembre 2020 à 17:47:38

    bonjour a tous je n arrive pas a compiler ce programme

    l excercice:

    Dans cet exercice, nous allons ́ecrire du code C permettant de g ́erer un ́elevage de lapins. Dans un ́elevagemoderne, chaque lapin porte un ́emetteur/r ́ecepteur GPS. De cette mani`ere, la position exacte de chaque lapinest connue en tout temps.

    Pour ce faire, nous avons stock ́e les informations des lapins, se trouvant `al’int ́erieur de l’enclos, dans une tableau de structures. O`u chaque lapin est ca-ract ́eris ́e par son code et sa position dans l’enclos sous forme de coordonn ́eesxetycomme dans la structure suivante.

    typedef struct{

    char code [10];

    float x;

    float y;

    }lapin;

    La longueur de l’enclos (longueur) ainsi que sa largeur (largeur) sont des variables globales d ́eclar ́ees etinitialis ́ees. On supposera qu’un enclos a toujours une forme rectangulaire.

    1. D ́efinir la fonction d’entˆeteint exterieur(lapin* enclos, int NL, int code)permettant de v ́erifier si un lapins’est echap ́e (se trouve `a l’ext ́erieur de l’enclos, autrement-dit :xlongueurouylargeur). La fonctionrecevra le code du lapin (code), le tableau des lapins (enclos) ainsi que leur nombre (NL) et retournera 1si le lapin dont le code est pass ́e en param`etre est `a l’ext ́erieur de l’enclos et 0 sinon.

    2. En utilisant le formalisme pointeur (aucun indice n’est autoris ́e), d ́efinir la fonction d’entˆeteint alarme(lapin*enclos, int NL)qui permet de tester si des lapins se sont ́echapp ́es de l’enclos. La fonction retournera 0 siaucun lapin ne s’est ́echapp ́e et 1 sinon.

    3. Nous aimerions maintenant identifier les lapins ́eventuellement en dehors de l’enclos. Pour ce faire, ́ecrirela fonction d’entˆetevoid lapinsechapes(lapin* enclos, int NL)permettant d’afficher les codes ainsi queles coordonn ́ees des lapins qui se trouvent en dehors de l’enclos.

    4. Ecrire la fonction d’entˆetefloat distance(lapin* enclos, int l1, int l2)qui retourne la distance entre lesdeux lapins dont leurs codesl1 etl2 sont pass ́es en param`etre (la distance entre deux pointA(xa, ya) etB(xb, yb) est(xaxb)2+ (yayb)2)).

    5. Donner le corps de la fonction d’en-tˆeteint plusprochelapin(lapin* enclos, int NL, int code)qui retournele code du lapin le plus proche de celui dont le code est pass ́e en param`etre.

    6. D ́efinir la fonction d’entˆetevoid trier(lapin* enclos, int NL)permettant de trier les lapins par leursabscisses.

    7. D ́efinir la fonctionvoid sauvgarder(lapin* enclos, int NL, char* fichier)permettant de sauvgarder lesinformations des lapins (code et coordonn ́ees) dans le fichier dont le nom est pass ́e en param`etre.


    mon programme:

    //1)
    int exterieur (lapin *enclos,int NL,int code)
    { int i,c=0;
    for(i=0;i<NL;i++){
    if(enclos[i].x>longueur && enclos[i].y<largeur)
    { c++;}
    printf("%c %d %d",enclos[i].code,*enclos,NL);
    return 1;
    return 0;
    }}
    
    
    //2)
    int alarme (lapin *enclos,int NL)
    {
        int code;
        if(exterieur(enclos,NL,code)==1) return 1;
    return 0;
    }
    
    //3)
    void lapin_echapes (lapin *enclos,int NL)
    {
        int i;
        for(i=0;i<NL;i++)
            {
                if(alarme(enclos,NL)==1)
                 printf(" %c %f %f",enclos[i].code,enclos[i].x,enclos[i].y);
    }
    }
    //4)
    float distance(lapin *enclos,int l1,int l2)
    { float x1,y1,x2,y2;
    int NL;
      int i;
      for(i=0;i<NL;i++)
    return sqrt((enclos[i].x1-enclos[i].x2)*(enclos[i].x1-enclos[i].x2)+(enclos[i].y1-enclos[i].y2)*(enclos[i].y1-enclos[i].y2));
    }
    


    merci pour vos reponses.

    -
    Edité par nisrineMRHILI 6 septembre 2020 à 18:40:51

    • Partager sur Facebook
    • Partager sur Twitter
      6 septembre 2020 à 18:00:12

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Manque de Politesse

      Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : probleme de langage C)

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        6 septembre 2020 à 18:11:06

        Je pense qu'il est temps de développer une IA pour répondre à toutes ces questions à la c... . Elle se moque de la politesse et de la manière dont le code est fourni, car ça devient récurrent ce genre de post où c'est "pondez-moi le code" ou "trouvez-moi l'erreur"

        -
        Edité par edgarjacobs 6 septembre 2020 à 18:12:23

        • Partager sur Facebook
        • Partager sur Twitter

        On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

          6 septembre 2020 à 18:22:24

          Des lapins, ça tombe bien ! C'est bientôt l'ouverture de la chasse !

          On fait quoi du GPS après avoir tué le lapin ?

          • Partager sur Facebook
          • Partager sur Twitter
            6 septembre 2020 à 18:44:21

            j ai corrige le probleme de politesse merci pour le commentaire
            • Partager sur Facebook
            • Partager sur Twitter
              6 septembre 2020 à 18:58:05

              Bonjour ! Concentrons-nous sur le problème précis : tu dis ne pas arriver à compiler le programme. Quels sont les messages d'erreur du compilateur ?

              (Pour être efficace, tu dois copier-coller les messages du compilateur et nous indiquer les lignes qu'il désigne − en général il donne les numéros de ligne, mais ça risque de ne pas être les mêmes que dans l'extrait que tu as posté.)

              -
              Edité par robun 6 septembre 2020 à 18:59:48

              • Partager sur Facebook
              • Partager sur Twitter
                6 septembre 2020 à 20:12:35

                Et les lapins, ils sont où ?

                Parce que tu as un tas de fonctions pour surveiller les lapins, mais y a pas de lapins.

                Si tu veux tester tout ça, il te faut une fonction main et y mettre des lapins !

                Ce n'est pas précisé, mais je suppose que Code est une chaîne de caractère et pour afficher les chaîne de caractères on utilise le descripteur de format %s

                • Partager sur Facebook
                • Partager sur Twitter
                  6 septembre 2020 à 22:40:03

                  Juste pour le fun: ça coute bonbon ( >80€ ) par balise gps (sauf si j'ai mal lu - voir ici). À ce prix-là, j'aime autant qu'un lapin s'évade.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                  probleme de langage C

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown