|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Utilisation des complexes de la STL [ Algorithme / Maths ] (Fr33z)
Informations & options pour cette discussion
jeudi 17 juillet 2008 à 03:41:56 |
Utilisation des complexes de la STL

Fr33z
|
Bonjour à tous, j'aurais aimé savoir comment je peux faire pour changer la valeur "manuellement" d'un nombre complexe défini à l'aide des templates complex STL : #include <complex>
using namespace std;
int main() { complex<long double> a(3,4); //ici a vaut 3+4i //là j'aimerai par exemple changer sa valeur à 5+6i, par exemple }
J'aimerais pouvoir changer cette valeur sans avoir à reconstruire l'objet car cette opération doit être effectuée un grand nombre de fois et rapidement... De plus, je sais que le constructeur est surchargé , et que l'on peut séparer la déclaration de l'affectation car une instruction du type complex<long double> a; ne génère pas d'erreur... Mais que mettre après ? a=(5,6) par exemple ne fonctionne pas...
Merci d'avance !
|
|
|
jeudi 17 juillet 2008 à 10:16:19 |
Re : Utilisation des complexes de la STL

jfrancois
|
Réponse acceptée !
Bonjour,
Voilà un exemple :
#include <stdio.h> #include <complex> using namespace std; int main() { complex<long double> a(3,4); //ici a vaut 3+4i printf("a = %.2lf + %.2lfi\n",a.real(),a.imag()); //là j'aimerai par exemple changer sa valeur à 5+6i, par exemple a.real(5); a.imag(6); printf("a = %.2lf + %.2lfi\n",a.real(),a.imag()); } Ce qui donne :
a = 3.00 + 4.00i a = 5.00 + 6.00i
Jean-François
|
|
|
jeudi 17 juillet 2008 à 10:21:11 |
Re : Utilisation des complexes de la STL

Fr33z
|
Bonjour, merci pour cette réponse. J'ai également trouvé une autre façon cette nuit :
a.real() = 5; a.imag() = 6;
Cette syntaxe semble également fonctionner... Cordialement
|
|
|
jeudi 17 juillet 2008 à 10:52:04 |
Re : Utilisation des complexes de la STL

jfrancois
|
Réponse acceptée !
C'est refusé sous Visual C++ 6.0 (et heureusement car ça ne veut rien dire) ! Vous utilisez quel compilateur ? Il y a aussi a = 5; pour générer 5+0i (partie imaginaire nulle systématiquement). Jean-François
|
|
|
jeudi 17 juillet 2008 à 11:09:05 |
Re : Utilisation des complexes de la STL

Fr33z
|
J'utilise GNU GCC Compiler, celui par defaut avec code::blocks. Connaissez vous les avantages/désavangages de Visual c++ par rapport à code::blocks ? J'envisage de changer d'ide, et Visual c++ a l'air plus complet...
Je me disais bien que cette syntaxe était vraiment étrange. J'ai refait des essais, et cette syntaxe n'a plus compilé. J'avais dû faire une erreur.
Cordialement
|
|
|
jeudi 17 juillet 2008 à 11:36:21 |
Re : Utilisation des complexes de la STL

jfrancois
|
J'utilise Visual C++ 6.0 depuis qu'il est sorti (en 1998 je crois) et j'en suis très content (je n'utilise absolument pas la partie "Visual", je code tout --> je maîtrise tout). Il ne connaît pas les dernières nouveautés disponibles sous Windows mais je les ajoutent au fur et à mesure de mes besoins ! Bien sûr il y a des versions beaucoup plus récentes et dispo en version gratuite (mais limitée) comme Visual C++ 2008 Express. Quant à Code::Blocks je l'ai installé il y a quelques mois pour tester une réponse faite ici et tout c'est bien passé ! Tous les codes faits sous Visual C++ testés sous Code::Blocks sont passés à un détail près concernant les déclarations des variables dans les boucles for ! (la variable est locale à la boucle avec Code::Blocks et continue d'exister après la boucle avec Visual C++, je trouve que Code::Blocks est plus "propre" dans ce cas là). Jean-François
|
|
|
jeudi 17 juillet 2008 à 11:42:16 |
Re : Utilisation des complexes de la STL

Fr33z
|
Merci beaucoup pour ces précisions. Je vais donc me procurer la version limitée pour me forger une opinion. (c'est curieux pour la portée des variables, je croyais la norme c++ indique la portée de la variable à l'intérieur de la boucle...) Cordialement.
|
|
|
jeudi 17 juillet 2008 à 13:30:29 |
Re : Utilisation des complexes de la STL

luhtor
|
Réponse acceptée !
"C'est refusé sous Visual C++ 6.0 (et heureusement car ça ne veut rien dire) !" => Bien sur que si, ca veut dire quelque chose. Cette syntaxe est tout a fait correcte: a.real() = 5; a.imag() = 6;
Puisque si vous regardez la classe Complex, vous trouvez les deux fonctions suivantes: /// Return real part of complex number. _Tp& real(); /// Return imaginary part of complex number. _Tp& imag();
Ce qui rend la syntaxe ci dessus légale et normale. Peut etre que sous Visual C++ 6.0, l'implémentation est légèrement différente.
|
|
|
jeudi 17 juillet 2008 à 14:39:40 |
Re : Utilisation des complexes de la STL

jfrancois
|
Cette spécification est absurde. "fonction = qq chose" ça ne veut rien dire, c'est une absurdité sémantique : une fonction ça retourne qq chose, explicitement ou implicitement, ça ne prend pas qq chose ! Et en ce qui concerne C++ cette absurdité ne fonctionne que si la fonction retourne une référence ce qui n'est pas le cas ici sous VC++ ! Jean-François
|
|
|
jeudi 17 juillet 2008 à 17:51:07 |
Re : Utilisation des complexes de la STL

luhtor
|
Non cette spécification est parfaitement correcte. Une fonction ca ne représente rien ! c'est uniquement son type de retour qui a un sens. Et en l'occurence il s'agit d'un référence, ou encore d'un pointeur déguisé.
""fonction = qq chose" ça ne veut rien dire" => Il s'agit plutot de : "ce que la fonction retourne = qq chose"
"Et en ce qui concerne C++ cette absurdité ne fonctionne que si la fonction retourne une référence" => Bas oui, c'est justement le cas ici: /// Return real part of complex number. _Tp& real();
|
|
|
Cette discussion est classé dans : changer, valeur, exemple, stl, complex
Répondre à ce message
Sujets en rapport avec ce message
Itérateurs dans la STL [ par christouilhe ]
Salut à vous tous !Oui, je sais, je suis nouveau sur ce sîte, mais je compte bien lui faire honneur !J'ai une question qui me turlupine en C++, ou plu
Changer la valeur d'une variable dans un exe [ par scolinks ]
Salut,Je me demandait si c'est possible de changer la valeur d'une variable qui se trouve dans un exe...Par example dans mon exe j'ai:int s;s = 5;</
[c] Changer la valeur d'une constante define (on ne rigole pas Svp) [ par nitrique ]
Bonjour à tous,Je suis bien embeté, j'ai des tableaux de chaines à initialiser à une telle longueur par défaut et cette longueur, comme vous le savez
utiliser RegFlushKey [ par gamemonde ]
Bonjour je voulais savoir si RegFlushKey permettais de changer automatiquement la base de registre du systeme exemple changer la cle Window de HKCU/Co
objet qui retourne une valeur (if (monObjet)) ?? [ par Bub325 ]
Bonjour, Je cherche à faire retourner une valeur à mon objet pour pouvoir l'utiliser dans les if par exemple si c'est possible:Exemple:class objet{...
(win32) Bordure [ par mogwai93 ]
BonjourJ'aimerais changer le motif de bordure utilisé avec le flag WS_BORDERpar exemple :- changer la couleur- changer l'épaisseur- changer le style (
Changer le type d'une variable [ par dayvid75014 ]
Bonjour à tous,J'aimerais rechercher des octets dans un tableau : 0x47. MAIS, lorsque je définis "int valeur=47" et que je fais dans ma boucle Buffer[
Garder la valeur d'un char [ par striker90 ]
Bonjour à tous,Encore une question ( surement bête ), mais je traine aussi là dessus.Je suis sur Borland Builder c++ v6.0.J'ai une trame en DMx à envo
Comment changer une image ?? [ par andrealphus ]
4ndr&@lphu$bonjour tt le monde,voilà, j'ai créer une dialogBox non-modal via CreateDialog.elle affiche une image et un bouton....maintenant, en foncti
STL, <list> , sort() [ par iam_myst ]
Bonjour a tous J'aimerais avoir des informations sur la fonctions sort(); Elle trie une certaine liste , mais selon quelle valeur ?? C'est facile a im
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Touch HD
Entre 25€ et 605€
|