Cours:PooTD1 qtcreator : Différence entre versions
Ligne 1 : | Ligne 1 : | ||
= Projet QT Creator : classe Vecteur = | = Projet QT Creator : classe Vecteur = | ||
+ | == Un premier projet == | ||
* Créer un projet C++ (application non-qt) avec QtCreator avec les fichiers suivants: | * Créer un projet C++ (application non-qt) avec QtCreator avec les fichiers suivants: | ||
+ | Fichier d'entête <code>Vecteur.h</code> : | ||
+ | <source lang="c++"> | ||
+ | #ifndef VECTEUR_H | ||
+ | #define VECTEUR_H | ||
+ | class Vecteur | ||
+ | { | ||
+ | public: | ||
+ | Vecteur(float _x, float _y); | ||
+ | float getX(); | ||
+ | float getY(); | ||
+ | float norme(); | ||
+ | float prodscal(Vecteur v); | ||
+ | void affiche(); | ||
+ | private: | ||
+ | float x; | ||
+ | float y; | ||
+ | }; | ||
+ | #endif // VECTEUR_H | ||
+ | </source> | ||
+ | Fichier d'implémentation <code>Vecteur.cpp</code> | ||
+ | <source lang="c++"> | ||
+ | #include "vecteur.h" | ||
+ | #include <iostream> | ||
+ | #include <math.h> | ||
+ | |||
+ | using namespace std; | ||
+ | |||
+ | Vecteur::Vecteur(float _x, float _y) | ||
+ | { | ||
+ | x = _x; | ||
+ | y = _y; | ||
+ | } | ||
+ | |||
+ | float Vecteur::getX() | ||
+ | { | ||
+ | return x; | ||
+ | } | ||
+ | |||
+ | |||
+ | float Vecteur::getY() | ||
+ | { | ||
+ | return y; | ||
+ | } | ||
+ | |||
+ | float Vecteur::norme() | ||
+ | { | ||
+ | return sqrt(x*x + y*y); | ||
+ | } | ||
+ | |||
+ | float Vecteur::prodscal(Vecteur v) | ||
+ | { | ||
+ | return x*v.x + y*v.y; | ||
+ | } | ||
+ | |||
+ | void Vecteur::affiche() | ||
+ | { | ||
+ | cout << "{ " << x << " ; " << y << " }" << endl; | ||
+ | } | ||
+ | </source> | ||
= Écriture d'une classe Complexe = | = Écriture d'une classe Complexe = | ||
Version du 5 septembre 2022 à 12:02
Sommaire
Projet QT Creator : classe Vecteur
Un premier projet
- Créer un projet C++ (application non-qt) avec QtCreator avec les fichiers suivants:
Fichier d'entête Vecteur.h
:
#ifndef VECTEUR_H
#define VECTEUR_H
class Vecteur
{
public:
Vecteur(float _x, float _y);
float getX();
float getY();
float norme();
float prodscal(Vecteur v);
void affiche();
private:
float x;
float y;
};
#endif // VECTEUR_H
Fichier d'implémentation Vecteur.cpp
#include "vecteur.h"
#include <iostream>
#include <math.h>
using namespace std;
Vecteur::Vecteur(float _x, float _y)
{
x = _x;
y = _y;
}
float Vecteur::getX()
{
return x;
}
float Vecteur::getY()
{
return y;
}
float Vecteur::norme()
{
return sqrt(x*x + y*y);
}
float Vecteur::prodscal(Vecteur v)
{
return x*v.x + y*v.y;
}
void Vecteur::affiche()
{
cout << "{ " << x << " ; " << y << " }" << endl;
}
Écriture d'une classe Complexe
- Créer un projet C++ (application non-qt) avec QtCreator.
- Modifier le projet afin d'ajouter la classe
Complexe
dotée de ces attributs :
double re;
double im;
et de cette méthode :
void affiche() {
cout << re << "+" << im << "i" << endl;
}
Le programme principal sera le suivant.
#include <iostream>
using namespace std;
int main() {
Complexe z1;
cout << "coucou" << endl;
cout << "z1=";
z1.affiche();
}
Compiler et exécuter le projet.
- Quels sont les attributs de la classe
Complexe
ainsi 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