begin process at 2012 05 27 18:56:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > NOMBRES COMPLEXES - COMPLEX NUMBERS

NOMBRES COMPLEXES - COMPLEX NUMBERS


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :Complex, Overload, operator, surcharge Niveau :Débutant Date de création :11/08/2011 Date de mise à jour :12/08/2011 11:46:15 Vu / téléchargé :1 500 / 71

Auteur : imed07

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Nombres complexes et surcharge d'opérateurs.
Complex numbers and operator overloading.

Exemple simple d'utilisation ... aucune amélioration par rapport à la classe standard.
Revu suite au remarques faites par CPTPINGU que je remercie.

Toute autre remarque est la bienvenue.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   ComplexNumbers
    •   ComplexNumbers
      •   Debug
        • BuildLog.htmTélécharger ce fichier [Réservé aux membres club]Voir ce fichier7 040 octets
        • Complex.objTélécharger ce fichier [Réservé aux membres club]27 637 octets
        • ComplexNumbers.exe.embed.manifestTélécharger ce fichier [Réservé aux membres club]406 octets
        • ComplexNumbers.exe.embed.manifest.resTélécharger ce fichier [Réservé aux membres club]472 octets
        • ComplexNumbers.exe.intermediate.manifestTélécharger ce fichier [Réservé aux membres club]388 octets
        • mt.depTélécharger ce fichier [Réservé aux membres club]62 octets
        • Program.objTélécharger ce fichier [Réservé aux membres club]41 996 octets
        • Utils.objTélécharger ce fichier [Réservé aux membres club]38 046 octets
        • vc80.idbTélécharger ce fichier [Réservé aux membres club]232 448 octets
      • Complex.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 038 octets
      • Complex.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier750 octets
      • ComplexNumbers.vcprojTélécharger ce fichier [Réservé aux membres club]4 253 octets
      • ComplexNumbers.vcproj.CIB.iabid.userTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 419 octets
      • Program.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier548 octets
      • Utils.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier182 octets
      • Utils.hTélécharger ce fichier [Réservé aux membres club]Voir ce fichier132 octets
    •   debug
      • ComplexNumbers.ilkTélécharger ce fichier [Réservé aux membres club]390 972 octets
    •   Visual Studio 2005
      •   Backup Files
        • ComplexNumbers
    • ComplexNumbers.ncbTélécharger ce fichier [Réservé aux membres club]1 436 672 octets
    • ComplexNumbers.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier907 octets
    • ComplexNumbers.suoTélécharger ce fichier [Réservé aux membres club]12 288 octets

Télécharger le zip


 Historique

12 août 2011 11:46:15 :
Revu suite au remarques faites par CPTPINGU

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec une capture CE PROGRAMME PERMET DE RESOUDRE LES EQUATIONS DE SECOND DEGR... par djmouh
Source avec Zip TEMPLATE C++ DE NOMBRES COMPLEXES par emiaille
Source avec Zip Source avec une capture CLASSES POUR TRAITER DES MATRICES DE COMPLEXES. par Gastonm
Source avec Zip CLASS LISTCHAINEE : LC par pastouk
Source avec Zip CALCULATRICE DE NOMBRE COMPLEXE AVEC INTERFACE API EN C++ par zarra_taoufiq

Commentaires et avis

Commentaire de CptPingu le 11/08/2011 15:56:54 administrateur CS 1/10

Quel est l'intérêt de cette classe par rapport à un vrai std::complex (dans #include <complex>) ?

Le code est parfois inélégant, la classe n'est pas très poussée (pas de template, donc pas de choix du type à utiliser). On est très très loin de la propreté et de l'élégance du type "complex" de la STL.

Critique du code:
- Évite les using namespace, voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace
- On évite généralement d'utiliser this->, puisqu'il est inutile. On écrit un attribut de classe avec un différencieur. Ex: double real; => double _real;
this-> est utile en PHP, et souvent utilisé en Java. Le C++ n'est ni du PHP ni du Java.
- En C++ un header prend l'extension .hh ou .hpp, le .h étant réservé au C.
- Dans un constructeur on utilise la liste d'initilisation dès que possible, plutôt que de tout assigner dans le corps du constructeur.
- Lorsque l'on est dans une classe, on peut accéder de manière publique aux membre d'une autre classe de même type. Donc this->imaginary*c.getImaginary(); => _imaginary * c._imaginary;
- Lorsque l'on a un booléen, il suffit de le retourner, inutile de vérifier si vrai est vrai, ou si faux est bien faux...
if ((this->real == c.getReal()) && (this->imaginary == c.getImaginary()))
  return true;
return false;
==> devient en propre:
return _real == c._real && _imaginary == c._imaginary;
- Parenthèses inutiles, si tu connais la priorité des opérateurs...
- Un main propre ce n'est pas: "void main()" mais "int main()". Je te rappelle que la plupart es OS se servent de la valeur de retour du programme...
- Pas besoin de faire des milliers de cout, on peut enchainer les opérations.
Ex:
cout << "----------------" << endl;
cout << c1 << endl;
cout << c2 << endl;
cout << *c3 << endl;
cout << c1+c2 << endl;

Devient:
std::cout << "----------------\n"
          << c1 << std::endl
          << c2 << std::endl
          << *c3 << std::endl
          << c1+c2 << std::endl;

- Il y a même une fuite mémoire dans ton exemple...

Pour conclure:
* Pas d'originalité, il existe déjà des milliers de classe complex sur ce site (Merci d'ailleurs de vérifier avant de poster)
* Code pas extra-ordinaire, bourré de mauvaises pratiques
* Classe peu évolutive (un template s'y prettait pourtant bien)
* Aucun avantage par rapport à un std::complex qui est déjà dans la STL (http://www.cplusplus.com/reference/std/complex/complex/operators/)

C'est un code que je ne recommande absolument pas !

Commentaire de imed07 le 11/08/2011 16:11:47

Elle est ou la fuite mémoire ?

Commentaire de CptPingu le 11/08/2011 16:14:24 administrateur CS

C'est bien de faire un: Complex *c3 = new Complex(3,3);
Mais le "delete c3;", il est où ?

Commentaire de buno le 11/08/2011 16:31:06 administrateur CS

Hello,
Idem que CptPingu: pas d'originalité comparé au autre code présent sur le site.
Une petite erreur de frappe dans le main:
if(c4 == c1)
  cout << "No Equality" << endl;
--> si c'est égal alors...ce n'est pas égal :D

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Overload "[ ]" [ par xenetrix ] //est-ce qu'une personne peut m'assurer la réponse à cette question? //je n'ai pas de compilateur à ma disposition Class Sanity has the structure surcharge operator << [ par elninodu42 ] Bonjour, Je dois trouver une solution permettant d'afficher dans un flux de chaine. Je ne peux pas utiliser de string... Je dois donc faire une surc constructeur de conversion explicite [ par eishtein ] bonjour les gars; comme je suis un débutant en c++, j'aimerais bien savoir comment on pourrait convertir un nombre de type quelconque en un nombre de POO: classe et heritage [ par eishtein ] bonjour les gars; Bon voilà, j'ai les deux classes suivantes: [code=cpp] class fraction { public: fraction(int=0,int=1); Convolution de 2 tableaux avec FFTW [ par pachalcs ] Je viens tout juste de télécharger la bibliotheque fftw3 et j'ai lu le tutorial. En fait, mon but est de faire la convolution de deux énormes tableaux calculatrice matricielle avec boost::shared_array [ par mosaidrd ] le code ne genere aucune ereur mais il rencotre un problem d'assertion merci pour votre aide voici mon code : [code=cpp] //fichier Matrix.h #ifndef M Surcharge des opérateurs [ par pinkettee ] Bonjour les amis, j'ai un petit problème à propos de la surcharge des opérateurs J'ai deux classes qui sont : class Cellule{ double note ; }; class Redéfinition d'une méthode dans une classe interne héritée [ par mondrone ] Bonjour, J'ai une classe qui ressemble à ca : class mon_tableau : public std::vector > { //Le but étant sans le cacher de faire un tableau à aut Surcharge des Opérateurs ? [ par MichelAliasMiB ] Bonjour, Dans le cadre d'un cours de C++, je dois faire unexercice pour comprendre la surcharge des opérateurs. J'ai un bouquin qui traite du sujet, m problème d'allocation mémoire dans ma classe [ par Bub325 ] Salut, j'ai un problème dans le code suivant au niveau de l'allocation mémoire de tmp.a = new char... dans operator+, et je ne sait pas du tout pourqu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales