This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
in204:tds:sujets:td5:part1 [2019/11/12 19:29] bmonsuez [Question n°3.2] |
in204:tds:sujets:td5:part1 [2022/11/18 10:48] (current) |
||
|---|---|---|---|
| Line 30: | Line 30: | ||
| <hidden Correction> | <hidden Correction> | ||
| + | <nodisp 2> | ||
| Pour convertir un nombre en virgule flottante en un nombre complexe, il faut définir de [[in204:cpp:syntax:class:constructor|nouveaux constructeurs]] qui vont prendre un seul argument qui aura pour type le type d'un nombre à virgule flottante. | Pour convertir un nombre en virgule flottante en un nombre complexe, il faut définir de [[in204:cpp:syntax:class:constructor|nouveaux constructeurs]] qui vont prendre un seul argument qui aura pour type le type d'un nombre à virgule flottante. | ||
| Line 63: | Line 64: | ||
| }; | }; | ||
| </code> | </code> | ||
| - | |||
| </hidden> | </hidden> | ||
| ==== Question n°1.2===== | ==== Question n°1.2===== | ||
| Line 94: | Line 94: | ||
| }; | }; | ||
| </code> | </code> | ||
| - | |||
| </hidden> | </hidden> | ||
| ==== Question n°1.3===== | ==== Question n°1.3===== | ||
| Line 187: | Line 186: | ||
| Complex complexB(Polar(), 1.0, 0,52); | Complex complexB(Polar(), 1.0, 0,52); | ||
| </code> | </code> | ||
| - | |||
| </hidden> | </hidden> | ||
| Line 268: | Line 266: | ||
| </code> | </code> | ||
| - | |||
| </hidden> | </hidden> | ||
| Line 317: | Line 314: | ||
| } | } | ||
| </code> | </code> | ||
| - | |||
| </hidden> | </hidden> | ||
| Line 352: | Line 348: | ||
| } | } | ||
| </code> | </code> | ||
| - | |||
| </hidden> | </hidden> | ||
| ==== Question n°2.2==== | ==== Question n°2.2==== | ||
| Line 366: | Line 361: | ||
| <hidden Correction> | <hidden Correction> | ||
| - | |||
| <code cpp> | <code cpp> | ||
| class Complex | class Complex | ||
| Line 423: | Line 417: | ||
| </code> | </code> | ||
| + | |||
| </hidden> | </hidden> | ||
| Line 432: | Line 427: | ||
| Complex complexValue = 3.3 + 5 * I; | Complex complexValue = 3.3 + 5 * I; | ||
| </code> | </code> | ||
| + | |||
| + | <hidden Correction> | ||
| + | Nous pouvons désormais définir des types complexes et effectué des calculs sur ces types complexes. | ||
| + | |||
| + | Ainsi il sera possible de définir : | ||
| + | |||
| + | <code cpp> | ||
| + | Complex I(0, 1); | ||
| + | |||
| + | Complex complexValue = 3.3 + I; | ||
| + | |||
| + | </code> | ||
| + | |||
| + | Cependant, le code suivant est ambiguë : | ||
| + | |||
| + | <code cpp> | ||
| + | Complex complexValue = 3.3 + 5 * I; | ||
| + | </code> | ||
| + | En effet, il faudrait être mesure de faire une multiplication entre un nombre entier ou un nombre à virgule flottante et un nombre complexe. Nous verrons comment faire pour effectuer ce type conversion à la fin de l'exercice. | ||
| + | |||
| + | </hidden> | ||
| + | |||
| ==== Question n°2.4 ==== | ==== Question n°2.4 ==== | ||
| Line 459: | Line 476: | ||
| <hidden Correction> | <hidden Correction> | ||
| + | <code cpp> | ||
| Complex operator * (const Complex& aRightValue) const | Complex operator * (const Complex& aRightValue) const | ||
| { | { | ||
| Line 474: | Line 491: | ||
| - aRightValue.mImaginaryPart / squareNorm); | - aRightValue.mImaginaryPart / squareNorm); | ||
| } | } | ||
| + | |||
| + | </code> | ||
| </hidden> | </hidden> | ||
| + | |||
| ==== Question n°3.3 (optionnel) ==== | ==== Question n°3.3 (optionnel) ==== | ||
| - | Proposer une surcharge des opérations + et –. Implanter ces dernières et tester. | + | Proposer une surcharge des opérations '*=' et '/='. Implanter ces dernières et tester. |
| <code cpp> | <code cpp> | ||