Vous êtes sur la page 1sur 9

Corrige

// Online C++ compiler to run C++ program online

#include <iostream>

#include <cmath>

using namespace std;

class Point {

public:

float x;

float y;

Point(float a = 0, float b = 0){ // constructeur par défaut avec des valeurs par défaut

x = a;

y = b;

};

class Rectangle {

public:

Point p;

float longueur;

float largeur;

public:

Rectangle(); // constructeur par défaut

Rectangle(Point p); // constructeur avec la position p

Rectangle(float longueur, float largeur); // constructeur avec les dimensions

Rectangle(Point p, float longueur, float largeur); // constructeur avec tous les attributs

float perimetre() const;

float surface() const;

float diagonale() const;


void doublerDim();

void deplacer(float a, float b);

};

Rectangle::Rectangle(){

longueur=0;

largeur=0;

Rectangle::Rectangle(Point k){

p = k;

Rectangle::Rectangle(float r, float l){

this->longueur = r;

this->largeur = l;

Rectangle::Rectangle(Point k, float r, float l){

p = k;

longueur = r;

largeur = l;

float Rectangle::perimetre() const{

return 2 * (longueur + largeur);

}
float Rectangle::surface() const{

return longueur * largeur;

float Rectangle::diagonale() const{

return sqrt(pow(longueur, 2) + pow(largeur, 2));

void Rectangle::doublerDim(){

longueur *= 2;

largeur *= 2;

void Rectangle::deplacer(float a, float b){

p.x += a;

p.y += b;

int main(){

Rectangle r1;

cout << "Rectangle r1 : longueur = " << r1.longueur << ", largeur = " << r1.largeur << ", p = (" <<
r1.p.x << ", " << r1.p.y << ")" << endl;

Rectangle r2(Point(2, 3));

cout << "Rectangle r2 : longueur = " << r2.longueur << ", largeur = " << r2.largeur << ", p = (" <<
r2.p.x << ", " << r2.p.y << ")" << endl;

Rectangle r3(4, 5);

cout << "Rectangle r3 : longueur = " << r3.longueur << ", largeur = " << r3.largeur << ", p = (" <<
r3.p.x << ", " << r3.p.y << ")" << endl;
Rectangle r4(Point(1, 1), 3, 4);

cout << "Rectangle r4 : longueur = " << r4.longueur << ", largeur = " << r4.largeur << ", p = (" <<
r4.p.x << ", " << r4.p.y << ")" << endl;

cout << "Le périmètre de r4 est : " << r4.perimetre() << endl;

cout << "La surface de r4 est : " << r4.surface() << endl;

return 0 ;

}///////////////////////////////////////////////////////////////////////

#include <iostream>

#include <cmath>

using namespace std;

class Point {

private:

float x;

float y;

float z;

public:

Point(float a, float b, float k);

~Point();

void affiche();

bool compare(const Point& p2) const;

};

class Segment {

private:

Point p1;

Point p2;

public:

Segment(Point a, Point b);

~Segment();
float longueur() const;

bool appartient(int x, int y) const;

void affiche() const;

};

Point::Point(float a, float b, float k) {

x = a;

y = b;

z = k;

Point::~Point() {

void Point::affiche() {

cout << "(" << x << ", " << y << ", " << z << ")";

bool Point::compare(const Point& p2) const {

return x == p2.x && y == p2.y && z == p2.z;

Segment::Segment(Point a, Point b) {

p1 = a;

p2 = b;

Segment::~Segment() {

float Segment::longueur() const {


float dx = p2.x - p1.x;

float dy = p2.y - p1.y;

float dz = p2.z - p1.z;

return sqrt(dx*dx + dy*dy + dz*dz);

bool Segment::appartient(int x, int y) const {

float minX = min(p1.x, p2.x);

float maxX = max(p1.x, p2.x);

float minY = min(p1.y, p2.y);

float maxY = max(p1.y, p2.y);

return x >= minX && x <= maxX && y >= minY && y <= maxY;

void Segment::affiche() const {

cout << "segment [ ";

p1.affiche();

cout << " ; ";

p2.affiche();

cout << " ]" << endl;

int main() {

Point A(4, 14, 0);

Point B(12, -35, 0);

Segment s(A, B);

s.affiche();

cout << "Longueur = " << s.longueur() << endl;

cout << "Le point (7, 0) appartient au segment : " << boolalpha << s.appartient(7, 0) << endl;

Point C(0, 0, 0);


Point D(1, 1, 1);

Segment t(C, D);

t.affiche();

cout << "Longueur = " << t.longueur() << endl;

cout << "Le point (0, 1) appartient au segment : " << boolalpha << t.appartient(0, 1) << endl;

return 0;

/////////////////////////////////////////////////////

#include <iostream>

#include <cmath>

using namespace std;

class Point {

private :

float x;

float y;

float z;

static int nb_points; // nombre d'objets créés

public :

Point(float a = 0, float b = 0, float k = 0); // constructeur par défaut

~Point(); // destructeur

void affiche();

bool compare(const Point& p2) const;

static int getNombre(); // méthode statique pour obtenir le nombre d'objets créés

};

int Point::nb_points = 0;

Point::Point(float a, float b, float k) {


x = a;

y = b;

z = k;

nb_points++; // incrémente le nombre d'objets créés

Point::~Point() {

nb_points--; // décrémente le nombre d'objets créés

void Point::affiche() {

cout << "Les coordonnées sont : (" << x << ", " << y << ", " << z << ")" << endl;

cout << "Nombre d'objets Point créés : " << nb_points << endl;

bool Point::compare(const Point& p2) const {

return x == p2.x && y == p2.y && z == p2.z;

int Point::getNombre() {

return nb_points;

int main() {

Point p1(1, 2, 3);

p1.affiche();

Point p2(4, 5, 6);

p2.affiche();

Point p3(7, 8, 9);


p3.affiche();

Point p4;

p4.affiche();

Point p5(1.2, 3.4);

p5.affiche();

Point p6(5.6);

p6.affiche();

cout << "Nombre total d'objets Point créés : " << Point::getNombre() << endl;

return 0;

Vous aimerez peut-être aussi