Fiche1 2 3
Fiche1 2 3
Fiche1 2 3
Exercice 1
Dites quelles sont les valeurs des variables x, y, z après l’exécution de
chacune des instructions suivantes :
x ← 10
y← 7
z←x+y
x← 3
z ← y-x
Exercice 2
Écrire de deux façons différentes un algorithme qui permet d’échanger les
valeurs de 2 variables entières.
Exercice 3
Écrire un algorithme qui permet, à partir de la saisie de trois nombres,
d’en calculer la somme, le produit et la moyenne.
Exercice 4
Comment écrire une chaîne de caractères formée d’un seul quote ?
Exercice 5
Quelle instruction pourrait écrire la solution de l’exercice précédent ?
Exercice 1 :
a) Écrire un algorithme qui saisit trois nombres et affiche le plus grand.
b) Écrire un algorithme qui saisit trois nombres et affiche le plus grand et le plus petit.
NB : On expliquera le principe de résolution (méthode) avant d'écrire les algorithmes. Cette
remarque reste valable pour tous les autres exercices de cette fiche et d'autres
Exercice 2:
Un robot conduit une voiture. Il peut exécuter trois actions ''passer'', ''ralentir'', ''passer'' en fonction
de la couleur des feux qui sera une variable caractère saisie. Proposer une méthode de travail et
l'algorithme correspondant.
Attention : un mauvais algorithme produit des accidents de circulation.
Exercice 3:
A partir de la saisie de deux nombres a et b, résoudre l'équation ''ax+b = 0''. Proposer une méthode
et l'algorithme correspondant.
Exercice 4:
a) Écrire un algorithme qui effectue la multiplication de deux nombres entiers par additions
successives. Faire l'analyse de la question avant de fournir l'algorithme correspondant.
b) Écrire un algorithme qui effectue la division de deux nombres entiers par soustractions
successives. Faire l'analyse de la question avant de fournir l'algorithme correspondant
Exercice 1 :
Écrire un algorithme qui fait la résolution complète (solutions réelles et complexes) du trinôme du
second degré.
Exercice 2 :
Une compagnie d'assurance automobile propose à ses clients quatre familles de tarifs identifiables
par une couleur, du moins au plus onéreux : tarifs bleu, vert, orange et rouge.
Le tarif dépend de la situation du conducteur :
- un conducteur de moins de 25 ans et titulaire du permis depuis moins de deux ans, se voit attribuer
le tarif rouge, si toutefois il n'a jamais été responsable d'accident. Sinon, la compagnie refuse de
l'assurer.
- un conducteur de moins de 25 ans et titulaire du permis depuis plus de deux ans, ou de plus de 25
ans mais titulaire du permis depuis moins de deux ans a le droit au tarif orange s'il n'a jamais
provoqué d'accident, au tarif rouge pour un accident, sinon il est refusé.
- un conducteur de plus de 25 ans titulaire du permis depuis plus de deux ans bénéficie du tarif vert
s'il n'est à l'origine d'aucun accident et du tarif orange pour un accident, du tarif rouge pour deux
accidents, et refusé au-delà
De plus, pour encourager la fidélité des clients acceptés, la compagnie propose un contrat de la
couleur immédiatement la plus avantageuse s'il est entré dans la maison depuis plus d'un an.
Écrire l'algorithme permettant de saisir les données nécessaires (sans contrôle de saisie) et de traiter
ce problème. Avant de se lancer à corps perdu dans cet exercice, on pourra réfléchir un peu et
s'apercevoir qu'ils est plus simple qu'il en a l'air (cela s'appelle faire une analyse !)
Exercice 3 :
Écrire un algorithme qui demande à l’utilisateur un nombre compris entre 1 et 3 jusqu’à ce que la
réponse convienne.
Exercice 4 :
Écrire 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.
Exercice 5 :
É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 algorithme affichera les nombres de 18
à 27.
Exercice 6 :
É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 algorithme doit calculer :
1 + 2 + 3 + 4 + 5 = 15
Exercice 7 :
Écrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle.
Modifiez ensuite l’algorithme pour que le algorithme affiche de surcroît en quelle position avait été
saisie ce nombre :
C’était le nombre numéro 2
Exercice 9 :
Réécrire l’algorithme précédent, mais cette fois-ci on ne connaît pas d’avance combien l’utilisateur
souhaite saisir de nombres. La saisie des nombres s’arrête lorsque l’utilisateur entre un zéro
Exercice 10 :
Écrire un algorithme qui permette de connaître ses chances de gagner au tiercé, quarté, quinté et
autres impôts volontaires.
On demande à l’utilisateur le nombre de chevaux partants, et le nombre de chevaux joués. Les deux
messages affichés devront être :
X et Y nous sont donnés par la formule suivante, si n est le nombre de chevaux partants et p le
nombre de chevaux joués :
X = n ! / (n - p) !
Y = n ! / (p ! * (n – p) !)
NB : cet algorithme peut être écrit d’une manière simple, mais relativement peu performante. Ses
performances peuvent être singulièrement augmentées par une petite astuce. Vous commencerez par
écrire la manière la plus simple, puis vous identifierez le problème, et écrirez une deuxième version
permettant de le résoudre.
Exercice 11: Écrire un algorithme qui fait la table de multiplication de 1 à 10 des dix premiers
Exercice 12: Écrire un algorithme qui fait la table de multiplication de 1 à 10 des dix entiers
compris entre un nombre X donné et X+ 20.
Exercice 13: Écrire un algorithme qui fait la table de multiplication de 1 à 10 des dix premiers
entiers pairs.
Exercice 14: Écrire un algorithme qui fait la table de multiplication de 1 à 10 de dix entiers
pairs compris entre un nombre X donné et X+ 20.
Exercice 15: Écrire un algorithme qui fait la table multiplication de 1 à 10 de dix entiers
impairs compris entre un nombre X donné et X+ 20.
Exercice 16: Écrire un programme C qui permet de saisir une liste de nombres positifs compris
15 et 569. A la fin de la saisie, le programme devra afficher le plus grand nombre et le plus petit
nombre de la liste ainsi que leur nombre d'occurrences (le nombre de fois qu'ils figurent sur la
liste).
Exercice 1
Écrire un algorithme qui remplit un tableau de la façon suivante : le ième élément du tableau aura
pour valeur le cube de i.
Exercice 2
Écrire un algorithme qui recherche le plus petit élément d’un tableau et qui l’affiche
Exercice 3
Écrire un algorithme qui recherche et retourne l’indice du plus grand élément
Exercice 4
Écrire un algorithme qui recherche le plus grand et le plus petit élément et retourne les indices de
ces éléments.
Exercice 5
Écrire un algorithme qui recherche le nombre d’occurrence d’un élément donné dans un tableau.
Exercice 6
Écrire un algorithme qui recherche un élément dans un tableau en retournant l’indice de la
première occurrence d’un élément s’il existe dans un tableau.
Exercice 7
Écrire un algorithme qui recherche et retourne l’indice de la dernière occurrence d’un élément s’il
existe dans un tableau.
Exercice 8
Écrire un algorithme qui tri un tableau de façon croissante par recherche de minima successifs.
Exercice 9
Écrire un algorithme qui tri un tableau de façon décroissante par recherche du maxima successifs.
Exercice 10
Écrire un algorithme qui permette la saisie d’un tableau croissant : si T[k]<T[k+1] on enregistre,
si T[k]>T[k+1] on redemande la saisie d’un nombre plus grand .
Exercice 11
Écrire un programme qui inverse un tableau. (exemple : 1 5 6 7 3 devient 3 7 6 5 1) .
Exercice 12
Soient A et B deux tableaux triés de réels. Le tableau A est de taille n et B est de taille m. On veut
obtenir un tableau C trié, formé des éléments de A et B.
Proposer une analyse cohérente du problème et fournir l'algorithme correspondant.
Exercice 13
Soit T une matrice carrée d'ordre n (n lignes et n colonnes). Transposer cette matrice c'est-à-dire
échanger le contenu des lignes et des colonnes.
Exercice 14
Écrire un algorithme qui réalise l'addition de deux matrices A et B de même dimension N x M (N
et M sont saisies au clavier).
Exercice 15
Écrire un programme qui réalise le produit de deux matrices carrées de même dimension.
Exercice 16
Écrire un programme qui permet de remplir un tableau de taille 20 en contrôlant la saisie de telle
sorte que les nombres entrés soient des nombres positifs.
Exercice 17
Écrire un programme qui remplit un tableau de la façon suivante : les indices pairs du tableau
contiendront des nombres positifs pairs et les indices impairs du tableau contiendront des nombres
positifs impairs.
Exercice 18
Écrire un programme qui permet de remplir un tableau d’entiers de la façon suivante : les nombres
négatifs seront contenus dans les cases d’indice impair et les nombres positifs seront contenus dans
les cases d’indice pair.
Exercice 19
Écrire un programme qui remplit un tableau d’entiers de la façon suivante : les cases d’indice pair
contiendront des nombres négatifs impairs et les cases d’indice impair contiendront des nombres
positifs impairs.
Exercice 20
Exercice 4
Écrire un sous-programme map qui applique une fonction sur un tableau d'entiers. Le sous-
programme map prend en paramètre une fonction f, un tableau d'entiers ainsi que la taille du
tableau. La fonction f prend un entier en paramètre et retourne un entier. Si le tableau contient les
valeurs x0, x1, x2,..., xn, le tableau contient après l'appel les valeurs f(x0), f(x1), f(x2),..., f(xn).
Exercice 5
Écrire un sous-programme itarray qui calcule l'itération d'une fonction à deux arguments sur un
tableau d'entiers. Le sous-programme itarray prend en paramètre une fonction f, un tableau
d'entiers ainsi que la taille du tableau. La fonction f prend deux entiers en paramètre et retourne un
entier. Si le tableau contient les valeurs x0, x1, x2, ..., xn, le sous-programme itarray retourne la
valeur
f(f(... f(f(x0,x1),x2),...)xn).
Si la taille du tableau est respectivement 1, 2, 3 ou 4 le sous-programme itarray retourne
respectivement les valeurs x0, f(x0, x1), f(f(x0, x1), x2) et f(f(f(x0, x1), x2), x3). Comment utiliser ce
sous-programme itarray pour calculer, le maximum, la somme ou le produit des éléments d'un
tableau ? .
Exercice 6
Écrire un sous-programme inverse qui inverse l'ordre des éléments dans un tableau de flottants.
Ce sous-programme prendra en paramètre le tableau et sa taille. Après l'appel à la fonction
inverse, le tableau contient les mêmes valeurs mais placées dans l'ordre inverse. Ainsi si le
tableau contient les valeurs [2.1, 3.4, 5.6, 7.8, 9.1, 7.4], il devra ensuite contenir
les valeurs [7.4, 9.1, 7.8, 5.6, 3.4, 2.1].
Exercice 7
Écrire un sous-programme insere qui insère une nouvelle valeur dans un tableau trié de réels.
Ce sous-programme prendra en paramètre le tableau, le nombre d'éléments déjà présents dans le
tableau et la nouvelle valeur. Il suppose que le tableau est de taille assez grande et que les valeurs
sont triées dans le tableau. Utiliser ce sous-programme avec un programme qui insère au fur et à
mesure des valeurs saisies par l'utilisateur puis qui les affiche dans l'ordre.