Académique Documents
Professionnel Documents
Culture Documents
Département d’Informatique
1.3 Makefile :
a) Donner le rôle d’un fichier Makefile.
b) Donner la syntaxe d’un fichier.
c) On suppose que l’on a les fichier suivants : main.c, fonction.c, fonction.h. Donner le contenu du
Makefile permettant de compiler le code, d’exécuter le code et de supprimer le fichier executable.
2 Exercices
2.1 Exercices détachés.
Exercice 1 : Initiation. Réaliser un seul programme contenant les fonctions suivantes :
1. Une fonction C qui prend en paramètre un entier n et renvoie la somme de tous les entiers
positifs inférieurs ou égaux à n.
2. Une fonction C qui prend en paramètre un entier n et renvoie la somme de tous les entiers
positifs impairs inférieurs ou égaux à n.
3. Une fonction C qui prend en paramètre un entier n et qui retourne la somme des carrés de tous
les entiers positifs inférieurs ou égaux à n.
4. Une fonction C qui prend en paramètre un entier n et affiche la liste des diviseurs de n.
5. Une fonction C qui prend en paramètre un entier n et affiche la liste des n premiers multiples
de n.
2.2 Problèmes.
Problème 1 : Les vecteurs. On aimerait réaliser une programme permettant la gestion des vec-
teurs. On suppose qu’un vecteur est représenté comme un tableau de coordonnées.
1. Stockage des éléments. Écrire une méthode qui demande à l’utilisateur la taille n d’un vecteur
et ensuite stocke les n élements de ce vecteur à partir du clavier.
2. Affichage des éléments. Écrire une méthode permettant d’afficher les élements d’un vecteur.
3. Opérations sur les vecteurs. Soient deux vecteurs x = (x1 , x2 , ..., xn ) et y = (y1 , y2 , ..., yn ) :
(a) Addition des vecteurs. Écrire une procédure permettant de faire l’addition de deux vec-
teurs x et y définie par : x + y = (x1 + y1 , x2 + y2 , ..., xn + yn )
(b) Soustraction des vecteurs. Écrire une procédure permettant de faire la soustraction des
deux x et y définie par : x + y = (x1 + y1 , x2 + y2 , ..., xn + yn )
(c) Produit scalaire de deux vecteurs. Écrire une procédure permettant de faire le produit
scalaire de vecteurs x et y définie par : x.y = x1 ∗ y1 + x2 ∗ y2 + ... + xn ∗ yn
4. Norme d’un vecteur. La norme p d’un vecteur v = (v1 , v2 , ..., vn ) dans l’espace à n dimensions
est définie par : ||v|| = (v1p + v2p + v3p + ... + vnp )1/p . Pour le cas particulier de p = 2, cela donne la
norme euclidienne traditionnelle, qui représente la distance du vecteur par rapport à l’origine.
Par exemple, la norme euclidienne d’un vecteur à deux dimensions avec les coordonnées (4, 3)
a une norme euclidienne de : (42 + 32 )1/2 = (16 + 9)1/2 = (25)1/2 = 5.
- Donnez une fonction C nommée norm telle que norm(v, p) renvoie la valeur de la norme p
de v et norm(v) renvoie la norme euclidienne de v.
5. Distance entre deux vecteurs. La distance entre deux vecteurs x et y noté d(x,y) est donnée
par : d(x, y) = ||x − y||. La distance euclidienne est la distance issue de la norme euclidienne.
- Donnez une fonction C nommée distance telle que distance(x, y, p) renvoie la distance entre
les vecteurs x et y suivant la norme p et distance(x, y) renvoie la distance euclidienne entre
x et y.
6. main. Écrire une le main permettant à l’utilisateur de réaliser toutes ces actions sur les vecteurs
autant de fois qu’il le souhaite.
7. Pour les jeunes «lions indomptables» de l’informatique. Ajouter une interface graphique
(QT) agréable pour votre mini-application de gestion des vecteurs.