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 :

[Débutant] Affichage structure nombre complexe


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2020
    Messages : 20
    Par défaut [Débutant] Affichage structure nombre complexe
    Bonjour je suis débutante en c++ et avant de commencer à écrire des class je m'exercer avec une simple structure mais j'ai un problème dans l'affichage de ma fonction somme et produit et je ne comprends pas pourquoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    typedef struct {
        float re;
        float im;
    }complexe;
     
    void AfficheComplexe(const complexe&);
    void permuter (complexe&,complexe&);
    complexe somme(const complexe&,const complexe&);
    complexe produit(const complexe&,const complexe&);
    float module(const complexe&);
    complexe conjuge (const complexe&);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include "complexe.h"
    #include <iostream>
    #include <cmath>
    using namespace std;
     
    void AfficheComplexe (const complexe& c)
    {
        cout<<c.re<<c.im<<endl;
    }
     
    void permuter(complexe& c1,complexe& c2)
    {
        complexe c3;
        c3=c1;
        c1=c2;
        c2=c3;
    }
     
    complexe somme(const complexe& c1,complexe& c2)
    {
        complexe sum;
        sum.re=c1.re+c2.re;
        sum.im=c1.im+c2.im;
     
        return sum;
    }
     
    complexe produit (const complexe& c1,const complexe& c2)
    {
        complexe p;
        p.re=(c1.re*c2.re)-(c1.im*c2.im);
        p.im=(c1.re*c2.re)+(c1.im*c2.re);
     
        return p;
    }
     
    float module (const complexe& c)
    {
        float m;
        m=sqrt((c.re*c.re)+(c.im*c.im));
        return m;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    #include "complexe.h"
    #include <iostream>
    using namespace std;
     
    int main (void)
    {
        //afficher deux entier inverser:
       /* int a=1,b=2;
        cout<<a<<b<<endl;
        permuter(a,b);
        cout<<a<<b<<endl;*/
     
        //afficher un structure :
     
        complexe c;
        c.re=1;
        c.im=2;
     
        //permute deux structure de complexe:
        complexe c1;
        c1.re=3.0;
        c1.im=4.0;
        //permuter(c,c1);
     
        /*
        cout<<c.re<<"\n"<<c.im<<"\n"<<endl;
        cout<<c1.re<<"\n"<<c1.im<<"\n"<<endl;*/
     
     
        AfficheComplexe(somme(c,c1));
     
        //affiche le module d'un complexe
        cout<<module(c)<<endl;
     
     
     
    }

    je vous remercie d'avance pour votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 768
    Par défaut
    Je vais être franc avec toi

    Ton code c'est du C à la sauce C++.
    Pour l'affichage, il faut surcharger l'opérateur operator << : mais comme tu fais du C, tu es trop loin de ce "cours".

    Pareil, pour la somme et l'addition, on peut faire des méthodes (et donc des opérations "sur place" contrairement à ton code qui retourne le résultat), mais l'idéal c'est la surcharge des opérateurs.

    Et explique-nous mieux ton problème : "affichage de ma fonction somme et produit"

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Russie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut Bonjour
    Bonjour,

    Le problème c'est ce que le compilateur ne sait pas l'opérateur d'assignation complexe = , donc il vous faut le définir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    struct complexe
    {
        float re;
        float im;
     
        complexe& operator = (const complexe& c) {
     
            re = c.re;
            im = c.im;
     
            return *this;
        }
    };

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    @EliasF00F, Il n'y a aucun problème pour le constructeur par copie, l'opérateur de copie et le destructeur. Ceux-ci sont automatiquement créés si c'est possible. Le constructeur par défaut peut lui aussi l'être.

    Je ne vois aucun problème dans ce code. Sauf que tu colles la partie réelle et la partie imaginaire quand tu affiche un complexe, d'où un texte illisible. Peut-être que tu peux nous préciser le "problème".

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Janvier 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Russie

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 25
    Par défaut
    Bonjour dalfab,

    Bien sûr, il n'y a aucun problème dans le code, je suis d'accord avec vous.
    Mais à mon avis au sens mathématique c'est un peu plus clairement de définir tout les opérateur explicitement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    complexe& operateur= (const complexe&); // pour c1 = c2
    complexe& operateur= (float); //pour c1 = 1.0
    complexe& operateur= (string i); // pour c1 = i
    etc.

    Cordialement,

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 258
    Par défaut
    Il y a pas un truc tout fait pour gérer les nombres complexes en C++ ?

    apparemment ça existe en C:
    http://manpagesfr.free.fr/man/man7/complex.7.html

    a moins qu'on demande de refaire la roue dans le cadre de l'apprentissage.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Affichage nombre complexe depuis VBA
    Par igarch96 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/04/2017, 21h34
  2. Réponses: 3
    Dernier message: 27/10/2013, 20h14
  3. Problème d'affichage d'un nombre complexe dans GUI
    Par clem3900 dans le forum MATLAB
    Réponses: 3
    Dernier message: 27/05/2013, 13h34
  4. calcule la somme de 2 nombre complexes avec structure
    Par autoin dans le forum Débuter
    Réponses: 3
    Dernier message: 05/04/2008, 20h51
  5. [Nombre Complexe]affichage formatte
    Par parsy dans le forum Langage
    Réponses: 2
    Dernier message: 20/08/2005, 00h36

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