Aller au contenu

Programmation C++/Les classes/Exercices de développement

Un livre de Wikilivres.

Écrire une classe Fraction dont le fichier d'en-tête est le suivant :

#ifndef FRACTION_H
#define FRACTION_H

#include<iostream>
using namespace std;

class Fraction
{
friend ostream & operator<<(ostream & out, const Fraction &f);
friend istream & operator>>(istream &in, Fraction &f); 

 public:
    Fraction();
    Fraction(int i);
    Fraction(int num,int den);
    
    Fraction operator+(const Fraction & f);
    Fraction operator-(const Fraction & f);
    Fraction operator*(const Fraction & f);
    Fraction operator/(const Fraction & f);
 private:
    int num,den;    
    int pgcd(int x, int y);
    void normalise();
};

#endif

Voici le rôle de chaque fonction :

  • Fraction(); : le constructeur par défaut initialise la fraction à 0.
  • Fraction(int); : initialise la fraction à l'entier i.
  • Fraction(int num, int den); : initialise le numérateur et le dénominateur de la fraction.
  • ostream & operator<<(ostream & out, const Fraction &f) : affiche à l'écran la fraction f.
  • istream & operator>>(istream &in, Fraction &f) : saisit au clavier la fraction f.
  • Fraction operator+(const Fraction & f); permet de faire la somme de 2 fractions.
  • Fraction operator-(const Fraction & f); permet de faire la différence de 2 fractions.
  • Fraction operator*(const Fraction & f); permet de faire la multiplications de 2 fractions.
  • Fraction operator/(const Fraction & f); permet de faire la division de 2 fractions.
  • int pgcd(int x, int y) : calcule le pgcd de 2 entiers.
  • void normalise() : normalise la fraction. Le dénominateur doit être positif et la fraction irréductible.

Écrire un programme principal qui saisit au clavier 2 fractions f1 et f2 et qui affiche E=(f1+3/4-f2)/(f1*f2-5/8)+4.

Créez une classe fonction. Elle enregistre une fonction de type f(x) = a + bx + cx² avec les champs double a, b, c. Elle dispose des méthodes suivantes:

  • void saisir(double a, b, c) pour entrer les coefficients,
  • double image(double x) donne l'image de x par la fonction f,
  • double antécédent(double x) donne l'antécédent de x par la fonction f.