Cours:PooTD1 qtcreator : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
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

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

Corrigé

Une correction possible