Cours:PooTD1 qtcreator : Différence entre versions
(→Questions) |
(→Écriture d'une classe Complexe) |
||
(Une révision intermédiaire par un autre utilisateur non affichée) | |||
Ligne 85 : | Ligne 85 : | ||
et de cette méthode : | et de cette méthode : | ||
<source lang="c++"> | <source lang="c++"> | ||
− | void affiche() { | + | void Complexe::affiche() { |
cout << re << "+" << im << "i" << endl; | cout << re << "+" << im << "i" << endl; | ||
} | } | ||
Ligne 105 : | Ligne 105 : | ||
}</source> | }</source> | ||
* Ajouter à la classe une méthode permettant d’ajouter un nombre complexe : | * Ajouter à la classe une méthode permettant d’ajouter un nombre complexe : | ||
− | <source lang="c++">Complexe add(Complexe z) { | + | <source lang="c++">Complexe Complexe::add(Complexe z) { |
// à compléter | // à compléter | ||
}</source> | }</source> | ||
qui permet de retourner un complexe correspondant à l’addition du nombre courant avec un nombre<code>z</code>. Exemple d’utilisation : | qui permet de retourner un complexe correspondant à l’addition du nombre courant avec un nombre<code>z</code>. Exemple d’utilisation : | ||
<source lang="c++"> | <source lang="c++"> | ||
− | Complexe z1 | + | Complexe z1{0,1}; |
− | Complexe z2 | + | Complexe z2{1,0}; |
Complexe z3 = z1.add(z2);</source> | Complexe z3 = z1.add(z2);</source> | ||
* Ajouter des ''getters'' et des ''setters'' aux attributs. | * Ajouter des ''getters'' et des ''setters'' aux attributs. |
Version actuelle datée du 7 septembre 2023 à 09:20
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;
}
Questions
- Quels sont les attributs de cette classe ?
- Quelles sont ses méthodes ?
- Dessiner le diagramme UML de la classe Vecteur.
- Modifier la fonction
main()
(dans le fichiermain.cpp
) pour- Créer un vecteur v (par exemple (1,2)) puis l'afficher
- Calculer et afficher sa norme (utiliser
cout
) - Créer un second vecteur v2
- Calculer et afficher le produit scalaire entre v et v2
É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 Complexe::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 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