IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Résolution d'équation de second degrès dans C


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Résolution d'équation de second degrès dans C
    Bonjour,

    Je suis débutant en programmation.J'ai commencé par créer des programmes banal en langage C et maintenant j'ai pour but de créer un programme qui résous des équations de second degrés de type ax²+bx+c=0 dans le corps des nombres imaginaire C.

    J'ai réussi à écrire le code pour le cas du déterminant de l'équation positif ou nul sans difficulté majeur.Mais je bloque sur le cas du déterminant négatif car il me faudrait introduire les nombres complexes dans mon code.Pour cela j'ai essayé différente techniques comme (définir le nombre i comme caractère et i*i=1 ou calculer la racine de la valeur absolue de delta puis l'affecter comme caractère et lui additionner comme caractère le nombre i ) mais sans résultat.

    J'espère que quelqu'un peut m'aider à remédier à ce problème ou m'expliquer si possible pourquoi ce que j'ai tenté de faire n'a pas marché.Merci énormément.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    où bloques-tu donc ?
    On peut retrouver ici la formule dans le cas de discriminant négatif. Qui nécessite juste un "i" à afficher mais n'intervient pas dans le calcul en soit.

    Pour la représentation en C, pourquoi ne pas utiliser une structure Complexe et écrire quelques fonctions utiles (somme, produit, module, tout ce dont tu as besoin) à utiliser avec ? Surtout si tu dois représenter la solution sous la forme a+ib, ça me semble un bon début.

    Etant donné que tu n'indiques pas ce que tu as fait, difficile de dire "pourquoi ça n'a pas marché".
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut lib cimag
    Salut,

    si tu as besoin d'utiliser les nombres imaginaires regarde du côté des libs déjà existantes sinon ton code va devenir une horreur.

    Tu ne peux pas te permettre de transformer des caractères en entiers, c'est faisable. Mais pour faire ce que tu voudrais, il te faudrait entrer tes calculs dans des chaines; extraire chaque élément, les convertir d'entier en char et inversement... Bref tu multiplies les lignes, risques d'erreurs ...

    Après, il te faudrait donner ton code pour savoir ce qui ne va pas. Mais faut utiliser les libs.

    Je t'ai trouvé ça: http://www.manpagez.com/man/3/cimag/

    Si t'as une erreur pendant la compilation (au linkage), n'oublie pas de rajouter -lm avec ton gcc -o

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour votre réponse.La méthode de résoudre l'équation dans le cas du delta négatif n'est pas un problème pour moi mais la représenter dans le langage C si.

    Concernant ce que j'ai fait , j'ai premièrement voulu définir i comme un caractère et i*i=-1 mais cela n'a pas marché je pense que c'est parce que impossible pour le programme d'effectuer des opérations sur des caractère comme sur des entiers après j'ai voulu calculer la racine de la valeur absolue du discriminant et lui ajouter un i à coté pour cela j'ai affecté d'abord la racine de la valeur absolue du discriminant à une variable (x) comme un caractère et j'ai défini une autre variable (y) comme un caractère avec y="x"+"i" mais cela n'a pas marché aussi.J'aimerais bien savoir pourquoi ça n'a pas marché.

    Pour les structures j'ai essayé d'en faire et ce en lisant un peu à propos d'eux sur le net mais je n'ai pas réussi à écrire un code exact avec peut être parce que je connais pas très bien la syntaxe à utiliser.Et la même chose m'est arrivé avec les (string) chaînes de caractères.

    voici un exemple simplifié de code que j'ai essayé d'écrire et qui aurai pu résoudre mon problème si il avait marché :

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


    main()

    {

    float delta,absdelta,racineabsdelta,x;
    char z,X2,X1;




    printf ("entrez la valeur du delta\n\n");
    scanf("%f",&delta);

    if(delta<0) absdelta=-delta;
    else absdelta=delta;


    x=sqrt(absdelta);

    X1="x";
    X2="i";

    z=X1+X2;




    printf("la racine de delta est :%c\n\n",z);


    }


    Merci encore pour votre aide.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Pense à utiliser les balises CODE plutôt que de mettre en rouge.

    Pourquoi ne pas faire un simple affichage avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("racines : (-%d - i * %d) / 2 * %d\n", b, racineDelte, a);
    ?
    Bien entendu l'ordinateur ne sait pas faire un calcul sur les complexes nativement .
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    je croyais pas qu'on pouvais modifier un petit peut la syntaxe

    Je vais essayer avec ce que tu m'a pas proposé si ça marche alors c'est SUPER

    n'empêche ca me règle juste le cas des coefficients a,b,c réels xD au cas ou a,b,c peuvent prendre des valeurs complexes là je pense qu'il faudra utiliser les structures ou les chaînes.

Discussions similaires

  1. Application pour les équations du second degré buguée
    Par Shirase_Akira dans le forum Android
    Réponses: 16
    Dernier message: 23/04/2012, 15h50
  2. Résoudre une équation du second degré
    Par Emmanuel Delahaye dans le forum Télécharger
    Réponses: 3
    Dernier message: 04/12/2011, 03h59
  3. [VBA-E] Définition et résolution d'équation 3ième degré
    Par lucky-luc dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2007, 17h01
  4. Visual basic: algo résolvant une équation du second degré
    Par mauriiice dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 05/12/2005, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo