1
Exercices d’applications
Exercice 1
Exercice 2.
Compléter le tableau suivant en indiquant par une croix les identificateurs corrects ou
incorrects.
Identificateur Correct Incorrect
var1
1var
Var.1
Var_2
Var-2
troisieme
troisième
Moi
M100
No2
Nom_français
Exercice3 :
On a versé l’eau dans le verre à thé et le thé dans le verre à eau .Comment rétablir la situation ?
Exprimez votre solution en utilisant la notation suivante : V T, dénote l’action consistant à verser le
contenu du verre T dans V.
Exercice4 :
1 On considère l’algorithme suivant, dont les instructions sont numérotées de 1à4 :
AlgorithmeExercice1
Variables : A, B : Entier
Début
1. A1
2. B3
3. BA+3
4. A3
Fin
Effectuez la trace pas à pas en dressant le tableau suivant :
N° A B
1 1 *
2 1 3
3 …. ….
4 …. ….
2
Exercice5 :
Même question pour l’algorithme suivant :
Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
AlgorithmeExercice2
Variables : A, B, C : Entier
Début
A5
B3
CA+B
A2
CB-A
Fin
Exercice6 :
Ecrivez un algorithme de conversion euros Dirham, l’utilisateur saisi le montant en euros puis la
devise, le résultat en dirham doit être imprimé sur l’écran.
Exercice7 :
Ecrire un algorithme qui prend une somme en dirhams et la décompose en
billets 100 dh, 50dh, 20 dh et en pièces de 10 dh, 5dh, 2dh et de 1dh.
Puis affiche le résultat à l’écran.
Exemple : si on saisie la somme de 1469dh le résultat affiché sera : 14 billets de
100dh, 1 billet 50dh, 0 billet de 20 dh, une pièce de 10 dh, une pièce de 5 dh , 2
pièces de 2 dh et 0 pièce de 1 dh.
Exercice 8
Exercice 9 :
Exercice 10 :
Même question pour l’équation de type ax²+bx+c=0 On se limitera à une solution réelle.
Exercice 11:
3
Exercice 12
Un magasin de reprographie facture 0,5 dh les dix premières copies, 0,30 les vingt suivantes
et 0,20 dh au-delà. Ecrivez un algorithme qui demande à l’utilisateur le nombre de
photocopies effectuées et qui affiche la facture correspondante.
Exercice 13 :
Les habitant d’une communauté paient les impôts selon les règles suivants :
Le programme demandera donc l’âge et le sexe, et se prononcera donc ensuite sur le fait que l’habitant est
imposable.
Exercice14 :
Ecrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 20 jusqu’à ce
que la réponse convienne.
Exercice15 :
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la
réponse convienne. En cas de réponse supérieure à 20, on fera apparaître un message :
« Plus petit ! », et inversement, « Plus grand ! » si le nombre est inférieur à 10.
Exercice16 :
Ecrire un algorithme qui demande successivement N nombres à l’utilisateur qu’on connaît
pas d’avance, la saisie s’arrête lorsque l’utilisateur tape 0 et qui lui dise ensuite quel était le
plus grand parmi ces N nombres ainsi que sa position.
Exercice 17:
On vous demande de réaliser un algorithme permettant de saisir une liste de notes le nombre
de note n’est pas connues à l’avance, et qui affiche leur moyenne.
La saisie de la série de notes sera interrompue quand l’utilisateur entrera une valeur
particulière : -1 par exemple qui ne peut pas être confondu avec une note !, on s’assure aussi
que la note est comprise entre 0 et 20.
Exercice 18 :
On souhaite écrire un algorithme de calcul du pgcd de deux entiers non nuls, en utilisant la
méthode dite "égyptienne "
Exercice 19 :
Même question que l’exercice 5 mais cette fois-ci on utilise cette fois-ci la méthode d’Euclide.
4
Exercice 20 :
Exercice 21:
On souhaite écrire un algorithme qui demande à l’utilisateur un nombre entier et l’informe
ensuite si ce nombre est premier ou non. Un nombre entier est premier s’il n’est divisible que
par 1 et par lui-même
Exercice 22 :
On souhaite écrire un algorithme qui demande à l’utilisateur un nombre entier et l’informe
ensuite si ce nombre est parfait ou non.
Exercice 23 :
Ecrire un algorithme qui demande à l’utilisateur un nombre entier et qui affiche le factoriel
de ce nombre.
Exemple : 5 !=1x2x3x4x5
0 !=1
Exercice 24 :
Ecrire un algorithme permettant de calculer K avec n un entier :
Notes
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………
5
Exercice 25 :
Exercice 26:
Exercice 27:
Exercice29 :
On souhaite écrire un algorithme de calcul et d'affichage des n premiers nombres premiers.
Un nombre entier est premier s’il n’est divisible que par 1 et par lui-même. On opérera une
implantation avec des boucles for imbriquées.
Exemple : Si l’utilisateur saisie une entier n=6 le programme doit afficher le résultat suivants :
1, 2, 3, 5, 7,11 ….les six premiers nombres premiers.
Exercice30 :
On souhaite écrire un algorithme afin de vérifier sur des exemples, la conjecture de
GoldBach, soit : "Tout nombre pair est décomposable en la somme de deux nombres
premiers".
Exemple :
Si l’utilisateur saisie une valeur = 14 l’algorithme doit afficher le résultat suivant :
1 ,13, 3,11, 7,7.
6
Exercice31 :
On suppose que l’on dispose d’une fonction estPremiern qui teste si l’entier n est premier y
compris 1.
1. Ecrire une fonction qui compte le nombre de nombres premiers compris dans un
intervalle d’entiers positifs fixé [a ,b[. par exemple compte premiers 5,15= 4
2. Ecrire une fonction qui pour un entier n donné calcule le nombre premier de rang n.
par exemple : premier1 = 1 car 1 est le premier nombre premier et premier6 = 11 car
11 est le cinquième.
3. Ecrire une fonction qui détermine le rang d’un nombre premier.Exercice5 :
Algorithme CalculFactorielle
Var
n1,n2 :entier
Fonction factorielle(n :entier) :eniter
Var
i,res :entier
Début
Res1
Pour i De 2 à n
Faire
res res*i
FinPour
Retourne res
FinFonc
Procédure Afficher(val :entier) : vide
Ecrire « Le résultat vaut : » ,val
Fin Procédure
Début
Lire n1
Afficher( factorielle(n1))
Lire n2
Afficher( factorielle(n2))
Fin
Question 1 :
Que produit l’algorithme pour a=24 et b=8
Question 2 :
Qu’appelle-t-on la fonction calculer, et quelles sont les conditions nécessaires pour qu’elles
n’entrent pas dans une boucle infinie
7
Exercice 32
Ecrire un algorithme qui déclare et remplisse un tableau de 7 valeurs numériques en les mettant
toutes à zéro.
Exercice 33
Ecrire un algorithme qui déclare et remplisse un tableau contenant les six voyelles de l’alphabet
latin.
Exercice 34
Ecrire un algorithme qui déclare un tableau de 9 notes, dont on fait ensuite saisir les valeurs par
l’utilisateur.
Exercice 35
Exercice 36
Exercice 37
8
Tableau Suite(7) en Entier
Variable i en Entier
Début
Suite(0) ← 1
Suite(1) ← 1
Pour i ← 2 à 7
Suite(i) ← Suite(i-1) + Suite(i-2)
i suivant
Pour i ← 0 à 7
Ecrire Suite(i)
i suivant
Fin
Exercice 38
Ecrivez la fin de l’algorithme 6.3 afin que le calcul de la moyenne des notes soit effectué et affiché
à l’écran.
Exercice 39
Exercice 40
Ecrivez un algorithme calculant la somme des valeurs d’un tableau (on suppose que le tableau a été
préalablement saisi).
Exercice 6.10
4 8 7 9 1 5 4 6
Tableau 2 :
7 6 5 2 1 3 7 4
Tableau à constituer :
11 14 12 11 2 8 11 10
9
Exercice 41
Toujours à partir de deux tableaux précédemment saisis, écrivez un algorithme qui calcule le
schtroumpf des deux tableaux. Pour calculer le schtroumpf, il faut multiplier chaque élément du
tableau 1 par chaque élément du tableau 2, et additionner le tout. Par exemple si l'on a :
Tableau 1 :
4 8 7 12
Tableau 2 :
3 6
Le Schtroumpf sera :
3 * 4 + 3 * 8 + 3 * 7 + 3 * 12 + 6 * 4 + 6 * 8 + 6 * 7 + 6 * 12 = 279
Exercice 42
Ecrivez un algorithme qui permette la saisie d’un nombre quelconque de valeurs, sur le principe de
l’ex 6.8. Toutes les valeurs doivent être ensuite augmentées de 1, et le nouveau tableau sera
affiché à l’écran.
Exercice 43
Ecrivez un algorithme permettant, toujours sur le même principe, à l’utilisateur de saisir un nombre
déterminé de valeurs. Le programme, une fois la saisie terminée, renvoie la plus grande valeur en
précisant quelle position elle occupe dans le tableau. On prendra soin d’effectuer la saisie dans un
premier temps, et la recherche de la plus grande valeur du tableau dans un second temps.
Exercice 44
Toujours et encore sur le même principe, écrivez un algorithme permettant, à l’utilisateur de saisir
les notes d'une classe. Le programme, une fois la saisie terminée, renvoie le nombre de ces notes
supérieures à la moyenne de la classe.
10
n
Variance = (1/n) ( Xi M )²
i 0
L’écart type est la racine carré de la variance, soit :
Ecart type=
Modifier ensuite en conséquence le programme Java correspondant
Indice pour l’énoncé 2.2
Utilisez la fonction math.sqrt pour obtenir la racine carrée
11
Ecrivez le programme qui compare deux tableaux de caractères constitués exclusivement de
lettres minuscules non accentuées. L’ordre de comparaison utilisé est celui du dictionnaire,
c’est-à-dire l’ordre alphabétique des mots qui est basé sur l’ordre alphabétique entre deux
caractères.
Pour comparer deux mots, on recherche le premier caractère distinct entre eux. Le mot dont le
caractère vient avant dans l’ordre alphabétique est le mot qui précède l’autre. S’il n’y a pas de
caractères distincts et que l’un des deux mots est plus court, il précède l’autre, sinon les deux
mots sont égaux.
n=0 1
n=1 1 1
n=2 1 2 1
n=3 1 3 3 1
n=4 1 4 6 4 1
n=5 1 5 10 10 5 1
n=6 1 6 15 20 15 6 1
Méthode:
Calculer et afficher seulement les valeurs jusqu'à la diagonale principale (incluse). Limiter le
degré à entrer par l'utilisateur à 13.
- Calculer les valeurs entre les éléments initialisés de gauche à droite en utilisant la relation:
Rechercher dans une matrice donnée A les éléments qui sont à la fois un maximum sur leur
ligne et un minimum sur leur colonne. Ces éléments sont appelés des points-cols. Afficher les
positions et les valeurs de tous les points-cols trouvés.
/ \ / \ / \ / \
|18340| |4589| |35677| |123|
12
| | |3893| |42289| |456|
|67270| |3493| |63297| |789|
\ / \ / \ / \ /
Méthode: Etablir deux matrices d'aide MAX et MIN de même dimensions que A, telles que:
/ 1 si A[i,j] est un maximum
MAX[i,j] = | sur la ligne i
\ 0 sinon
La multiplication de deux matrices se fait en multipliant les composantes des deux matrices
lignes par colonnes:
Rappel:
/ \ / \ / \
|abc| |pq| | a*p + b*r + c*t a*q + b*s + c*u |
| e f g | * | r s | = | e*p + f*r + g*t e*q + f*s + g*u |
| h i j | | t u | | h*p + i*r + j*t h*q + i*s + j*u |
|klm| \ / | k*p + l*r + m*t k*q + l*s + m*u |
\ / \ /
13