Vous êtes sur la page 1sur 3

Université de Yaoundé I University of Yaounde I

Faculté des Sciences Faculty of Science

Département d’Informatique

INF1122, fiche TD séance 1, Mars 2024


Dr Thomas MESSI NGUELÉ, Chargé de Cours

1 Rappels sur les éléments de base de la programmation Java.


1.1 Installation de GCC
On suppose que l’on est sur un système d’exploitation Linux Ubuntu.
1. La première des choses à faire est de vérifier si gcc n’est pas déjà installé. Cela se fait avec la
commande (à partir du terminal) :
gcc -v
Si un retour est affiché, le gcc. Il n’y a donc rien à installer.
2. Sinon, faire les deux commandes suivantes :
sudo apt-get update (Commande pour mettre Ubuntu à jour)
sudo apt-get install gcc
sudo apt-get install make

1.2 Compilation et Exécution d’un Programme C :


Écrire un programme C bonjour.c qui affiche "bonjour votreNom".
1. Donner la commande qui compile ce code sur le terminal.
2. Donner la commande qui permet d’exécuter ce code.

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.

Fiche TD séance 1 et séance 2 Page 1/3 INF1122, Mars 2024


Exercice 2 : Créativité. Pour chacun des exercices suivants, réaliser une programme C autonome.
1. Écrire un programme C permettant à un utilisateur de choisir une figure géométrique entre : -
un cercle, - un rectancle, - un carré, - un trapèze, - un triangle (isocèle, rectangle, équilatéral) et
ensuite lui demande les paramètres appropriés pour calculer le périmètre et la surface de cette
figure géométrique.
2. Écrire un programme C qui prend à partir de la console trois entiers, a, b et c et détermine si ces
entiers peuvent être utilisées dans une formule arithmétique correcte (selon l’ordre d’entrée) :
«a + b = c», «a = b - c» ou «a * b = c».
3. Une punition courante pour les écoliers est d’écrire une phrase plusieurs fois. Écrivez un pro-
gramme C qui écrira la phrase suivante cent fois : «Je ne dirai jamais "hour" pendant le cours
d’inf1122». Votre programme doit numéroter chacune des phrases et utiliser huit polices diffé-
rentes choisies aléatoirement.
4. Le paradoxe de l’anniversaire dit que la probabilité que deux personnes dans une pièce aient
le même anniversaire soit plus de la moitié, à condition que n, le nombre de personnes dans
la pièce, soit supérieur à 23. Cette propriété n’est pas vraiment un paradoxe, mais beaucoup
de gens trouvent cela surprenant. Écrire un programme C qui peut tester ce paradoxe par une
série d’expériences sur des anniversaires générés aléatoirement, qui testent ce paradoxe pour
n = 5, 10, 15, 20, ..., 100.

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.

Fiche TD séance 1 et séance 2 Page 2/3 INF1122, Mars 2024


Problème 2 : Les matrices. On aimerait réaliser une programme permettant la gestion des ma-
trices. On suppose qu’une matrice est représentée comme un tableau à deux dimensions.
1. Stockage des éléments. Écrire une méthode qui demande à l’utilisateur le nombre de ligne n
et le nombre de colonne m d’une matrice et ensuite stocke les élements de cette matrice en les
lisant à partir du clavier (lecture sans écho).
2. Affichage des éléments. Écrire une fonction permettant d’afficher les élements d’un vecteur.
3. Opérations sur les matrices. Soient deux matrices
   
a1,1 · · · a1,m b1,1 · · · b1,m
A =  ... .. ..  B =  .. .. .. 

. .   . . . 
an,1 · · · an,m bn,1 · · · bn,m
(a) Addition des matrices. Écrire une procédure permettant de faire l’addition de deux ma-
trices A et B définie par : A + B = C. La matrice C est telle que C[i][j] = A[i][j] + B[i][j]
(b) Soustraction des matrices. Écrire une procédure permettant de faire la soustraction de
deux matrices A et B définie par : A − B = C. La matrice C est telle que C[i][j] =
A[i][j] − B[i][j]
(c) Multiplications des matrices. Écrire une procédure permettant de faire la multiplication
de deux matrices
Pn A et B définie par : A ∗ B = C (avec n=m). La matrice C est telle que
C[i][j] = k=1 A[i][k] ∗ B[k][j].
4. Produit matrice vecteur. Écrire une procédure permettant d’effectuer
Pn le produit matrice
vecteur défini par A.v = b, avec b un vecteur donné par : b[i] = k=1 A[i][k] ∗ vk , ce qui est
encore le produit scalaire entre le vecteur A[i][] et v.
5. main. Écrire le permettant à l’utilisateur de réaliser toutes ces actions sur les matrices autant
de fois qu’il le souhaite.
6. Pour les jeunes «lions indomptables» de l’informatique. Ajouter une interface graphique
(QT) agréable pour votre mini-application de gestion des vecteurs.

................ Bon Courage ! ...............

Fiche TD séance 1 et séance 2 Page 3/3 INF1122, Mars 2024

Vous aimerez peut-être aussi