Cours:PooTD1 qtcreator : Différence entre versions
(→Un premier projet) |
(→Questions) |
||
Ligne 73 : | Ligne 73 : | ||
** Calculer et afficher sa norme (utiliser <code>cout</code>) | ** Calculer et afficher sa norme (utiliser <code>cout</code>) | ||
** Créer un second vecteur v2 | ** Créer un second vecteur v2 | ||
− | |||
** Calculer et afficher le produit scalaire entre v et v2 | ** Calculer et afficher le produit scalaire entre v et v2 | ||
Version du 6 septembre 2022 à 08:17
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 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