Vous n'êtes pas identifié.
voila, j'ai un projet à faire en C++ pour l'école. Je dois faire un prog qui permet de résoudre toutes les equations du premier au quatrieme degré.
Vous allez me dire ou est le probleme ? c'est ce que je me disais jusqu'au moment ou j'ai utilisé les nombres complexes !
Et là la merde est apparue.
Ce que je veux faire c'est utiliser une varaible globale, en faire un nombre complex dans un librairie et afficher la partie reelle et complexe dans la fonction main.
Et c'est la où est le problème. En fait afficher la partie reelle et imaginaire
dans la fonction main ne fonctionne pas. ( Mais si je le fais dans la librairie il n'y a aucun prob).
J'ai le message suivant:
Tempory used for parameter '__z' in call to 'real(complex &)' Tempory used for parameter '__z' in call to 'imag(complex &)'
voila mon code:
/
* librairie C++ */ #include <iostream.h> #include <complex.h> #include <math.h> #include <conio.h> #include <stdio.h> double solution_1; #include <imaginaire.h> int main(void) { compnb(); printf("%lf + i %lf",real(solution_1),imag(solution_1)); getch(); return 0; }
et le contenu de imaginaire.h
extern double solution_1; void compnb(void) {complex solution_1=complex(1,5); return; }
Si quelqu'un pouvait m'expliquer le problème ca serait sympa parceque je suis un peu perdu !
Je rappelle que je suis obliqger d'avoir cette configuration des sources !
Je compile biesur avec TurboC et j'ai selectionner Emulation dans les eglage pour pouvoir utiliser les nombres à virgules.
Hors ligne
Ton probleme vient certainnement de cette partie du code:
void compnb(void) {complex solution_1=complex(1,5); return; }
Cette fonction ne fait absolument rien parce ke tu declares une structure complexe solution_1 locale, il faut savoir que meme si le meme nom apparteint a une variable globale, ce que le fonction voit cest en fait la variable locale. donc au fond solution_1 dans ton main est un double
et quand t'essaie d'appeler real ou imag dont l'entete est :
friend double _Cdecl real(complex &); // the real part friend double _Cdecl imag(complex &); // the imaginary part
il ya une erreur de conversion car pas de definition explicite de casting entre double et complex.
Je sais pas mais tu m'as lair de pas trop savoir ce ke tu fais :?, si tu pouvais etre plus clair je pourrai te donner une solution mais la jai pas ts les parametres donc ...
En tt cas Bonne Chance.
@+
y@ss
Hors ligne
Ca alors! Je viens de finir quelque chose qui va t'intéresser...
C'est une lib pour utiliser les nombres complexes, complex2.h !
J'en avais deja parlé avec x-thunder
En fait je l'ai faite parce que j'arrivais pas a m'en sortir avec les fichiers complex.h que je possède ( ceux de tc3, de vc6 , de c++builder5... ): elle permet de manipuler les complex aussi facilement que des double ou des float!
Ca fait une semaine que je suis dessus, maintenant je suis en période de test, mais tous mes resultats sont excellents
Un exemple pour montrer que c'est facile à utiliser: j'ai un ami qui vient de faire un prog pour inverser des matrices réelles. Et bien j'ai repris son prog, j'ai changé les trois mots "double" que j'ai vu dans ses sources en "complex" et j'ai mis #include "complex2.h" au debut, et rien qu'en faisant ca, son prog inversait les matrices complexes :!:
Je t'ai mis un lien pour que tu puisses l'essayer, je compte en fait le distribuer plus tard aux etudiants de ma fac quand tous les tests seront finis
Il y a des explications dans le fichier-meme.
A tous ceux qui manipulent bien les classes en c++ ici, dites moi si je peux améliorer quelque chose, c'est la première fois que je les utilise comme ca
PS: Je l'ai adaptée pour tc3, normalement tous les types 'short int' devraient etre des bool :?
Hors ligne
Au fait tu entends quoi par la?
Je rappelle que je suis obliqger d'avoir cette configuration des sources !
:?
Hors ligne
Tu le fais pour Graph100 ?
Hors ligne
Un peu bete de faire ca pour g100 quand ca fait partie des fonctions de base non?
Hors ligne
Je demande ça car il dit qu'il utilise l'émulation de la virgule flotante ce qui est une mauvaise idée si ce n'est pas fait pour fonctionner sur G100...
Hors ligne
je le fais pour PC, mais n'ayant pas visualC++ chez moi (mais seulement à lécole) je voulais commencer le projet en avance.
Je demande ça car il dit qu'il utilise l'émulation de la virgule flotante ce qui est une mauvaise idée si ce n'est pas fait pour fonctionner sur G100
pourquoi ?
Hors ligne
Je sais pas mais tu m'as lair de pas trop savoir ce ke tu fais , si tu pouvais etre plus clair je pourrai te donner une solution mais la jai pas ts les parametres donc ...
ecoute c'est compliqué, je voulais construire un nombre complexe avec une variable globale dans une librairie. Mais des que je le fais dans un libraire j'ai un problème. C'est tout ! Et j'ai besoin de faire ça pour mon projet (qui est bien avancé mais j'ai ce bug qui me fait chier).
Hors ligne
L'émulation n'est utile que pour les system ne disposant pas de coprocessur arithmétique (comme la g100), étant donnée que c'est inutile, ça ralenti ton programme et peux poser d'autres problèmes (la précision n'est pas la même), et émuler est toujours moins bien que la réalité non ?
Si tu cherche un compilateur performant et gratuit tu devrait t'intersser de près à GCC. (dont la version 3.2 est sorti il y a peu de temps).
@+
Hors ligne
je voulais construire un nombre complexe avec une variable globale dans une librairie. Mais des que je le fais dans un libraire j'ai un problème. C'est tout ! Et j'ai besoin de faire ça pour mon projet (qui est bien avancé mais j'ai ce bug qui me fait chier).
Essaie ma lib, ca ira mieux!
Hors ligne
tu pourrais compresser ta librairie ? merci
et puis je voudrais faire ce sans libraire, c'est pour l'ecole quand même !
Tu pourrais peut etre m'expliquer comment faire puisque tu maitrise les nb complexe en c++ ?
Hors ligne
émuler est toujours moins bien que la réalité non ?
Bleem ! annonce ki améliore les jeux play.. Mais bon..!
Hors ligne
tu pourrais compresser ta librairie ? merci
Tu veux que je fasse un zip pour y mettre un fichier texte de 17 ko?? 8O 8O
Je veux bien croire que vous avez pas tous l'adsl, mais a se point la...
J'ai refait un upload ( version finale ), mais la meilleure facon que tu comprennes comment ca marche c'est d'abord que tu fasses l'effort d'y jeter un oeil! :!:
Hors ligne
mais la meilleure facon que tu comprennes comment ca marche c'est d'abord que tu fasses l'effort d'y jeter un oeil!
je sens un air de déjà vu
Je te demande de compresser ton fichier parceque quand je le download comme çà, j'ai eu librairie tout en bordel sans de retour à la ligne avec des caractère bizarre.
Hors ligne
Ok je te mettrai ca, mais attention c'est édité sous windows ( vc++ ), donc sous dos l'édition risque de pas passer tres bien!
Hors ligne
Hors ligne
ABSOLUMENT RIEN À VOIR :
C'est quelle école si c'est pas secret défense ni une école trop pourrie pour oser avouer que tu y es ?