MPSI/Ecole Préparatoire 2014-2015
Dr KADJO Tanon Lambert Département Mathématiques et Informatique INP-HB / Yamoussoukro www.kadjo-lambert.c4.cf
Exercices d’ALGORITHMIQUE
Exercice 1 : Ecrire un programme qui boucle à l’infini
a) En utilisant la structure TANT QUE
b) En utilisant la structure REPETER … JUSQUE
c) En utilisant POUR
Exercice 2 : Écrire un sous-programme qui affiche le codage d’un entier quelconque et donne
le nombre de bits à 1.
Exercice 3 : Écrire une fonction qui retourne le plus grand commun diviseur (pgcd) de deux
nombres entiers positifs par l’algorithme d’Euclide suivante:
Exercice 4 : Écrire une fonction qui calcule la racine carrée entière d’un nombre entier positif
par soustractions successives des nombres impairs.
Exemple : Racine de 51
Il y a eu 7 soustractions en tout, donc la racine entière de 51 est 7.
Exercice 5 : Soit p
n
C est défini pour np
0, par
- 1
11
p
n
p
n
p
nCCC pour p différent de 0 et n
- 1
0n
nn CC
Trouver un programme permettant d’effectuer le calcul de p
n
C.
Exercice 6 : La date de Pâques correspond au 1er dimanche après la première pleine lune qui
suit l'équinoxe de printemps. Soient les données suivantes :
a = Année modulo 19
b = Année modulo 4
c = Année modulo 7
d = (19 * a + 24) mod 30
e = (2 * b + 4 * c + 6 * d + 5) mod 7
alors
n = 22 + d + e
n est le numéro du jour à partir du 1er mars correspondant au dimanche de Pâques.
MPSI/Ecole Préparatoire 2014-2015
Dr KADJO Tanon Lambert Département Mathématiques et Informatique INP-HB / Yamoussoukro www.kadjo-lambert.c4.cf
Réalisez un programme qui calcule la date de Pâques à partir de l'année.
Exercice 7 : Un candidat obtient 5 notes Système (Coeff 5), Algo (coeff 3), HTML (Coeff 3),
Java (coeff 4), BDD (coeff 4), à un examen. Ces notes sont stockées dans un tableau NOTES.
Pour déterminer sa réussite, on calcule une moyenne pondérée à l'aide de 5 coefficients
stockés dans un tableau COEFF.
1) Ecrire l'algorithme qui calcule à l'aide d'une boucle, la moyenne pondérée d'un
candidat.
2) Compléter cet algorithme à l'aide d'une deuxième boucle pour calculer le résultat de 30
candidats.
Exercice 8 : Écrire un algorithme qui permet de déplacer un pion sur un damier.
L’ordinateur demande à l’utilisateur dans quelle case se trouve son pion (quelle ligne, quelle
colonne). On met en place un contrôle de saisie afin de vérifier la validité des valeurs entrées.
Ensuite, on demande à l’utilisateur quel mouvement :
- 0 (en haut à gauche)
- 1 (en haut à droite)
- 2 (en bas à gauche)
- 3 (en bas à droite).
Si le mouvement est impossible (i.e. on sort du damier), on le signale à l’utilisateur et on lui
propose des positions et le jeu s’arrête. Sinon, on déplace le pion et on affiche le damier
résultant, en affichant un « O » pour une case vide et un « X » pour la case se trouve le
pion.
NB : On considère l’instruction LDA « Afficher (" \n") » , l’instruction permettant d’aller
sur une nouvelle ligne.
Exercice 9 : L’un des plus vieux code secret est le chiffre de César. Il consiste en un décalage
circulaire de l’alphabet utilisé. Le tableau ci-dessous présente le codage obtenu pour un
décalage de 4 positions de l’alphabet. Le mot “BAC” est codé “FEG”.
MPSI/Ecole Préparatoire 2014-2015
Dr KADJO Tanon Lambert Département Mathématiques et Informatique INP-HB / Yamoussoukro www.kadjo-lambert.c4.cf
Lettre à coder A B C D E F G Y Z
Lettre après codage E F G H I J K C D
On stocke dans le tableau CHAINE_A_CODER (respectivement le tableau
CHAINE_A_DECODER), la chaîne de caractères à encoder (respectivement la chaine de
caractères à décoder) à avec les critères suivants :
- vous demandez à l’utilisateur de saisir la chaine.
- Cette chaîne fait une longueur définie par la variable LONGUEUR_CHAINE.
- Cette chaîne de caractères ne doit contenir que des majuscules. Assurez-vous qu’elle l’est.
Dans cet exercice, on ne codera que les 26 lettres de l’alphabet. Les autres caractères ne le
seront pas et seront donc fournis tels quels.
1) Quel est le code correspondant à la chaine EXAMEN si le décalage est de 4 positions.
2) Proposez un programme qui encode CHAINE_A_CODER et affiche le résultat. Le
nombre de lettre de décalage est demandé à l’utilisateur.
3) Proposez un programme qui décode CHAINE_A_DECODER et affiche le résultat. Le
nombre de lettre de décalage est demandé à l’utilisateur.
Exercice 10 : Tri bulle
1. Ecrire un algorithme illustrant le tri bulle
2. Dérouler le tri bulle sur le tableau suivant, en donnant le détail des différentes étapes
45 11 2 0 3 2 0 17 11
Exercice 11 : Méthode de Tri
On a un tableau [1..N] de réels dont on sait qu’ils sont tous compris entre 0 et 1, et qu’ils sont
différents les uns des autres. On se propose de les trier par la méthode suivante :
- On sépare ceux qui sont plus petits que 1/2 (et on les met à gauche du tableau) et ceux
qui sont plus grand s ou égaux à 1/2 (vont à droite).
- On prend ceux qui sont plus petits que 1/2 , et on les sépare en plus petits et plus grands
que 1/4. Les plus petits que 1/4 seront séparés en plus petits et plus grands que 1/8.
Ceux qui sont plus petits que 1/2 mais plus grand que ¼ seront séparés en plus petits et
plus grands que 3/8.
- Les plus grands que 1/2 seront séparés en plus grands et plus petits que 3/4 etc. jusqu’à
aboutir à un tableau trié.
1) A quel moment peut-on savoir que le tableau est trié ?
2) Programmer cette méthode.
3) Comment peut-on appliquer cette méthode sur un tableau de réels de valeurs
quelconques.
Notes
MPSI/Ecole Préparatoire 2014-2015
Dr KADJO Tanon Lambert Département Mathématiques et Informatique INP-HB / Yamoussoukro www.kadjo-lambert.c4.cf
Exercice 12 : Soit l’algorithme suivant :
Procédure Bolt (Tab[1..1000] : tableau de numériques, id_debut : entier, id_fin : entier)
id_pivot : entier
Debut
Si (id_debut < id_fin) Alors
id_pivot
Partitionner (Tab, id_debut, id_fin)
Bolt (Tab, id_debut, id_pivot)
Bolt (Tab, id_pivot+1, id_fin)
FinSi
FinProcedure
Fonction Partitionner (Tab[1..1000] : tableau de numériques, id_debut : entier, id_fin :
entier) : numerique
pivot, i, j : numérique
test : booléen
Debut
pivot
Tab[id_debut]
i
id_debut - 1
j
id_fin+1
test
VRAI
Tant Que (test)
Repeter
j
j-1
Jusqu’à (Tab[j]<= pivot)
Repeter
i
i+1
Jusqu’à (Tab[i]>=pivot)
Si (i < j) Alors
Echanger (Tab, i, j)
Sinon
test
FAUX
FinSI
FinTantQue
Retourner (j)
FinFonction
1) Donner le pseudo-code de la procédure Echanger
2) Faire tourner sur l’exemple [9, 4, 2, 8, 5] l’algorithme Bolt.
3) Faire tourner sur l’exemple [2, 4, 5, 8, 9] l’algorithme Bolt.
4) Si l’on veut appliquer cet algorithme sur le tableau [2, 2, 2, 2, 2], quelle valeur
retourne Partitionner, pour son premier appel ?
MPSI/Ecole Préparatoire 2014-2015
Dr KADJO Tanon Lambert Département Mathématiques et Informatique INP-HB / Yamoussoukro www.kadjo-lambert.c4.cf
Exercice 13 : Ecrire un algorithme qui affiche les informations ci-dessus d’un employé dans
un cadre en lui indiquant le temps restant pour atteindre la date de retraite. On suppose que la
durée de fonction est estimée à 30 ans d’exercice.
Exercice 14. Créer un tableau EMPLOYES qui contiendra les informations sur les 50
employés d’une entreprise (Matricule, Nom, Salaire, Etat_civil, Date_Naiss,
Date_embauche), le remplir puis afficher le nombre d’employés dont le salaire est compris
entre 250 000 FCFA et 500 000FCFA.
Afficher la liste des employés ayant plus de 20 ans de services à la date de 01/01/2010, ainsi
que le nombre d’années de services.
Exercice 15 : Écrivez une fonction ayant en paramètres le nombre d’heures effectuées par un
salarié et son salaire horaire, qui retourne sa paie hebdomadaire.
Les heures sup. (au-delà de 35 heures) sont payées à 150%.
Nom : KONE
Prenoms : Mamadou
Date d’embauche : 12/07/1978
Sexe : M
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !