Création d'une bibliothèque de fonctions
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"
télécharger programme ci-dessous
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 );
#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;
}
// 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;
}