Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plusieurs paramètres pour remplir une condition

How to???

    15 janvier 2006 à 14:18:27

    Salut à tous,

    je tiens tout d'abord a remercié M@teo21 pour son superbe tutos sur le language C
    Ce Tuto m'a permis de commencer gentillement la dev d'un programme de Topographie :)
    Pour ceux qui connaissent il s'agit d'un programme automatisant le calcul du "pothenot" aussi appelé "problème des trois points".
    J'ai déjà réussi a faire le calcul des distance, mais je bloque maintenant sur le calcul des gisements (quest ce qu'un gisements, en gros :c'est l'orientation que prend une droite par rapport au nord géographique)
    le calcul prend comme référence les coordonnées des points definie sur l'axe des X et l'axes des Y
    prennons les deux points points A et B
    Nous allons trouvé par ce calcul l'orientation de mla droite par rapport au nord géographique.

    Le calcul se fait donc comme ceci:
    Arctan ((Ax-Bx)/(Ay-By)) //donc arctan (DeltaX/deltalY)
    Le résultat doit être convertit en grades donc *200/Pi
    C'est ensuite que je suis bloqué car il faut augmenté ou nom la valeur du résultat en fonction de la réponses des deltaX/deltaY
    cad:
    -que si deltaX est positif et deltay est positif alors la valeur ne bouge pas
    -que si deltaX est positif et deltaY est négatif alors la valeur est majoré de 200
    -que si deltaX est négatif et deltay est négatif alors la valeur est majoré aussi de 200
    -que si deltax est negatif et deltay est positif alors la valeur est majoré de 400

    je ne vois pas comment je peu faire pour créer la condition o_O je suis vraiment perdu

    je suis sous devc

    Un grand merci d'avance a ceux qui pourrait répondre a ma question et surtout a ceux qui auront eu la patience de me lire :p
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2006 à 14:32:11

      if(positifenx){
      if(poistify){
      action si 2 +;
      }
      else{
      action si + et -;
      }
      else{
      if(negatifeny){
      action si - -;
      }
      else{
      action si - +;
      }
      }
      • Partager sur Facebook
      • Partager sur Twitter
        15 janvier 2006 à 14:57:35

        Salut à toi et merci,


        Même si je ne comprends pas grand choses a ce que tu as mis et que je ne vois pas trop la logique je vais me penché dessus pour commprendre la logique de tout cela, et voir ce que donc est ce truc "action" dans le tuto de mateo.

        ensuite je vais tester tout cela :D

        Un grand merci
        • Partager sur Facebook
        • Partager sur Twitter
          15 janvier 2006 à 15:23:31

          Bon en fait c'est pas très compliqué : siΔx est positif alors il test si Δy l'est aussi si c'est le cas , les deux sont positifs , si Δy ne l'est pas mais qu'il est arrivé a la hauteur de ce else c'est que le Δx était positif , et donc le cas est Δx + et Δy - ... si le Δx n'etait pas positif alors il regarde si Δy est negatif , si oui , les deux sont négatifs sinon , Δx - et Δx +.

          En ce qui concerne le terme action c'était juste pour t'indiquer l'endroit ou mettre les instructions au programme et le signe après te rapelle ds quel cas nous nous trouvons
          • Partager sur Facebook
          • Partager sur Twitter
            17 janvier 2006 à 0:39:46

            Salut à tous

            j'ai un petit problèmes

            j'ai l'impression que ma condition ne fonctionne pas
            je n'ai aucun message d'erreur lors de la compilation, mais..
            ya pas ce qui faudrait

            voilà le code

              double dgstAB=atan(deltAxBx/deltAyBy);
              double dgstBC=atan(deltBxCx/deltByCy);
              double ggsmtAB=dgstAB*200/3.141592654;
              double ggsmtBC=dgstBC*200/3.141592654;
              //debuts de la majoration
              if(deltAxBx>0 && deltAyBy>0){
                             ggsmtAB+0;
                             }
                             else if(deltAxBx>0 && deltAyBy<0){
                                  ggsmtAB+200;
                                  }
                                  else if(deltAxBx<0 && deltAyBy<0){
                                       ggsmtAB+200;
                                       }
                                       else if(deltAxBx<0 && deltAyBy>0){
                                                       ggsmtAB+400;
                                                       }
             
             
              printf ("la valeur non majoré du gisement AB vaut %lf gon", ggsmtAB);


            merci d'avance


            Edit:10 min plustard!!!

            désolé de vous avoir déranger pour rien je viens de comprendre mon erreur
            voilà la correction

              //calcul des gisement sans la majoration du cercle trigonometrique
              double dgstAB=atan(deltAxBx/deltAyBy);
              double dgstBC=atan(deltBxCx/deltByCy);
              double ggsmtAB=dgstAB*200/3.141592654;
              double ggsmtBC=dgstBC*200/3.141592654;
              double gsmtAB=0;
              //debuts de la majoration
             
              if(deltAxBx>0 && deltAyBy>0){
                             gsmtAB=ggsmtAB+0;
                             }
                             else if(deltAxBx>0 && deltAyBy<0){
                                  gsmtAB=ggsmtAB+200;
                                  }
                                  else if(deltAxBx<0 && deltAyBy<0){
                                       gsmtAB=ggsmtAB+200;
                                       }
                                       else if(deltAxBx<0 && deltAyBy>0){
                                                       gsmtAB=ggsmtAB+400;
                                                       }
             
             
              printf ("la valeur non majoré du gisement AB vaut %lf gon\n\n", gsmtAB);


            Un grand merci quand même d'être tous là ;)
            • Partager sur Facebook
            • Partager sur Twitter

            Plusieurs paramètres pour remplir une condition

            × 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