Exercice S
Exercice S
Exercice S
Série d’exercice
Exercice 3. Écrire un algorithme qui lit le prix HT d’un article, le nombre d’articles et le taux
de TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libellés apparaissent
clairement.
Exercice 4. Un magasin dispose de cinq produits :
Produit A : prix 5.00 DH
Produit B : prix 2.50 DH
Produit C : prix 3.00 DH
Produit D : prix 10.00 DH
Produit E : prix 7.00 DH
Un client achète : X unités du produit A, Y unités du produit B, Z unités du produit C, T unités du
produit D, U unités du produit E.
On désire calculer et afficher :
Le prix hors taxe (PHT) de cette vente.
La taxe sur la valeur ajoutée (TVA)
Le prix toutes taxes comprises (PTTC) de cette vente
On donne le taux de TVA : TTVA=0.20
Écrire un algorithme qui permet de calculer et afficher :
Le prix hors taxe, la taxe sur la valeur ajoutée et le prix toutes taxes comprises ?
(L’utilisateur doit entrer le nombre d’articles achetés de chaque produit)
Exercice 6. Écrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite
si le produit est négatif ou positif (on inclut cette fois le traitement du cas où le produit peut être nul).
Attention toutefois, on ne doit pas calculer le produit !
Exercice 7. Écrire un algorithme qui permet la résolution d’une équation du premier degré
(une équation sous la forme ax+b=0)
Exercice 8. Écrire un algorithme qui permet la résolution d’une équation du second degré (une
équation sous la forme ax²+bx+c=0)
Exercice 9. Ecrire un algorithme qui range trois nombres donné x, y, z, dans l'ordre croissant
(x < y < z).
Exercice 10. Calculer le lendemain d'une journée donnée (jour, mois, année)
On ne tiendra pas compte ici des années bissextiles, le mois de février aura toujours 28 jours.
Exercice 11. Écrire un algorithme qui lit deux valeurs entières (A et B) au clavier et qui affiche le
signe de la somme de A et B sans faire l'addition
Exercice 12. La direction d’un supermarché a décidé d’accorder des réductions à ses clients selon
le montant d’achat.
La réduction est calculée selon les règles suivantes:
-20% pour un montant d’achat de plus de 5000 dhs
-15% pour un montant d’achat entre 3000 dhs<montant d’achat <= 5000 dhs
-10% pour un montant d’achat entre 1000 dhs <montant d’achat <= 3000 dhs
-Aucune réduction pour un montant d’achat inférieur à 1000 dhs.
Ecrire un algorithme qui permet de calculer et d’afficher la réduction et le montant à payer
Exercice 13. La direction d’une entreprise désire automatiser le calcul de l’indemnité à verser
aux cadres en cas de licenciement. Il sera alloué aux cadres licenciés une indemnité tenant compte de
leur ancienneté et s’établissant comme suit:
•La moitié du salaire d’un mois par année d’ancienneté : pour la tranche d’ancienneté entre 1 an et
10 ans.
•Au-delà de 10 ans un mois de salaire par année d’ancienneté.
•Une indemnité supplémentaire serait allouée aux cadres âgés de plus de 45 ans de:
- 2 mois de salaire si le cadre est âgé de 46 à 49 ans.
- 5 mois si le cadre est âgé de plus de 50 ans.
Ecrire un algorithme qui permet de saisir l’âge, l’ancienneté et le dernier salaire et d’afficher
l’indemnité du cadre.
Exercice 15. Une papeterie facture 0,50 dhs les dix premières photocopies, 0,30 dhs E les
vingt suivantes et 0,25 dhs au-delà. Écrire un algorithme qui demande à l’utilisateur le nombre de
photocopies effectuées et qui affiche la facture correspondante.
Exercice 16. Écrire un algorithme qui demande un nombre de départ, et qui ensuite écrit la
table de multiplication de ce nombre, présentée comme suit (cas où l'utilisateur entre le nombre 5) :
Table de 5 :
5x1=5
5 x 2 = 10
5 x 3 = 15
…
5 x 10 = 50
Exercice 17. Écrire un algorithme qui demande un nombre de départ, et qui calcule la somme
des entiers jusqu’à ce nombre. Par exemple, si l’on entre 5, le programme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
Exercice 19. Écrire un algorithme qui demande un nombre de départ, et qui calcule sa
factorielle.
NB : la factorielle de 8, notée 8! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8
Exercice 21. Écrire un algorithme qui demande un nombre de départ, et qui ensuite affiche les
dix nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les
nombres de 18 à 27.
Exercice 22. Écrire un algorithme qui demande successivement des nombres à l’utilisateur, et
qui lui dise ensuite quel était le plus grand parmi ces nombres et quel était sa position. La saisie des
nombres s’arrête lorsque l’utilisateur entre un zéro.
Exercice 23. Écrire un algorithme qui demande successivement des nombres à l’utilisateur, et
qui calcule leur moyenne. La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro.
Exercice 25. Écrire un algorithme qui vérifie si un nombre entier saisi par l’utilisateur est un
nombre premier ou pas.
Un nombre premier est un nombre qui ne permet la division que sur 1 et lui-même.
Exemples de nombre premier : 2,5,7,11,13,31….
Exercice 26. Écrire un algorithme qui permet de calcule la somme de la suite suivante :
S=1+2+4+7+11+16+22+29+…+N
Exercice 27. Écrire un algorithme qui demande à l’utilisateur de saisir une somme d’argent, puis
affiche la décomposition de cette somme d’argent en billets et pièces de (200, 100, 50, 20, 10, 5, 2
et 1 dh) en utilisant le moins de billets et de pièces possibles.
Exercice 29. Écrire un algorithme qui demande à l’utilisateur de saisir deux nombre a et b (tel
que a<b) et affiche tous les nombres premiers compris entre ces deux nombres.
Exercice 30. Ecrire un programme qui demande un nombre en décimal puis il converti en
binaire, octal, hexadécimal et en BCD.
Par exemple :
Donnez un nombre : 10
Décimal Binaire Octal hexadécimal
10 1010 12 A
Exercice 31. Écrire un algorithme permettant d’afficher le triangle suivant : (le nombre de ligne
est saisi par l’utilisateur)
1
12
123
1234
12345
123456
1234567
…
Exercice 32. Écrire un algorithme qui calcule le terme UN de la suite de Fibonacci donnée par :
U1=1, U2=1, UN=U(N-1) + U(N-2) (pour N>2)
Exercice 33. Calculez le nombre lu à rebours d'un nombre positif entré au clavier en supposant
que le fichier d'entrée standard contient une suite de chiffres non nuls, terminée par zéro (Contrôlez
s'il s'agit vraiment de chiffres). Exemple:
Exercice 34. Calculez le nombre lu à rebours d'un nombre positif entré au clavier en supposant
que le fichier d'entrée standard contient le nombre à inverser. Exemple:
Entrez un nombre positif (<10000) : 5421
Le nombre inversé est : 1245
*
***
*****
*******
*********
***********
*************
Exercice 35. Ecrire une fonction récursive qui calcule le coefficient binomial C(n,k) ; en rappel
que :
x*y 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0
1 1 2 3 4 5 6 7 8 9
2 2 4 6 8 10 12 14 16 18
3 3 6 9 12 15 18 21 24 27
4 4 8 12 16 20 24 28 32 36
5 5 10 15 20 25 30 35 40 45
6 6 12 18 24 30 36 42 48 54
7 7 14 21 28 35 42 49 56 63
8 8 16 24 32 40 48 56 64 72
9 9 18 27 36 45 54 63 72 81
Exercice 37. Calculer le pgcd de deux nombres a et b (pgcd : plus grand diviseur commun)
Exercice 38. Ecrire un programme qui permet de lire 100 notes et de déterminer le nombre de
celles qui sont supérieures à la moyenne.
Exercice 39. Ecrire un programme permettant d’afficher tous les nombres compris entre 100 et
2000 répondants au critère suivant : chaque nombre affiché contient un seul chiffre qui est répété
exactement deux fois.
Les premiers nombres affichés sont : 100, 101, 110, 112, 113,…
Exercice 40. Modifier le programme précédent pour afficher uniquement 20 nombres (un par
ligne), et chaque fois que 20 de ces nombres sont affichés le programme affichera le message
suivant : « Tapez ENTREE pour continuer ». Lorsque l’utilisateur tape sur ENTREE, l’écran s’efface et le
programme affiche les 20 nombres suivants (s’il en reste).
Exercice 41. Écrivez un programme qui calcule les 10 premiers termes de la suite suivante:
Exercice 43. Ecrire un algorithme qui remplit le tableau (de dimension 10) par des valeurs
entrées au clavier et affiche le tableau. Calculer et afficher ensuite la somme des éléments du tableau.
Exercice 44. Soit T un tableau de N réels. Ecrire le programme qui permet de calculer le nombre
des occurrences d’un nombre X (c'est-à-dire combien de fois ce nombre X figure dans le tableau T).
Exercice 46. Soit T un tableau de N réels. Écrire l’algorithme qui permet de calculer le nombre
des occurrences d’un nombre X (c'est-à-dire combien de fois ce nombre X figure dans le tableau T).
Exercice 47. Soit T un tableau de N entiers. Ecrire l’algorithme qui détermine le plus grand
élément de ce tableau.
Exercice 48. Soit T un tableau de N réels. Ecrire le programme qui permet de calculer le nombre
des occurrences d’un nombre X (c'est-à-dire combien de fois ce nombre X figure dans le tableau T)
Exercice 49. Soit T un tableau de N éléments. Ecrire un programme qui permet d’insérer un
élément x à la position i du tableau T
Exercice 50. Soit T un tableau de N éléments. Ecrire un programme qui permet de supprimer un
élément x du tableau.
Exercice 51. Écrire un algorithme qui augmente de 1 tous les éléments d’un tableau, le
nouveau tableau sera affiché à l’écran.
Exemple : tab[5]={1,23,6,9,-1} devient tab[5]={2,24,7,10,0}
Exercice 52. Écrire un programme constituant un tableau, à partir de deux tableaux de même
longueur préalablement saisis. Le nouveau tableau sera la somme des éléments des deux tableaux de
départ.
Exercice 53. Écrire un programme qui permet de lire 10 notes et de déterminer le nombre de
celles qui sont supérieures à la moyenne. (En utilisant un tableau)
Exercice 54. Écrire un algorithme qui lit la dimension N d'un tableau T du type entier
(dimension maximale: 20 éléments), remplit le tableau par des valeurs entrées au clavier et affiche le
tableau. Effacer ensuite toutes les occurrences de la valeur 0 dans le tableau T et tasser les éléments
restants.
Exercice 55. Écrire un algorithme qui lit la dimension N d'un tableau T du type entier
(dimension maximale: 20 éléments), remplit le tableau par des valeurs entrées au clavier et affiche le
tableau. Ranger ensuite les éléments du tableau T dans l'ordre inverse sans utiliser de tableau d'aide.
Exercice 56. Écrire un algorithme qui lit la dimension N d'un tableau T du type Entier (dimension
maximale: 20 éléments), remplit le tableau par des valeurs entrées au clavier et affiche le tableau.
Copiez ensuite toutes les composantes strictement positives dans un deuxième tableau TPOS et toutes
les valeurs strictement négatives dans un troisième tableau TNEG.
Exercice 57. Ecrire un programme qui demande à l'utilisateur de taper 10 entiers compris entre
0 et 20 qui seront stockés dans un tableau et qui affiche le nombre de fois qu'on a tapé un 0, le
nombre de 1, le nombre de 2, ..., le nombre de 20.
Exercice 58. On considère une séquence d'entiers s de longueur L représentée dans un tableau T
d'entiers défini sur l'intervalle [1…Lmax], 0 < L < Lmax.
On veut écrire un programme qui remplace dans T la suite s par la suite s' de longueur L' (avec L' <=
L), déduite de s en supprimant tous les éléments redondants. Un élément de s est redondant s'il est
égal à un autre élément de s. Le programme ne doit pas utiliser de tableau intermédiaire pour créer
s'. L'ordre des éléments reste celui de la séquence de départ. Etudier tout d'abord le problème en
supposant que T peut ne pas être trié en ordre croissant.
Exemple : si s = [15, 4, 19, 4, 8, 11, 11, 3, 4, 19] et L = 10 alors
s' = [15, 4, 19, 8, 11, 3] et L’ = 6
Exercice 59. Vérifier que deux tableaux sont identiques (les éléments des deux tableaux seront
saisis par l’utilisateur).
Exercice 60. Ecrivez un programme qui permette à l’utilisateur de supprimer une valeur d’un
tableau préalablement saisi. L’utilisateur donnera l’indice de la valeur qu’il souhaite supprimer.
Attention, il ne s’agit pas de remettre une valeur à zéro, mais de la supprimer du tableau lui-même !
Si le tableau de départ était :
12 8 4 45 64 9 2
12 8 4 45 9 2
Exercice 62. Ecrire un programme qui lit les points de N élèves d'une classe dans un devoir et
les mémorise dans un tableau POINTS de dimension N.
* Rechercher et afficher:
- la note maximale,
- la note minimale,
- la moyenne des notes.
* A partir des POINTS des élèves, établir un tableau NOTES de dimension 6 qui est composé de la
façon suivante:
NOTES[5] contient le nombre d’occurrence de la note 20 dans le tableau POINTS
NOTES[4] contient le nombre d’occurrence des notes comprises entre 17 à 19
NOTES[3] contient le nombre d’occurrence des notes comprises entre 14 à 16
NOTES[2] contient le nombre d’occurrence des notes comprises entre 10 à 13
NOTES[1] contient le nombre d’occurrence des notes comprises entre 5 à 9
NOTES[0] contient le nombre d’occurrence des notes comprises entre 0 à 4
Etablir un graphique de barreaux représentant le tableau NOTES. Utilisez les symboles #######
pour la représentation des barreaux et affichez le domaine des notes en dessous du graphique.
Exemple:
6 > #######
5 > ####### #######
4 > ####### ####### #######
3 > ####### ####### ####### #######
2 > ####### ####### ####### ####### #######
1 > ####### ####### ####### ####### #######
+-------+-------+-------+-------+-------+-------+-------+
Exercice 63. M personnes sont assises autour d'une table circulaire et entament le jeu suivant.
Elles se fixent entre-elles un entier k>0 et une personne P1 par laquelle elles commenceront le jeu.
On commence à compter de 1 à k en partant de P1 et en tournant à droite. La k ième personne quitte
la table et on continue à compter de 1 à k à partir de la personne suivante encore à table. La
personne gagnante est la dernière qui reste à table.
Analyser ce problème et faire un programme permettant de réaliser ce jeu.
52 10 1 25 62 3 8 55 3 23
Vous ne devez utiliser que ce seul tableau.
Exemples de résultats de la progression :
1 52 10 25 62 3 8 55 3 23
1 3 52 10 25 62 8 55 3 23
1 3 3 52 10 25 62 8 55 23
1 3 3 8 52 10 25 62 55 23
1 3 3 8 10 52 25 62 55 23
1 3 3 8 10 23 52 25 62 55
1 3 3 8 10 23 25 52 62 55
1 3 3 8 10 23 25 52 62 55
1 3 3 8 10 23 25 52 55 62
Exercice 71. Écrire un algorithme qui lit les dimensions L et C d'un tableau T à deux dimensions
du type entier (dimensions maximales: 10 lignes et 10 colonnes). Remplir le tableau par des valeurs
entrées au clavier et afficher le tableau ainsi que la somme de tous ses éléments.
Exercice 72. Les points cols d'un tableau à deux dimensions sont les éléments du tableau qui
sont minimum sur leur ligne et maximum sur leur colonne.
Ecrire le programme principal qui recherche dans un tableau à deux dimensions les points cols.
Exemple : soit le tableau suivant T[3][3]
123
-7 8 9
-6 3 4
Les points cols du tableau sont : T[0][0]=1
Exercice 73. Un carré magique est un carré rempli de nombres qui, lorsque l’on en fait la somme
sur chaque ligne, colonne ou diagonale, donne le même résultat.
Pour simplifier le travail nous ne considérerions ici que des carrés d’ordre impair.
Écrire un algorithme qui teste si un carré est magique.
Exemple de carré d’ordre 3 :
816
357
492
Exercice 74.
1. Lire une matrice de N lignes et M colonnes ligne par ligne.
A[1][1] … A[1][M]
…
A[N][1] … A[N][M]
Écrire ensuite cette matrice ligne par ligne.
2. Compter (et afficher) le nombre de zéros de chaque colonne.
3. Compter (et afficher) le nombre de colonnes contenant au moins un zéro.
4. Afficher le minimum de chaque colonne.
5. Afficher le numéro de la colonne contenant le minimum de la matrice. (A égalité, donner le plus
petit numéro de colonne).
Exercice 75. Écrire un programme qui transfère une matrice M à deux dimensions L et C
(dimensions maximales: 10 lignes et 10 colonnes) dans un tableau V à une dimension L*C.*
Exercice 76. Écrire un programme qui effectue la transposition d'une matrice A de dimensions N
et M en une matrice de dimensions M et N.
Exercice 77. Écrire un programme qui réalise l'addition de deux matrices A et B de mêmes
dimensions N et M.
Exercice 79. Chaque élève d'une classe s'est vu attribuer dix notes correspondant à dix matières
(une note fictive égale à -1 correspond à une absence lors de l'épreuve de contrôle). A chacune de
ces matières correspond un coefficient.
On suppose que le nombre d'élèves ne dépasse pas 50.
- Pour tous les calculs de moyenne, on ne tient pas compte des absences.
- On ne calcule la moyenne effective d'un élève que s'il a été présent au moins à un contrôle.
- On note par -1 la moyenne d'un élève absent à tous les contrôles.
Nous allons utiliser un tableau NOTE de 50 lignes et 10 colonnes. Chaque ligne correspond à un
élève, et chaque colonne à une matière. Le tableau MOY de 50 lignes permet de stocker la moyenne
de chaque élève. On utilise un tableau COEF de 10 lignes, dans lequel on stocke le coefficient de
chaque matière.
L'ordre dans COEF correspond à l'ordre des colonnes de NOTE: par exemple si la première colonne de
NOTE correspond aux notes de mathématique, on doit trouver en COEF[1] le coefficient
mathématique.
0. Déclarer les tableaux et remplissez-les.
Écrire un algorithme qui permettrait de calculer:
1. La moyenne de chaque élève.
2. La moyenne générale de la classe
3. Pour chaque matière, la moyenne de la classe et le pourcentage d'absentéisme.
Chaines de caractères
Exercice 80. Ecrire l’algorithme qui lit un caractère et qui affiche son code ASCII.
Exercice 81. Ecrire un programme qui lit un caractère et qui affiche son successeur dans la table
des codes ASCII.
Exercice 82. Ecrire un programme qui transforme une phrase saisie par l’utilisateur de minuscule
en majuscule.
Exercice 83. Ecrire un programme qui lit une chaine de caractères et qui transforme les
caractères minuscules en majuscule et les majuscules en minuscules.
Exemple : asDFgTrf --------> ASdfGtRF
Exercice 84. Ecrivez un programme qui saisit un caractère minuscule et qui l'affiche en
majuscule.
Exercice 85. Ecrire un algorithme qui demande à l'utilisateur de saisir trois valeurs et qui lui dit
s'il s'y trouve un doublon.
Exercice 86. Écrire un algorithme qui lit une phrase, la mémorise dans une variable chaine et
affiche ensuite:
a) la longueur L de la chaîne.
b) le nombre de fois que le caractère ‘a’ a été saisi dans le texte.
c) toute la phrase à rebours, sans changer le contenu de la variable chaine.
d) toute la phrase à rebours, après avoir inversé l'ordre des caractères dans chaine.
Exercice 87. Écrire un algorithme qui supprime les espaces et tabulations d'une chaîne de
caractères (sans utiliser de tableau intermédiaire).
Exercice 88. Écrire un algorithme qui permet de dire si deux chaines de caractères sont
identiques ou pas.
Exercice 89. Écrire un algorithme qui permet de concaténer deux chaines de caractères.
Exercice 90. Vous devez déterminer si une chaîne de caractères est un palindrome.
Un palindrome est une chaîne de caractères que l'on peut lire identiquement de droite à gauche, et de
gauche à droite.
Par exemple :
AA.
38783.
LAVAL.
LAVAL A ETE A LAVAL.
Exercice 91. Vous devez compter le nombre d’occurrence de 2 lettres consécutives dans la
chaîne. Un couple trouvé dans la phrase est éliminé et ne sera comptabilisé qu’une seule fois, comme
dans l’exemple suivant :
Phrase = « fonctions creees par le programmeur.
Couple cherché = « ee »
Résultat = 1
Exercice 92. Écrire un programme qui lit 5 mots, séparés par des espaces et qui les affiche
ensuite dans une ligne, mais dans l'ordre inverse. Les mots sont mémorisés dans un tableau de
chaînes de caractères.
Exemple
voici une petite phrase !
! phrase petite une voici
Exercice 93. Écrire un algorithme qui lit un verbe régulier en "er" au clavier et qui en affiche la
conjugaison au présent de l'indicatif de ce verbe. Contrôlez s'il s'agit bien d'un verbe en "er" avant de
le conjugue.
Exemple:
Verbe : marcher
je marche
tu marches
il marche
nous marchons
vous marchez
ils marchent
Exercice 94. Un des plus anciens systèmes de cryptographie (aisément déchiffrable) consiste à
décaler les lettres d’un message pour le rendre illisible. Ainsi, les A deviennent des B, les B des C, etc.
Écrire un algorithme qui demande une phrase à l’utilisateur et qui la code selon ce principe.
Exercice 95. Écrire un programme qui demande à l’utilisateur de taper une phrase et un mot,
puis le programme affiche si le mot été retrouvé dans la phrase ou pas :
Exemple :
Phrase : « les stagiaires de la TDI1 sont tous intelligents »
Mot recherché « TDI1 »
Le mot existe dans la phrase.
Les fonctions
Exercice 96. Définir la fonction « Max » qui renvoie le maximum de deux valeurs.
Exercice 97. Définir la fonction « Absolue » qui renvoie la valeur absolue d’une valeur qu’on lui
passe comme paramètre.
Exercice 98. Ecrire une procédure qui reçoit la longueur et la largeur d’une surface et qui affiche
la valeur de la surface. Donnez à cette procédure le nom « Surface ».
Exercice 99. On dispose d’une phrase dont les mots sont séparés par des points virgules. Ecrivez
une procédure qui permet de remplacer les points virgules par des espaces.
Exercice 101. Écrire une fonction abs qui reçoit un entier x et retourne sa valeur absolue, écrire
un algorithme qui exploite cette fonction.
Exercice 102. Écrire un programme se servant d'une fonction MOYENNE du type réel pour
afficher la moyenne arithmétique de deux nombres réels entrés au clavier.
Exercice 103. Ecrire une fonction MIN et une fonction MAX qui déterminent le minimum et le
maximum de deux nombres réels. Ecrire un programme se servant des fonctions MIN et MAX pour
déterminer le minimum et le maximum de quatre nombres réels entrés au clavier.
Exercice 104. Écrire la fonction NCHIFFRES du type entier qui obtient une valeur entière N
(positive ou négative) du type long entier comme paramètre et qui fournit le nombre de chiffres de N
comme résultat.
Écrire un petit programme qui teste la fonction NCHIFFRES:
Exemple:
Introduire un nombre entier : 6457392
L Le nombre 6457392 contient 7 chiffres.
Exercice 105. Ecrivez une procédure récursive sablier(int n) affichant à l’écran une série de lignes
représentant un sablier avec des caractères ’x’.
Par exemple, l’appel sablier(11) affichera :
xxxxxxxxxxx
xxxxxxxxx
xxxxxxx
xxxxx
xxx
x
xxx
xxxxx
xxxxxxx
xxxxxxxxx
xxxxxxxxxxx
Exercice 108. Ecrire une fonction qui reçoit en arguments 2 nombres réels et un caractère et qui
fournit un résultat correspondant) l’une des 4 opérations appliquées à ses deux premiers arguments,
en fonction de la valeur de ce dernier, à savoir : addition pour le caractère +, soustraction pour le
caractère -, multiplication pour * et division pour / (tout autre caractère sera interprété comme une
addition). On ne tiendra pas compte des risques de la division par 0.
Exercice 112. Ecrire un programme permettant de compter le nombre des diviseurs d’un nombre
entier saisi par l’utilisateur, puis de les afficher de plus grand au plus petit.
Exercice 113. Ecrire une fonction nommée puissance qui calcule 𝑥 𝑦 avec x et y deux réels.
Utiliser cette fonction pour faire la conversion de binaire vers décimal.
Utiliser la même fonction pour calculer S(x,n) sachant que x est un réel et n un entier.
1 1 1 1 1
𝑆(𝑥, 𝑛) = 0
+ 1 + 2 + 3 +⋯+ 𝑛
𝑥 𝑥 𝑥 𝑥 𝑥
Exercice 114. Ecrire un programme qui affiche tous les diviseurs d’un entier N
Exercice 115. Ecrire un programme qui affiche le plus petit diviseur commun de deux entiers
Exercice 116. Ecrire une fonction qui reçoit un entier en paramètre et qui retourne 1 si cette
entier est premier et 0 sinon. Utilisez cette fonction pour afficher tous les nombres premiers compris
entre deux valeurs saisies par l’utilisateur.
Exercice 117. Ecrire un programme qui permet de calculer les N premiers termes de la série
suivante : 25, 36, 47, 58, 69, 80, … exemple : si N = 3 le programme calcule et affiche la somme :
25+36+47.
Exercice 118. Ecrire un programme qui permet de remplir un tableau de N entiers et qui cherche
et affiche le premier élément de tableau, lorsqu’ il existe, qui divise tous les autres éléments de
tableau. Lorsqu’un tel élément n’existe pas le programme affiche le message suivant : « Pas de
solutions »
Exemple : cas n = 5 : si le tableau contient les valeurs 6, 14, 88, 2, 4 le programme affiche 2
Exercice 119. Ecrire un programme qui affiche pour un entier N l’allure correspondante :
Exemple :
N=3 N=4
***** *******
** ** *** ***
* * ** **
* *
Exercice 120. Ecrire un programme qui lit une chaine de caractères et qui affiche l’allure
suivante :
Veuillez saisir une chaine : SALUT
*S* *S*
*S*A* *A*S*
*S*A*L* *L*A*S*
*S*A*L*U* *U*L*A*S*
*S*A*L*U*T*U*L*A*S*
Exercice 121. On veut obtenir une valeur approchée de e (exponentiel 1).
Considérons la suite de nombres réels suivante :
1 𝑠𝑖 𝑛 = 0
𝑈𝑛 = { 1
𝑈𝑛−1 + 𝑠𝑖 𝑛 > 0
𝑛!
Cette suite tend vers e quand n tend vers +∞.
Ecrire une fonction qui calcule les valeurs de U.
Ecrire un programme qui affiche la première valeur de n qui vérifie 𝑈𝑛 = 𝑈𝑛+1 (En effet pour une
certaine valeur de n nous aurons 𝑈𝑛 = 𝑈𝑛+1 de fait des imprécisions du fait les imprécisions dans la
représentation des nombres réels sur l’ordinateur).
Afficher la valeur approchée de e.
Exercice 122. Ecrire un programme qui permet de :
Déclarer un tableau T_villes de chaine de caractère
Remplir ce tableau
Afficher l’ensemble des villes
Déterminer la présence d’une ville dans la liste et afficher son rang dans le tableau
Trier le tableau des villes par ordre croissant.
Exercice 124. On souhaite gérer les notes d’un étudiant. Pour cela on va définir la structure «
Etudiant » dont les champs sont :
Nom Chaîne
Prénom Chaîne
Note Tableau de 3 éléments
Moyenne Réel
Ecrire l’algorithme qui permet de lire les informations d’un étudiant (nom, prénom et notes), de
calculer sa moyenne et d’afficher à la fin un message sous la forme suivante :
« La moyenne de l’étudiant Dinar Youssef est : 12.45 », où « Dinar » et « Youssef » sont les noms et
prénoms lus et 12.45 est la moyenne calculée.
Exercice 125. Modifier l’algorithme de l’exercice précédent de façon que l’on puisse gérer les
notes de 50 étudiants.
Exercice 127.
1) Définir le type date basé sur une structure permettant de représenter une date comportant le
numéro du jour, le numéro du mois et l'année.
Ex : 14 7 1792 pour le 14 juillet 1792
25 12 2007 pour le 25 décembre 2007
29 2 2008 pour le 29 février 2008
2) Écrire la fonction estBissextile() qui renvoie 1 si l'année est bissextile; 0 sinon.
Nous rappelons qu'une année est bissextile si elle est divisible par 4 mais pas par
100, elle est aussi bissextile si elle est divisible par 400.
3) Écrire la fonction dateJuste() qui renvoie 1 si une date saisie est juste, 0 sinon
4) Écrire la procédure jourdulendemain() qui, à partir d'une donnée de type date détermine la date
du lendemain.
5) Écrire une fonction comparedate() qui renvoie 1 si une date d1 est plus grande qu'une date d2,
0 si elles sont égales, et -1 si la date d2 est plus grande que la date d1
6) Écrire une fonction ecartjour() qui retourne le nombre de jours qui séparent deux dates.
Exercice 128. Le directeur d’une société offre des primes à ses employés. Chaque employé
possède les informations suivantes :CIN, Nom, Prénom, Date de naissance, Date d’embauche,
Salaire, Nombre d’année d’expérience (NAE), prime.Les primes sont offertes selon le critère suivant :
Si nombre d’année d’expérience 2 < NAE <=4 alors prime=salaire
Si nombre d’année d’expérience 4 < NAE <=6 alors prime=salaire* 1,5
Si nombre d’année d’expérience 6 < NAE <=8 alors prime=salaire *2
Si nombre d’année d’expérience NAE > 8 alors prime=salaire *4
1- Créer les structures nécessaires avec les attributs cités dans l’énoncé, en choisissant un type de
données convenable pour chaque attribut.
2- Remplir toutes les informations des 6 employés sauf le NAE et la prime.
3- Calculer le nombre d’année d’expérience de chaque employé.
4- Ecrire une fonction ayant comme paramètre le salaire, retourne la prime.
Utiliser cette fonction pour remplir la valeur de prime de chaque employé.
5- Afficher tous les employés qui ont été embauché avant la date 01/04/2005 et âgés d’au moins de
30 ans.
6- Trier la liste des employés selon leur salaire.
Exercice 129. Le but est de créer un ensemble de fonction de gestion des nombres complexes.
On rappelle que les nombre complexes d’écrivent comme suit : x=a+ib, où a et b sont des nombres
réels, i*i=-1.
Exercice 130. Créer puis afficher à l'écran le fichier INFORM.TXT dont les informations sont
structurées de la manière suivante:
Numéro de matricule (entier)
Nom (chaîne de caractères)
Prénom (chaîne de caractères)
Le nombre d'enregistrements à créer est à entrer au clavier par l'utilisateur.
Exercice 131. Ecrire un programme qui crée un fichier INFBIS.TXT qui est la copie exacte
(enregistrement par enregistrement) du fichier INFORM.TXT.
Exercice 132. Ajouter un nouvel enregistrement (entré au clavier) à la fin de fichier INFORM.TXT
et sauver le nouveau fichier sous le nom INFBIS.TXT.
Exercice 134. A l'aide d'un éditeur de textes, créer un fichier NOMBRES.TXT qui contient une liste
de nombres entiers. Dans le fichier, chaque nombre doit être suivi par un retour à la ligne. Ecrire un
programme qui affiche les nombres du fichier, leur somme et leur moyenne.
Choix : 1
…
Ce menu permet de gérer le tableau d’étudiants, après chaque manipulation le menu s’affiche à
nouveau.
Exercice 136. Vous allez devoir écrire un programme qui permet de créer, mettre à jour ou
supprimer un enregistrement client.
Le nom du fichier ainsi que son emplacement sur disque sont fournis par l’utilisateur du programme.
Si le fichier n’existe pas, vous devez le créer Pensez à optimiser votre code en ayant recours aux
fonctions et procédures de manière adéquate.
La structure d’un enregistrement d’un fichier client est constitué de :
Le numéro client : ENTIER qui correspond au N° d’ordre d’enregistrement dans le fichier
Le caractère de validité de l’enregistrement : de type CAR
Il vaut ‘X’ si l’enregistrement a été supprimé. Ces enregistrements ne devront alors pas être
considérés pour lecture ou modification.
Le prénom du client : de type CHAINE de longueur 30
Le nom du client : de type CHAINE de longueur 30
L’adresse du client Partie 1 CHAINE de longueur 40
L’adresse du client Partie 2 CHAINE de longueur 40
Le code postal de la ville du client : CHAINE de longueur 5
La ville du client : CHAINE de longueur 34
Optimiser le code du programme en ayant recours aux fonctions et procédures.
L’utilisateur doit indiquer s’il doit insérer un nouvel enregistrement, mettre à jour ou supprimer un
enregistrement existant. Dans le cas d’une suppression, vous devez afficher les informations du client
et demandez la confirmation de cette suppression.
Pour la modification ou la suppression, vous devez accéder à l’enregistrement par le N° d’ordre qui
doit être compris entre 1 et le nombre d’enregistrements stockés dans le fichier.
Pour l’ajout, vous devez attribuer un nouveau n° ordre en incrémentant le nombre d’enregistrements
stockés dans le fichier.
Pour une mise à jour, vous devez afficher l’ancienne valeur devant être modifiée.
Exercice 137. Soit un fichier texte contenant un ensemble de mots séparés par des retours à la
ligne (que l’on va qualifier de dictionnaire)
Ecrire les fonctions et les procédures suivantes :
1- Charger(chaine mot), qui stocke dans la chaine un mot du fichier choisi au hasard par
l’ordinateur.
Nb : on suppose l’existence d’une fonction hasard() qui génère un nombre aléatoire entier.
2- Code(chaine mot,chaine res) qui code une chaîne de caractère conformément à l’exemple :
BONJOUR Devint B-----R
3- Rechercher(chaine mot,chaine mot_code,caractère lettre) qui permet à partir d’un mot, d’une
chaîne codée et d’une lettre donné, de placer dans la chaîne codée la lettre à toutes les positions où
elle se trouve dans le mot, si la lettre n’est pas dans le mot on retournera un état non trouvé.
4- JEU() qui permet à un joueur de proposer une lettre, et de compter le nombre des propositions
faites.
a alors dans une chaîne chargée la présence de la lettre.
se situe
dans la chaîne saisie.
- espace
- ponctuation: . : , ; ? !
- parenthèses: ( )
- guillemets: "
- apostrophe: '
Utiliser une fonction d'aide SEPA qui décide si un caractère transmis comme paramètre est l'un des
séparateurs mentionnés ci-dessus. SEPA restituera la valeur (logique) 1 si le caractère est un
séparateur et 0 dans le cas contraire.
SEPA utilise un tableau qui contient les séparateurs à détecter.
Exemple:
n paramètre).