Université des Sciences, des Techniques et des Technologies de Bamako
****************
Faculté des Sciences et Techniques
****************
Année universitaire 2023-2024 L1-S1 MPCI
TD/TP N°1 : Algorithmique et Programmation
Questions de cours :
1. Expliquez ce qu'est un algorithme. Donnez un exemple simple.
2. Décrivez les 3 types principaux de structures contrôles en algorithmique et donner un
exemple pour chaque cas :
a. Séquence d’instructions.
b. Structures conditionnelles
c. Structures répétitives
Exercice 1 :
1. Écrire un algorithme qui échange les valeurs de deux variables x et y fournies par
l’utilisateur.
2. Écrire un algorithme qui lit un nombre au clavier et qui détermine si le nombre est pair
ou impair.
3. Implémenter ces deux algorithmes en langage C.
Exercice 2 :
1. Écrire un algorithme qui calcule la somme des 100 premiers entiers naturels.
2. Améliorer l’algorithme proposé en demandant la valeur du seuil à l’utilisateur.
3. Implémenter l’algorithme utilisé en petit 2, en langage C.
Exercice 3 :
1. Écrire un algorithme qui utilise une fonction pour calculer le carré d'un nombre.
2. Implémenter cet algorithme en C.
Exercice 4 :
1. Écrire un algorithme qui trouve le plus grand élément d'un tableau d'entiers.
2. Ecrire un algorithme qui calcule la moyenne des éléments d’un tableau d’entiers. On
se servira d’une fonction qui calcule la somme des éléments d’un tableau.
3. Implémenter ces différents algorithmes en c.
Exercice 5 :
1. Écrire un algorithme qui utilise une fonction et vérifie si un nombre donné est premier.
2. Ecrire un algorithme qui affiche les nombres premiers compris entre deux valeurs
fournies par l’utilisateur
3. Implémenter ces différents algorithmes en c.
Exercice 6 :
1. Écrire un algorithme qui permet d’inverser les éléments d'un tableau.
2. Ecrire une fonction qui permet de rechercher un élément x dans un tableau. La fonction
retourne 1 si x est présent dans le tableau et 0 le cas échéant.
3. Ecrire une fonction qui calcule le nombre d’occurrences de x dans un tableau.
4. Ecrire une fonction qui prend en paramètre deux tableaux et retourne le tableau résultant
de leur concaténation.
5. Ecrire une fonction qui insère un entier dans un tableau d’entiers à une position donnée.
On suppose que soit il reste une position libre à la fin du tableau soit on perd le dernier
élément.
6. Implémenter ces différents algorithmes en c.
Exercice 7
On veut réaliser un petit jeu de devinette, l’ordinateur choisit un nombre entre 0 et 100,
et l’utilisateur devine le nombre en question. Le programme doit orienter l’utilisateur,
en l’informant si la valeur recherchée est plus petite ou plus grande que son choix à
chaque tentative. Le jeu s’arrête si l’utilisateur trouve le nombre. Le programme doit
l’informer du nombre de tentatives effectuées.
1. Ecrire un algorithme permettant de réaliser ce jeu, sachant qu’une fonction rand()
prédéfinie génère un nombre entre 0 et 1.
2. Implémenter cet algorithme en c. On pourrait utiliser les instructions suivantes
pour permettre à l’ordinateur de choisir un nombre au hasard
#include <stdlib.h>
#include <time.h>
int main() {
// Initialisation du générateur de nombres aléatoires
srand(time(NULL));
// Génération d'un nombre aléatoire entre 0 et 100
int nombreSecret = rand() % 101;
}
Exercice 8
On veut écrire un algorithme de machine à voter. On fait voter des utilisateurs tant qu’il y en a
entre un candidat A et un candidat B. À chaque fois, l’algorithme demande s’il doit continuer. À
la fin, l’algorithme doit afficher les pourcentages de voix de chaque candidat et proclamer le
vainqueur. L’algorithme doit être fiable à 100% et ne doit pas permettre d’erreur de saisie.
1. Elaborer un algorithme permettant de gérer cette élection
2. Implémenter cet algorithme.
Exercice 9
Concevoir un algorithme qui affiche pour n (n doit être compris entre 5 et 20) donné la forme
suivante :
1
12
123
1234
.............
1 2 3 4 5 6 ... n
Exercice 10
La banque décide d’accorder un prêt à un taux préférentiel aux clients ayant un compte
d’épargne et dont leur intérêt total cumulé atteint la somme de 150.000 FCFA. Un placement
initial, dont les montants planché et plafond sont fixés respectivement à 200.000 FCFA et
950.000 FCFA, doit être versé au compte à sa création. On suppose que, après ce placement
initial, aucune autre opération de versement ou de retrait n’est autorisée sur le compte. L’intérêt,
dont le taux est de 3.5%, est calculé annuellement par rapport au placement existant et ajouté à
celui-ci. Un client admit au prêt doit décider du montant qu’il souhaite contracter sachant celui-
ci ne peut dépasser dix (10) fois son placement existant. En plus, il doit également choisir le
nombre d’années qu’il lui faudra pour rembourser le prêt, étant donné que celui-ci ne peut
dépasser six (6) ans. Le payement sera alors échelonné (équitablement) sur ces années. En plus,
le client doit chaque année à la banque, jusqu’à l’échéance, un intérêt d’emprunt dont le taux
annuel s’élève à 6.5%. Cet intérêt est calculé par rapport au montant du prêt restant à
rembourser.
Écrire un programme C qui réalise les actions suivantes (les identifiants de quelques variables
sont donnés en italiques entre parenthèses, vous pouvez déclarer des variables supplémentaires
les besoins) :
a) Saisir au clavier le montant de son placement initial. Ce nombre doit être un multiple de
500 compris entre 200.000 et 950.000 (contraintes à prendre en compte).
b) Déterminer et afficher le nombre d’années (nombre_annees) qu’il lui faut pour
bénéficier d’un prêt.
c) Saisir au clavier le montant du prêt qu’il sollicite. Ce montant ne peut dépasser dix (10)
fois le placement existant du client (contrainte à prendre en compte).
d) Saisir au clavier la durée de son prêt. Ce nombre doit être compris entre 1 et 6
(contrainte à prendre en compte).
e) Connaitre le montant du prêt (sans intérêt) qu’il doit rembourser chaque année à la
banque.
f) Connaitre le montant total (prêt + intérêts) que le client doit chaque année à la banque.
On affichera un tableau d’amortissement du prêt.