Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme pour calculer la force de pesanteur.

Problème...

    19 décembre 2005 à 18:43:23

    A la recherche de nouvelles idées, aujourd'hui mon prof de physique nous a appris comment calculer la force de pésanteur !(Oui en Suisse on a encore une semaine d'école o_O )!
    Alors voilà, j'ai fait un programme mais il ne fonctionne pas!

    Qqun pourrait m'aider?

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>

    int main(int argc, char *argv[])
    {
      float masse1 = 0, masse2 = 0, distance = 0, nombre = 10, resultat = 0;
     
      printf("\n                 Calculer la Force de Gravitation entre 2 masses\n\n");
        printf("                             ***Par The_Greek22***");
        printf("\n\nVeuillez inscrire la masse de l'objet 1:");
        scanf("%lf", &masse1);
        printf("\n");
           printf("\nVeuillez inscrire la masse de l'objet 2:");
        scanf("%lf", &masse2);
        printf("\n");
           printf("\nVeuillez inscrire la distance entre les 2 objets:");
        scanf("%lf", &distance);
        printf("\n\n");
       
        resultat = (6.667 * 0.00000000001) * ((masse1 * masse2) / (distance * distance));
        printf("\nLa force de Pesanteur est de %lf Newtons.\n\n", resultat);
       
      system("PAUSE");     
      return 0;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      19 décembre 2005 à 18:52:54

      Je sais pas mais j'emet une hypothese : peut-etre que quand tu me float faut taper %f car pour les int on ne tape pas %ld mais %d donc essaye de remplacer ton float par un double ou enleve ton l du %lf. ;)
      En espezrant que ça marche.
      • Partager sur Facebook
      • Partager sur Twitter
        19 décembre 2005 à 19:02:45

        Meric pour l'astuce...mais ça ne marche pas ^^.

        • Partager sur Facebook
        • Partager sur Twitter
          19 décembre 2005 à 19:17:23

          Ton code me semble correct, tu as une erreur à la compilation ou à l'execution ?

          De quel genre d'erreur s'agit-il ?
          • Partager sur Facebook
          • Partager sur Twitter
            19 décembre 2005 à 19:19:40

            J'ai testé le code, il compile bien, seuleument il donne une réponse du genre 1.#INF00
            J'ai essayé de faire 6.667 / 0.00000000000001 a la place de 6.667 * 0.00000000001
            Et ca me donne une réponse correcte, verifie que tu t'es pas gourré dans ça (m'enfin, je pense pas que ca viennent de la :o )
            • Partager sur Facebook
            • Partager sur Twitter
              19 décembre 2005 à 19:20:47




              Image utilisateur



              EDIT: ouais mais la formule pour calculer la force de gravitation c'est:

              Fg = G * ((m1*m2) / (R^2))

              G = 6.67 * 10^-11 (dix puissance moins 11)
              m1 = masse de l'objet 1
              m2 = masse de l'objet 2
              R = Distance entre les 2 objets
              Fg = Force de gravitation
              • Partager sur Facebook
              • Partager sur Twitter
                19 décembre 2005 à 19:24:29

                Pour dessu :

                Il a raison, la formulle est bonne, mais un float ne peut pas retenir 11 chiffres il me semble...



                A mon avis, la force gravitationelle donne un résultat tellement petit qu'elle ne peut pas être sotckée dans un float ! (avec ton calcul ca me fait un 10^-11, et je pense que c'est au delà des limites des float)

                Normalement, ça devrait marcher ! Essaye de t'arranger pour que le calcul donne un truc plus petit (met 0.01 metres) et voie si ca marche !
                • Partager sur Facebook
                • Partager sur Twitter
                  19 décembre 2005 à 19:27:04

                  Citation : Pas de titre

                  la force gravitationelle donne un résultat tellement petit qu'elle ne peut pas être sotckée dans un float



                  Citation : Pas de titre

                  Essaye de t'arranger pour que le calcul donne un truc plus petit



                  o_O:lol:
                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 décembre 2005 à 19:30:14

                    Je ovoulais dire plus grand pour le deuxième... ;)

                    Enfin, tu m'a compris :-°
                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 décembre 2005 à 19:31:54

                      Oui j'ai compris ^^ .
                      Mais je peux garder mon float?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 décembre 2005 à 19:32:11

                        Sur Comment Ca marche ils expliquent les types de données, normalement un float devrait suffire.. enfin :o
                        • Partager sur Facebook
                        • Partager sur Twitter
                          19 décembre 2005 à 19:38:39

                          Donc ça devrait marcher là?
                          non?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 décembre 2005 à 20:00:41

                            Ben normalement oui, mais essaye de remplacer les float par des long double..
                            • Partager sur Facebook
                            • Partager sur Twitter
                              19 décembre 2005 à 20:24:31

                              avec les double ça marche pas.
                              Avec les long, ça donne pas le résultat après la virgule
                              avec les float, ça marche que avec les décimales, sinon avec les entiers y a ce truc bizzare: 1.#INF00
                              • Partager sur Facebook
                              • Partager sur Twitter
                                19 décembre 2005 à 20:55:16

                                Non long double c'est aussi une commande, c'est les doubles mais en plus long ;)
                                ++
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  19 décembre 2005 à 21:59:50

                                  j'ai pas tout compris dark-side...
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Anonyme
                                    19 décembre 2005 à 23:06:03


                                    #include <stdio.h>
                                    #include <stdlib.h>

                                    #define G 0.000000000066667

                                    int main(int argc, char *argv[])
                                    {
                                         double masse1 = 0, masse2 = 0, distance = 0, resultat = 0;
                                         printf("\n                 Calculer la Force de Gravitation entre 2 masses\n\n");
                                         printf("                             ***Par The_Greek22***");
                                         printf("\n\nVeuillez inscrire la masse de l'objet 'attracteur':");
                                         scanf("%lf", &masse1);
                                         printf("\n");
                                         printf("\nVeuillez inscrire la masse de l'objet 'attracte':");
                                         scanf("%lf", &masse2);
                                         printf("\n");
                                         printf("\nVeuillez inscrire la distance entre les 2 objets:");
                                         scanf("%lf", &distance);
                                         printf("\n\n");
                                         resultat = G*((masse1*masse2)/(distance*distance));
                                         printf("\nLa force de gravitation est de %.20lf Newtons.\n\n", resultat);
                                         
                                         system("PAUSE");     
                                         return 0;
                                    }


                                    pour des calculs comme ca, tu dois utiliser des double. la precision derrière la virgule est plus grande que celle des float.

                                    j ai change la formule, de ce que j me souvien de mes cours de physique, j pense que c la mienne qui est juste :p (à confirmer).

                                    j ai également ajouter dans le printf un %.20lf. le .20 permet d'afficher 20 décimales.
                                    j'ai mit le G en #define car c'est une constante.
                                    j'ai change les phrases de tes printf. y m semble que le premier m c est celui qui attire et le second (qui est sur la fraction c est celui qui est attiré. et la formule F=m1*G*(M2/r^2)

                                    edit: dans le titre tu met force de gravitation, dans le printf tu met force de pesanteur...faut savoir.

                                    gravitation : resultat = G*((masse1*masse2)/(distance*distance));
                                    pesenteur : resultat = masse1*G*(masse2/(distance*distance));
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      20 décembre 2005 à 7:37:39

                                      Je rajouterais que ce n'est ni gravitation ni pesanteur mais bien la force de gravitation universelle ou d'attraction universelle.

                                      La formule est la suivante:
                                      F = (G * m1 * m2) / d²

                                      Dans le cas ou les masses considérées sont celle de la Terre (ou d'une autre planète) et celle d'un objet à sa surface, on parlera de pesanteur.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        20 décembre 2005 à 8:54:46

                                        Les ordinateurs font de grosse erreurs lorsqu'on les divises par des nombres trop grand. Alors si vous divisez par 0.0000000000000000000001 :p

                                        Pour eviter cela, il faudrait essayer d'ecrire multiplier par 10^¯11
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          20 décembre 2005 à 15:47:34

                                          Ok merci!
                                          Je vais tester le code et le calcul est le même. ^^
                                          Sinon les 2 objets s'attirent de la même force donc ça n'a pas de différence.
                                          Par exemple la terre attire la lune avec un firce X et la lune attire la terre avec une force X. ^^

                                          Merci à tous!
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            20 décembre 2005 à 18:11:04

                                            +1 avec Seb, ce que tu calcules est l'intensité de la force que les 2 objets exercent l'un sur l'autre(force d'interaction gravitationnelle) et non pas la force de la pesanteur qui, elle s'exprime en N.kg-1.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              20 décembre 2005 à 20:34:47

                                              pour la pesanteur , je m'étais trompé! ^^
                                              Donc moi aussi je suis d'accord avec seb et toi!
                                              J'ai dis la même chose, ou du moins j'ai pensé la même chose! ^^

                                              Je ne connais que cette formule depuis Lundi...
                                              • Partager sur Facebook
                                              • Partager sur Twitter

                                              Programme pour calculer la force de pesanteur.

                                              × 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