Cours:PooTD1 qtcreator
Révision datée du 18 septembre 2020 à 11:31 par Bjacquot (discussion | contributions)
TD1 : découverte du C++ et de QT Creator
- Suivre l’explication sur la création d’un projet C++ avec Qt Creator.
- Modifier le fichier
main.cppavec le code suivant. Compiler et exécuter le projet.
#include <iostream>
using namespace std;
class Complexe {
public :
double re;
double im;
void affiche() {
cout << re << "+" << im << "i" << endl;
}
};
int main() {
Complexe z1;
cout << "coucou" << endl;
cout << "z1=";
z1.affiche();
}
- Quels sont les attributs de la classe
Complexeainsi définie ? Quelles sont ses méthodes ? - Ajouter à la classe un constructeur dont voici le squelette :
Complexe (double _re, double _im) {
// à compléter
}
- Ajouter à la classe une méthode permettant d’ajouter un nombre complexe :
Complexe add(Complexe z) {
// à compléter
}
qui permet de retourner un complexe correspondant à l’addition du nombre courant avec un nombrez. Exemple d’utilisation :
Complexe z1(0,1);
Complexe z2(1,0);
Complexe z3 = z1.add(z2);
- Ajouter des getters et des setters aux attributs.
- Ajouter des méthodes : produit de deux complexes, conjugué, …
- Le cas échéant, vous pouvez reprendre le TD de S1 sur les nombres complexes : Cours:TdComplexe
Une correction possible
#include <iostream>
#include <math.h>
using namespace std;
class Complexe
{
public :
double re;
double im;
Complexe(double r, double i)
{
re = r;
im = i;
}
Complexe()
{
re = 0;
im = 0;
}
Complexe add(Complexe z)
{
Complexe res;
res.setRe(re+z.re);
res.setIm(im+z.im);
return res;
}
double module()
{
double m;
m = sqrt(re*re+im*im);
return m;
}
void affiche()
{
cout << re;
if (im >=0)
{
cout << "+";
}
cout << im << ".i" <<endl;
}
void setRe(double r)
{
re = r;
}
void setIm(double i)
{
im = i;
}
void conjugue()
{
im = -im;
}
};
int main()
{
Complexe z1(1,1);
double mod;
mod=z1.module();
cout <<"||z1||="<<mod<<endl;
Complexe z2;
Complexe z3(-4,5);
z3.affiche();
z3.conjugue();
z3.affiche();
Complexe zr;
zr=z3.add(z2);
return 0;
}