Partage
  • Partager sur Facebook
  • Partager sur Twitter

Nombres complexes

    21 décembre 2005 à 14:19:39

    En définissant ainsi une variable a :
    float a = sqrt (-1) ;

    avec math.h d'inclus, et avec un :
    printf ("%f", a) ;

    Le terminal OS X n'arrive pas à l'afficher a, il devrait mettre i , qui est le nombre complexe tel que i*i = -1 ...
    Pour resoudre TOUS les trinomes du second degre, j'ai besoin de ce nombre complexe-là...
    Des solutions ?
    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2005 à 14:22:09

      Ca marche pas comme ça. La gestion des nombres complexes est différentes entre le C et le C++. Et float est un réel, pas un complexe. En C, complex float est un complexe. Ceci dit je ne les ai encore jamais utilisé alors je ne peux pas plus en parler.
      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2005 à 14:26:42

        Ok, ben je vais essayer complex float...
        • Partager sur Facebook
        • Partager sur Twitter
          21 décembre 2005 à 14:36:18

          Faut inclure complex.h aussi et tu as accès à I comme constante notamment.
          • Partager sur Facebook
          • Partager sur Twitter
            21 décembre 2005 à 14:48:03

            OK, gcc ne me met plus de message d'erreur, mais on dirait bien que c'est pas avec
            printf ("%f", a) ;
            que je peux afficher i...
            Il doit y avoir une autre formulation...
            • Partager sur Facebook
            • Partager sur Twitter
              21 décembre 2005 à 15:01:21

              Pourquoi ne pas créer une structure complex, avec les fonctions qui manipulent cette structure?
              • Partager sur Facebook
              • Partager sur Twitter
                22 décembre 2005 à 16:50:18

                J'y connais presque rien sur les structures... Je sais ce que c'est, mais au niveau des applications possibles... :(
                • Partager sur Facebook
                • Partager sur Twitter
                  22 décembre 2005 à 17:13:18

                  Résolution de trinome du second degré avec nombre complexe pour delta <0???
                  No problèm

                  Kaesar est là .... ;)


                  do
                         {
                               
                    printf("\n\n***Resolution de trinome du second degre***\n\n Soit un trinome de la forme ax^2+bx+c\nCombien vaut a ?");
                    scanf ("%lf",&a);
                    printf("Combien vaut b?");
                    scanf ("%lf",&b);
                    printf ("et c ?");
                    scanf("%lf",&c);
                      if (a!=0)
                      {
                              printf(" Calculons delta : b^2-4ac \n");
                              delta=b*b-4*a*c;
                              printf ("      Delta = %.2lf^2 - 4 * %.2lf * %.2lf= %.4lf\n",b,a,c,delta);
                             getchar();
                                if(delta >=0)
                                    {
                                         
                                      x1=(-b+sqrt(delta))/(2*a);
                                      x2=(-b-sqrt(delta))/(2*a);
                                      if (x1==x2)
                                      {
                                       printf("\n\n   ==>   x1=%lf     <== \n\n",x1,x2)
                                                      }
                                       else
                                       {     
                                              printf ("Il y a 2 solutions");         
                                      printf("\n\n   ==>   x1=%lf et x2=%lf    <== \n\n",x1,x2);
                                          }
                                     
                                      }
                              if (delta<0)
                              {
                                          printf ("Il n y a pas de solutions dans IR\n  Les solutions dans C sont : \n\n");
                                          complexe=-delta;
                                          x1= (-b+sqrt(complexe))/2*a;
                                          sommet= -b/(2*a);
                                          racine= sqrt(complexe)/(2*a);
                                          x2= (-b-sqrt(complexe))/2*a;
                                                                             
                                          printf ("\nx1 = %.3lf + %.3lf i\n",sommet,racine);
                                          printf ("x2 = %.3lf - %.3lf i\n\n",sommet,racine);
                                          }
                              }
                             
                        else
                        {
                            printf("a ne peut pas etre egal a 0");   
                            }
                            getchar();
                            printf("\n Pour revenir au niveau principal tapez 0\n");
                          printf ("pour recommencer tapez 1\n ");
                          scanf ("%ld",&boucle);
                          system("CLS");
                            }while(boucle==1);
                            break;




                  Bon j'ai triché un peu pour afficher mais ca marche si évidemment tu initialises tout!!!
                  Bon je l'ai chopé dans ma calculatrice donc c'est normal qu'il y ai des break partout et des boucles !!!
                  Il faut que je te laisse un peu chercher .... car c'est au moins une h de codage ??? ?!
                  Bon je n'ai pas traduit z quand delta > 0
                  mais seulement quand z (nombre complexe) avec delta < 0
                  Ceci dit j'ai mis pas mal de temps à le faire .....

                  ^^



                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 décembre 2005 à 17:21:41

                    c'est pas bête, ça...
                    Tu as tout simplement mis "i", plutôt que de t'embêter avec les complexes... Il fallait y penser... Et je ne l'ai pas fait.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 décembre 2005 à 18:39:01

                      eh oui exactement ... jespere que ca t'as servi

                      il faut faire au plus simple!!
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Nombres complexes

                      × 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