Création d'une bibliothèque de fonctions

Icône de l'outil pédagogique P4 : bibliothèque

Bibliothèque

Afin de pouvoir utiliser ultérieurement les fonctions précédemment créées dans le programme principal et dans d'autres programmes nous allons créer une bibliothèque constituée de :

  • un fichier en-tête (header en anglais d'où l"extension .h ) qui contiendra les définitions des constantes , des types et les déclarations des fonctions : mathrt.h
  • un fichier source qui contiendra les codes des fonctions : mathrt.c

Pour utiliser cette bibliothèque nous allons créer

  • un fichier source contenant le programme principal : equation.c
  • un fichier Makefile pour compiler le tout



Exemple de programme avec création de bibliothèque

Si on reprend le programme sur les vecteurs donné en exemple dans "Tests des prérequis informatiques"

pdftélécharger programme ci-dessous

------------------------------------------------------
fichier en-tête sauvegardé sous mathvect.h

struct Vecteur{

double x;
double y;
double z;

};
// fonctions et procédures utilisées
void saisie ( Vecteur &);
void affiche ( Vecteur );
double normev( Vecteur );
Vecteur sommev( Vecteur , Vecteur );

------------------------------------------------------
fichier source sauvegardé sous mathvect.c

#include <iostream>
#include <math.h>
using namespace std;
#include "mathvect.h"//permet d'utiliser les contantes, les types et les fonctions déclarées dans mathvect.h
//ecriture des procédures et fonctions
void saisie ( Vecteur &v)
{

cout<<"entrée des coordonnées du vecteur \n";
cout << "x?\n";
cin>>v.x;
cout << "y?\n";
cin>>v.y;
cout << "z?\n";
cin>>v.z;

}
void affiche ( Vecteur v)
{

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

}
double normev( Vecteur v)
{

double norme;
norme=sqrt(v.x*v.x+v.y*v.y+v.z*v.z);
return norme;

}
Vecteur sommev( Vecteur v, Vecteur w)
{

Vecteur u;
u.x=v.x+w.x;
u.y=v.y+w.y;
u.z=v.z+w.x;
return u;

}

------------------------------------------------------
fichier source contenant le programme principal sauvegardé sous vect.c

// programme principal
#include <iostream>
#include <math.h>
#include "mathvect.h" //permet d'utiliser la bibliothèque mathvect
using namespace std;
int main()
{

Vecteur a,b
saisie(a);
affiche(a);
cout<<endl;
saisie(b);
affiche(b);
cout<<endl;
cout<<"la norme du vecteur ";
affiche(a);
cout<<" est " << normev(a)<<endl;
cout<<"la norme du vecteur ";
affiche(b);
cout<<" est " << normev(b)<<endl;
cout<<"la somme des 2 vecteurs est " ;
affiche(sommev(a,b));
cout<<endl;

}