Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème dans le calcul de plusieurs valeurs d'un

    15 décembre 2018 à 18:10:10

    Salut tous le monde.

    Je bute depuis tout à l'heure sur un problème assez épineux. Je veux calculer la valeur de Req pour un nombre n de résistance rentrer par l'utilisateur. J'utilise donc une fonction afin de calculer le résultat.

    J'ai beau retourner le problème dans tous les sens je ne comprend pas pourquoi mon programme ne fonctionne pas.

    Si certain ici voit ou se trouve le problème se serait super

    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2018 à 18:17:26

      Hello,

      IdrisGhilas a écrit:

      J'ai beau retourner le problème dans tous les sens je ne comprend pas pourquoi mon programme ne fonctionne pas.

      Tu fais tes calculs avec des entiers! Mais avec des entiers, 1/3 donne zéro. Donc dans ton calcul, tu dois caster tableau[i] en float (ou double), et / ou metttre 1. (au moins le dernier !)  (qui est un double) au lieu de 1 (qui est un int).

      Et, la prochaine fois, évite les printscreen:

      -
      Edité par edgarjacobs 15 décembre 2018 à 18:23:00

      • 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

        15 décembre 2018 à 18:28:31

        edgarjacobs a écrit:

        Hello,

        IdrisGhilas a écrit:

        J'ai beau retourner le problème dans tous les sens je ne comprend pas pourquoi mon programme ne fonctionne pas.

        Tu fais tes calculs avec des entiers! Mais avec des entiers, 1/3 donne zéro. Donc dans ton calcul, tu dois caster tableau[i] en float (ou double), et / ou metttre 1. (au moins le dernier !)  (qui est un double) au lieu de 1 (qui est un int).

        Et, la prochaine fois, évite les printscreen:

        -
        Edité par edgarjacobs il y a moins de 30s

        Désolé pour le pintscreen 

        Pour le coup je n'ai pas super bien compris la démarche que je devais entreprendre, j'ai passé mon tableau en double ainsi que mon f mais rien n'y fait j'obtient toujours  en résultat final 

        • Partager sur Facebook
        • Partager sur Twitter
          15 décembre 2018 à 18:47:26

          Fais tout le calcul en float si tu veux une valeur de résistance très précise

          #include <stdio.h>
          
          float parallel(int vres[],int nres) {
          	float f=0;
          	
          	for(int i=0;i<nres;i++)
          		f=f+(1./(1./vres[i]));
          	
          	return(f);
          }
          
          int main(void) {
          	int vres[]={100,200,300};
          	
          	printf("// = %f ohms\n",parallel(vres,3));
          	
          	return(0);
          	
          }

          mais la manière de calculer la résistance résultante est fausse.

          • 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

            15 décembre 2018 à 18:51:38

            float foncparallele(double tableau[],int taille)
            {
                int i ;
                double f=0 ;
                for(i=0;i<=taille;i++)
                    {
                       f=f+(1/(1/tableau[i])) ;
                    }
                    return f ;
            }
            
            
              printf("Voila les valeurs de toute vos resistance\n");
                    for(i=0;i<=r;i++)
                    {
                       printf("%d\n", tableau[i]);
                    }
            
                    printf("%f\n", foncparallele(tableau,r));

            Malgré ça mon résultat reste à zéro

            Quand tu dis que la manière de calculer la résultante est fausse tu parles de la formule que j'ai utilisé ou du principe ?

            • Partager sur Facebook
            • Partager sur Twitter
              15 décembre 2018 à 18:56:18

              1) 1/Res=1/r1+1/r2+....+1/rx

              2) ton problème, c'est que dans le main() ton tableau est int, et que dans la fonction, tu le déclares double. Ton compilateur ne doit pas être content

              -
              Edité par edgarjacobs 15 décembre 2018 à 19:00:36

              • 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

              Problème dans le calcul de plusieurs valeurs d'un

              × 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