Vous êtes sur la page 1sur 29

Série de révision BAC 2008-2009

atis.clicforum.com
Série de révision BAC 2008/2009
atis.clicforum.com
50 exercices Algorithmique & Programm@tion
4ème Sc.Info
Exercice1
La fonction d’Ackermann est définie par :
Ackermann (0, j) = j + 1 Ackermann (i, 0) = Ackermann (i-1, 1) Ackermann (i, j)
= Ackermann (i-1, Ackermann (i, j-1))
Analyser et déduire l’algorithme récursif qui permet de renvoyer la valeur de la fonct
ion d Ackermann pour un couple (i,j) donné.
Exercice2
L’un des plus vieux code secret est le chiffre de César. Il consiste en un décalage ci
rculaire de N positions de l’alphabet utilisé. Exemple: Lettres à coder : A B C D E F
G... Y Z
Pour un décalage circulaire de 4 positions : Lettres après codage : E F G H I J K...
C D
Le mot “BAC” est codé “FEG”. Travail à faire Proposer un module qui permet d encoder une ch
e de caractères passée en paramètres suivant le principe des chiffres de César
Exercice 3
Ecrire l analyse d une fonction qui permet de calculer et retourner une valeur a
pprochée de près, en utilisant la formule suivante : à 10-4
Collectée par Khaled KACHBOURI – atis.clicforum.com
1
Série de révision BAC 2008-2009
atis.clicforum.com
Exercice4
Soit la fonction suivante :
0) Début Fonction inconnue (j : entier) : entier 1) N j 2) Répéter N N+1, k 2, v vrai
Tant que (k <= N div 2) et (v) faire Si (N mod k = 0) alors V Faux Sinon k k+1 F
inSi Fin Tant que Jusqu’à (V) 3) inconnue N 4) Fin inconnue
Questions : 1- Exécuter la fonction pour j=7. 2- Quel est le rôle de cette fonction
? 3- Ecrire l’algorithme d’une fonction qui permet de renvoyer une valeur approchée de
π à 10-5 rès, en utilisant la formule Zêta de Riman : π2/6 = 22/(22-1) x 32/(32-1) x 52/
(52-1) x 72/(72-1) x 112/(112-1) … N.B : 2, 3, 5, 7, 11 sont des nombres remiers.
Exercice5
Un nombre d'Armstrong est un entier naturel qui est égal à la somme des cubes de ces
chiffres. Ainsi 153 est un nombre d'Armstrong car 13 + 53 + 33 = 1 + 125 + 27 =
153. Proosez un module récursif qui ermet de vérifier si un entier N est un nombr
e d'Armstrong ou non.
Exercice6
Ecrivez l'algorithme de la fonction ermettant de calculer ex(x), (x est un réel)
. On suosera que l'erreur d'évaluation E est un aramètre de la fonction. ex(x) =
1 + x + x2/2! + x3/ 3! + ... + xn/ n! + ...
Collectée ar Khaled KACHBOURI – atis.clicforum.com
2
Série de révision BAC 2008-2009
atis.clicforum.com
Exercice7
Un serveur de noms (DNS) ermet d’associer une adresse IP à chaque URL. Dans un réseau
, on associe une adresse IP unique à chaque machine. Mais si une adresse est facil
e à manipuler par un ordinateur, elle est difficile à mémoriser par un humain. Le serv
eur de noms DNS permet de trouver l’adresse IP à partir du nom (URL) de la machine (
ou inversement). Pour résoudre un nom en adresse IP, la méthode la plus simple consi
ste à mettre tous les noms des machines et leurs adresses associés dans un fichier.
Exemple : Chaque machine est définie par 3 champs :
192.168.1.1 127.0.0.1 194.146.255.213 196.168.50.20 site1.org localhost.localdom
ain atis.clicforum.com www.footsite1.com 1 0 100 20
• Le premier champ est l’adresse IP, • Le deuxième champ est le nom (URL) de la ressourc
e (site web, image…) • Le troisième champ désigne la distance (nombre de machines) entre
le serveur et la machine cible. Dans la suite, on suppose que le serveur de nom
s sauvegarde ces informations dans le fichier "hosts.dat" enregistré sous le dossi
er "C:\config". Les opérations effectuées par le serveur de noms sont les suivantes
: - Chercher l’adresse IP d’une ressource donnée : Si elle existe, on afficherait son
adresse IP, sinon on afficherait le message "la ressource est indisponible". - A
jouter les informations d’une nouvelle machine : Si des nouvelles machines viennen
t se connecter au réseau alors le serveur ajoute celles ci à la fin du fichier "host
s.dat".
- Supprimer les informations d’une machine : Si une machine se déconnecte du réseau, l
e serveur supprimerait les informations relatives à cette machine. On se propose d’écr
ire un programme qui offre un menu permettant d’exécuter l’une des opérations: - "A" : P
our ajouter une nouvelle machine à la fin du fichier. - "R" : Pour chercher l’adress
e IP d’un nom URL donné. - "S" : Pour supprimer une machine du réseau. - "T" : Pour tr
ier les machines selon l’ordre croissant de la distance par rapport au serveur. Le
tri se fait au niveau de la mémoire centrale. Une fois triées, les données seront rem
ises au fichier d’origine. - "Q" : Pour quitter le programme. Travail demandé :
Collectée par Khaled KACHBOURI – atis.clicforum.com
3
Série de révision BAC 2008-2009
atis.clicforum.com
1- Quelles sont les structures de données adéquates à la résolution de ce problème. 2- Ana
lyser le problème en le décomposant en modules et en déduire l’algorithme du programme p
rincipal. 3- Analyser chacun des modules envisagés précédemment et en déduire les algori
thmes correspondants.
Exercice8
E étant un ensemble à n éléments, on appelle combinaison de p éléments de E toute collectio
non ordonnée de p éléments distincts de E. On note le nombre de combinaisons de p élément
s parmi n. On a :
Ecrire une fonction récursive permettant de calculer les combinaisons Cnp en se se
rvant de la relation suivante : C(0,p)=1 C(p,p)=1 C(n,p) = C(n-1,p) + C(n-1,p-1)
Exercice9
On veut compresser un fichier d entiers binaires (contenant des 0 et des 1). Le
principe de compression est le suivant : Si le fichier contient : 00000011111000
, La compression nous donne : 605130 Et se lit : on a 6 zéros, 5 uns et 3 zéros. Ecr
ire un programme Pascal qui permet de créer et remplir un fichier nommé "source.fch"
par N entiers binaires (N est un nombre aléatoire compris entre 4 et 100), puis c
ompresser ce fichier dans un fichier résultat nommé "compress.fch" en utilisant le p
rincipe ci-dessus et l afficher.
Collectée par Khaled KACHBOURI – atis.clicforum.com
4
Série de révision BAC 2008-2009
atis.clicforum.com
Exercice10
L ISBN (International Standard Book Number) est un numéro qui
ISBN A12-41213104-92651027-5
permet d identifier le titre d un livre. Ce numéro est formé de 20 caractères regroupés
en 4 parties : • La première correspond à la zone linguistique qui est un nombre de 3
chiffres hexadécimaux distincts, et qui commence obligatoirement par une lettre :
Exemples : A12 pour Arabe FB2 pour Français • • Les deux autres parties (indiquant l édi
teur et le numéro d ordre dans la production de l éditeur) sont formés uniquement par
des chiffres : 8 chiffres par partie. La dernière partie (chiffre ou lettre) corre
spond à la clé de contrôle : La clé est le reste de la division d un nombre intermédiaire
N par 11 en utilisant la règle de divisibilité. - Si ce reste est non nul et formé d’un
seul chiffre, la clé sera égale au reste. - Si ce reste est 10 la clé sera notée X. - Si
le reste est 0 la clé sera égale à la somme des chiffres de la représentation binaire d
e la première partie Le nombre intermédiaire N est obtenu en regroupant les deux chi
ffres de même position de la 2 ème et la 3 ème partie de numéro de l ISBN suivis des deu
x chiffres de la position suivante jusqu à ajouter les deux chiffres de la 8 ème pos
ition. Exemple1 : Numéro saisie : A12-41213104-92651027 Numéro affecté au livre : A12-
41213104-92651027-5 Sur l exemple1 A12-41213104-92651027, le calcul intermédiaire
donne N : 4912261531100247 et 4912261531100247 a pour reste 5 dans la division p
ar 11, la clé est donc 5. Exemple2 : Numéro saisie : A12-41213104-92651022 Numéro affe
cté au livre : A12-41213104-92651022-4 Sur l exemple2 A12-41213104-92651022, le ca
lcul intermédiaire donne N:4912261531100242 et 4912261531100242 a pour reste 0 dan
s la division par 11, d’où on effectue la somme des chiffres de la représentation bina
ire de A12.
Collectée par Khaled KACHBOURI – atis.clicforum.com
5
Série de révision BAC 2008-2009
atis.clicforum.com
NB : La règle de divisibilité d’un entier N par 11 : S1 = Somme des chiffre d’indices im
pairs S = ABS(S1-S2) Si S mod 11=0 alors N est divisible par 11 Exp : 50312 mod
11 = abs ((2+3+5)-(1+0)) mod 11 = 9 et S2 = somme des chiffres d’indices pairs
Travail à faire : On veut écrire un programme permettant de saisir le numéro ISBN d’un l
ivre, déterminer la clé affectée à ce numéro et afficher le numéro final du livre. Décompos
ce problème en modules. Analyser chacun des modules. En déduire les algorithmes et l
es tableaux des déclarations.
Exercice11
Soit l’algorithme suivant : 0) Début Inconnu 1) Associer (f1, "Fichier1.dat") 2) Ass
ocier (f2, "Fichier2.dat") 3) Ouvrir (f1) 4) Recréer (f2) 5) Tant que Non Fin_Fich
ier (f1) Faire Tant que Non Fin_Ligne (f1) Faire Lire (f1, ch) Ecrire (f2, ch) F
in Tant que Lire_nl (f1) Ecrire_nl (f2) Fin Tant que 6) Fermer (f1) 7) Fermer (f
2) 8) Fin Inconnu
Collectée par Khaled KACHBOURI – atis.clicforum.com
6
Série de révision BAC 2008-2009
atis.clicforum.com
Travail demandé : 1. Quel est le type des fichiers "Fichier1.dat" et "Fichier2.dat
" 2. Quel est le rôle de cet algorithme 3. Donnez le tableau de codification des o
bjets
Exercice 12
Soit le type ligne_t = string; On dispose de 2 fichiers texte nom1 et nom2 qui c
ontiennent chacun exactement 1 mot par ligne (lettres minuscules sans espacement
), sauf à la fin où il peut y avoir une ligne vide. Ces fichiers sont triés sur les mo
ts dans l ordre croissant. On se propose de fusionner ces 2 fichiers en 1 fichie
r unique nom3, qui contiendra tous les mots de nom1 et nom2, et sera trié. Exemple
:
nom1 Choisir fait germer la solution nom2 bien des exemples nom3 Choisir bien de
s exemples fait germer la solution
Ecrire une spécification et déduire un algorithme du programme qui permet de fusionn
er les lignes des deux fichiers existants triés en un seul fichier en respectant l
ordre.
Exercice13
Soit la fonction f définie par f(x) = On se propose d écrire un programme qui permet
de : - calculer S1 la valeur approchée de l aire sous la courbe de la fonction f
par la méthode des rectangles sur l intervalle [1, 3]. - calculer S2 la valeur app
rochée de l aire sous la courbe de la fonction f par la méthode des trapèzes sur l int
ervalle [1,3]. - Chercher N le nombre d intervalles nécessaires pour avoir une dif
férence entre S1 et S2 strictement inférieur à 10-6. Déterminer et afficher une valeur a
pprochée du point fixe avec une précision Epsilon.
Collectée par Khaled KACHBOURI – atis.clicforum.com
7
Série de révision BAC 2008-2009
atis.clicforum.com
Question 1) Proposer une analyse modulaire pour ce problème. 2) Analyser chacun de
s modules et déduire les algorithmes correspondants.
Exercice 14
Le but de ce problème est de proposer une solution de gestion d un ensemble d info
rmations concernant des personnes (nom, prénom, adresse, code postal, ville, téléphone
, e-mail…). On désire pouvoir créer, consulter, supprimer et modifier ce répertoire. 1.
Proposer une structure de données permettant de stocker les informations concernan
t une personne, puis une structure de données permettant de stocker durablement to
utes les informations relatives à toutes les personnes. 2. Définir une procédure de sa
isie de données relatives à une personne, puis de stockage de ces données. 3. Définir un
e procédure permettant d accéder à la liste des personnes et de l afficher soit dans u
n fichier texte, soit à l écran. 4. Définir une procédure de consultation des renseignem
ents relatifs à une personne donnée. On suppose que l on connaît la position de la per
sonne dans le répertoire. 5. Définir une procédure de modification des renseignements
relatifs à une personne donnée dont on connaît la position dans le répertoire. 6. Définir
une procédure de suppression d une personne donnée dont on connaît dans le répertoire. 7
. Définir une procédure de recherche des renseignements concernant une personne à part
ir du nom et du prénom de la personne. 8. Définir une procédure permettant de lister t
outes les personnes habitant une ville donnée. 9. Définir une procédure de tri par ord
re alphabétique (nom + prénom) des personnes du répertoire.
Exercice15
Soit un tableau remplit par n élèves d une classe. Un élève est caractérisé par un nom et u
e note Ecrire un programme qui permet de : • • trier ce tableau par ordre croissant
des notes en utilisant la méthode du tri rapide. Enregistrer dans un fichier texte
nommé "reussi.txt", les noms des élèves qui ont une moyenne supérieure ou égale à 10.
Collectée par Khaled KACHBOURI – atis.clicforum.com
8
Série de révision BAC 2008-2009
atis.clicforum.com
Exercice16
Sachant que
Pour x très proche de zéro. Ecrire un module qui permet de calculer la valeur approc
hée de sin(x) en utilisant la formule ci-dessus. Le calcul s arrête quand la différenc
e entre deux termes consécutifs devient inférieure ou égale à epsilon (epsilon est une d
onnée passée en paramètre dans le module).
Exercice 17
Ecrire un module récursif qui permet de mettre à zéro la diagonale principale d une ma
trice carrée de n*n entiers. Exemple : Soit la matrice suivante pour n=3 : 3 4 12
5 2 9 1 8 7
Après exécution du module, le contenu de la matrice devient : 0 4 12 5 0 9 1 8 0
Exercice18
Ecrire un module prenant en entrée un entier n et une paire de valeurs réelles qui s
ont en fait les valeurs du cosinus et du sinus d un certain angle x, et renvoyan
t la paire (cos(nx), sin(nx)). Autrement dit, le deuxième argument de la fonction
est une paire (a,b) telle que a = cos x et b = sin x. • • Le schéma de calcul doit être
récursif (mais non < diviser pour régner >). On pourra se servir des formules de tri
gonométrie suivantes : cos(nx) = cos((n-1)x) cos(x) - sin((n-1)x) sin(x) et sin(nx
) = sin((n-1)x) cos(x) + cos((n-1)x) sin(x)
Collectée par Khaled KACHBOURI – atis.clicforum.com
9
Série de révision BAC 2008-2009
atis.clicforum.com
Exercice19
Soit f une fonction continue dans un intervalle [a,b] et définie par : f(x) = Calc
ulez une valeur approchée de : en utilisant la méthode des trapèzes
Exercice20
Nous allons écrire un programme capable de résoudre une équation du second degré à coeffic
ients complexes. Pour cela, nous allons successivement calculer le discriminant,
en extraire une racine carrée en utilisant le module et l argument, puis applique
r la formule xi = Avec ² = = b² -4ac après avoir vérifié la non nullité de a.
Nous définissons le type complexe comme couple de réels représentant la partie réelle et
la partie imaginaire : type complexe=record Preel, Pimag : real; end; 1) Ecrire
une procédure qui permet de lire un nombre complexe. 2) Ecrire une procédure qui ef
fectue le produit de deux complexes. 3) Ecrire une fonction qui calcule le modul
e d un nombre complexe. 4) Ecrire une fonction qui calcule l argument d un nombr
e complexe par la méthode suivante : Si la partie réelle est nulle, l argument est p
2 ou -p2 selon le signe de la partie imaginaire, sinon la fonction arctan fourni
t un argument modulo p, compris entre -p2 et p2 ; il faut donc ajouter p à ce dern
ier dans le cas où la partie réelle est négative. On remarque qu avec cette méthode la m
esure principale de l argument est située entre -p2 et 3p2. 5) Ecrire une procédure
permettant l affichage des nombres complexes. 6) Ecrire une procédure permettant l
a division de nombres complexes. Elle effectue le produit du dividende par le co
njugué du diviseur puis la division du résultat par le carré du module du dénominateur.
Collectée par Khaled KACHBOURI – atis.clicforum.com
10
Série de révision BAC 2008-2009
atis.clicforum.com
7) Ecrire une procédure qui calcule une solution de l équation en fonction des nombr
es complexes a et b et une racine du discriminant. Elle calcule le numérateur et l
e dénominateur de la formule qui donne la solution et appelle la procédure de divisi
on de nombres complexes. 8) Ecrire le programme principal de résolution d une équati
on de degré deux à coefficients complexes : Lecture des coefficients complexes Calcu
l du discriminant Calcul d une racine carrée du discriminant Après avoir vérifié que l équ
ation est de degré deux, calculer et afficher les solutions.
Exercice21
1) Proposez un algorithme qui lit un nombre binaire positif N et le convertit da
ns la base 10. 2) A partir de cette question, le nombre N est exprimé dans a base
10. On cherche à déterminer si
un entier N saisi (N>9) est divisible par 9 ou non en appliquant la méthode suivan
te : (i) (ii) (iii) On fait la somme du premier et du second chiffre de N. Si la
somme obtenue est supérieure ou égale à 9, on lui soustrait 9. On ajoute ensuite à cett
e somme le chiffre suivant et on lui applique la règle (ii) et ainsi de suite jusq
u’au dernier chiffre de N. (iv) Si le résultat final est nul alors le nombre est div
isible par 9.
Exemple : pour N = 65493, l’algorithme effectuera les opérations suivantes : 6 + 5 =
11 (11 > 9, on lui soustrait 9, on obtient 2) 2 + 4 = 6 (6 < 9) 6 + 9 = 15 (15
> 9, on lui soustrait 9, on obtient 6) 6 + 3 = 9 (9 = 9, on lui soustrait 9, on
obtient 0) Le résultat est nul et tous les chiffres de N ont été traités ; donc le nombr
e 65493 est divisible par 9.
Exercice22
Nous avons un tableau A de n entiers relatifs. Nous recherchons un sous tableau
de A dont la somme des éléments soit maximale. Autrement dit, nous recherchons un co
uple d entiers i et j (1< i< j< n) tel que ∑(k=i,j) (A[k]) soit maximale. Exemple
: Pour le tableau A suivant, les valeurs cherchées sont i = 4 et j = 5. A 2 5 -8 6
5 -9 3 4
Collectée par Khaled KACHBOURI – atis.clicforum.com
11
Série de révision BAC 2008-2009
atis.clicforum.com
Exercice 23
Dans notre lycée les résultats des élèves de chaque classe sont sauvegardées dans un fichi
er d’enregistrements. Chaque enregistrement comporte les renseignements sur un élève d
e la classe : Nom & Prénom (chaine de caractères), Age (entier non signé) et Moyenne (
réel). Ecrivez un programme nommé CLASSE qui permet : • La saisie et la sauvegarde des
renseignements concernant les élèves de votre classe dans un fichier ‘’4SI1.dat’’ sur le d
sque local ‘’C’’. la fin de la saisie est possible si nous répondons N (Non) à la question
ontinuer (O/N) ? ». • • • La transfère des moyennes des N élèves dans un tableau T. Le tri
s l’ordre décroissant des moyennes en utilisant la méthode de tri Rapide. Afficher le
tableau trié.
Questions : 1) Proposez une analyse et un algorithme du programme principal. 2)
Proposez une analyse pour chaque module. 3) Déduisez les algorithmes correspondant
s des modules envisagés.
Exercice24
On peut définir π , grâce aux exressions suivantes : 1)
π
4
=
1

0
1− x
2
dx
1 1 1 + 23*3 5*3 7 *3 1  …) 9*3 4
2) π = 12 * (1 
+ 3
On se roose d’écrire un rogramme nommé Aroximation, qui ermet de calculer et d’aff
icher la valeur la lus récise de π à artir des deux exressions récédentes (c est à dir
qui est lus roche à la valeur de PI qui est le nom d’une fonction standard dans 
ascal qui renvoi la valeur de π ) NB : Pour l’exression 1), utilisez la méthode des r
ectangles. Afficher π avec 5 chiffres arès la virgule. Le rogramme doit afficher u
n message comme le suivant : i = « 3.14131 » trouvé ar l’exression « 2 »
Collectée ar Khaled KACHBOURI – atis.clicforum.com
12
Série de révision BAC 2008 2009
atis.clicforum.com
Exercice25
Un nombre heureux est un nombre entier qui, lorsqu on ajoute les carrés de chacun
de ses chiffres, uis les carrés des chiffres de ce résultat et ainsi de suite jusqu
à l obtention d un nombre à un seul chiffre, donne 1 our résultat. Ainsi, 7 est heur
eux, uisque : 7² = 49 4² + 9² = 97 9² + 7² =130 1² + 3² + 0² =10 1² + 0² = 1 (on est arriv
e d un seul chiffre = 1, donc 7 est heureux) Ecrire l analyse d une fonction qui
ermet de retourner vrai si le nombre assé en aramètre est heureux.

Exercice26
Soit l’algorithme de la fonction Inconnu suivante :
0) Début Fonction Inconnu (n : entier long) : entier 1) S ← 0 Rééter S ← S + (n Mod 10) n
← n Div 10 Jusqu’a (n = 0) 2) Inconnu ← S 3) Fin Inconnu Questions : 1. Exécuter manuel
lement l’algorithme de la fonction Inconnu, si on aelle cette fonction avec le 
aramètre effectif n = 192837, en donnant les valeurs successives des variables S e
t n. 2. En déduire le rôle de cette fonction. 3. L’algorithme de cette fonction est il
récurent ? si oui quel est son ordre. ? 4. Ecrire l’algorithme d’une fonction récursive
réalisant le même traitement.
Collectée ar Khaled KACHBOURI – atis.clicforum.com
13
Série de révision BAC 2008 2009
atis.clicforum.com
Exercice27
On se roose de définir une fonction qui évalue une exression de calcul donnée sous
forme d’une chaine. On suose que l’exression ne contient que des nombres et les d
eux oérateurs d’addition (+) et de multilication (*). Exemles: • • • Ch = ‘12*5+3*2+6’ l
onction retourne 72. Ch=’14+5’ la fonction retourne 19 Ch=’5’ la fonction retourne 5
Directives : Pour évaluer cette exression on eut suivre le rincie suivant : • • La
remière de chose à faire est la séaration des termes ar aels récursifs; en effet o
n doit extraire tous les termes qui sont séarés ar des +. En suite nous devons évalu
er chacun des termes extrait qui contient éventuellement que les oérateurs de multi
lication.

Exercice28
On disose d’un fichier nommé « hexadecimal.dat » à remlir avec n chaines hexadécimales va
ides (n entre 2 et 10) uis à artir de ce fichier on remlira un deuxième fichier n
ommé « conversions.dat » contenant autant d’enregistrement que de chaines hexadécimales da
ns le fichier « hexadecimal.dat ». Chaque enregistrement est comosé de deux données suc
cessives : la chaine hexadécimale ris du remier fichier suivi de son équivalent en
décimale. Enfin, on désire afficher le contenu du fichier « conversion.dat » trié dans l’o
dre croissant des nombres décimaux comme indiqué dans l’exemle ci dessous. Remarque :
utiliser un rincie de tri de votre choix. Exemle : Hexadecimal.dat conversio
ns.dat
01B 11 A 0F
0F 15
01B 27
11 A 282
Résultat affiché : (0F) 16 = (15)10
( 01B) 16 = (27) 10
( 11A) = (282) 10
Collectée ar Khaled KACHBOURI – atis.clicforum.com
14
Série de révision BAC 2008 2009
atis.clicforum.com
Questions : 1) Analyser le rogramme en le décomosant en modules. 2) Analyser les
différents modules envisagés. 3) Déduire l’algorithme du rogramme rincial.
Exercice29
Soit l’algorithme de la fonction suivante : 0. Déf roc inconnue(t : tab ;n :entier
; var L1, :entier) 1. L 1 L1 0 P 1 Pour i de 2 à n faire Si t[i] >= t[i 1] alors
L L+1
Sinon Si L>L1 alors L1 L
P i L1 Fin si L Fin si Fin our 2. Fin inconnue 1
T=
1
3 2
4 3
5 4
2 5
4 6
5 7
6 8
1 9
4 10
0 11
1 12
2
Questions a. Exécuter cette fonction et donner la succession des valeurs rises a
r toutes les variables. b. Donner le rôle de cette fonction. c. Prooser une solut
ion récursive.
Collectée ar Khaled KACHBOURI – atis.clicforum.com
15
Série de révision BAC 2008 2009
atis.clicforum.com
Exercice30
On se roose de définir une rocédure qui, à artir d’un caractère numérique donné, affich
ne yramide comosée de N lignes. Chaque ligne est calculée en fonction de la ligne
qui la récède en insérant à son début et à sa fin un chiffre C égal à (la somme de ses chi
+ sa longueur) mod 10). Le Nième ligne corresond au remier nombre divisible ar
7. Exemle : Pour le remier caractère ="1" on aura : 1 212 82128 6821286 9682128
69 … 06820682128602860 {Ce nombre est divisible ar 7.}
Exercice31
Soit la formule suivante : En se servant de la formule ci dessus, rooser une f
onction qui ermet de donner une valeur arochée de en s arrêtant lorsque le terme
devient lus etit qu une valeur Esilon
Exercice 32
On se roose de remlir une matrice M selon le rincie suivant : • • La dernière col
onne et la deuxième diagonale de la matrice M sont des « 1 ». un élément quelconque de mat
rice est égal à la somme du dernier élément de la même ligne avec l’élément de dessus et l’
le récède dans la même ligne. Exemle : M [5,6] = 1 + 3 + 3 = 7 1  Comléter la dernière
ligne de la matrice M. 2  Quel est l’ordre de récurrence de ce traitement. 3  Ecrir
e l’analyse et l’algorithme du module qui ermet de remlir la matrice sous la forme
suivante :
Collectée ar Khaled KACHBOURI – atis.clicforum.com
16
Série de révision BAC 2008 2009
atis.clicforum.com
1 1 1 1 1 1 1 1 3 3 7 3 7 15 3 7 15 31 3 7 15 31 63 1 1 1 1 1 1 1
A comléter
Exercice33
Le sélectionneur de l équie de Tunisie veut faire des statistiques sur les matchs d
e 1ère division. Il disose des tyes suivants our mémoriser le nom des équies : CON
ST MaxEquie = 25 ; TYPE nom_t = string[63]; tabNom_t = array[1..MaxEquie] of n
om_t; 1. Ecrire la rocédure SaisieNoms (var tN : TabNom_t ; var nN : integer); qu
i lit au clavier une suite de noms (1 ar ligne), termine ar une ligne vide, mémo
rise ces noms dans tN le nombre résultant dans nN. 2. Les équies sont désormais numérotée
s dans leur ordre de saisie. On introduit maintenant des tyes our numériser les
scores des matchs, qui ont lieu chaque fois entre une équie locale et une équie ex
térieure : CONST MaxMatch = 1000; TYPE Match_t = record n_loc, n_ext, {numéro équie l
ocale, extérieure} s_loc, s_ext : integer; {score équie locale, extérieure} end ; Tab
Match_t = array[1..MaxMatch] of Match_t ; Ecrire la fonction QuiGagne(m : Match_
t) : integer; qui our un match m donné, renvoie 1, 1 ou 0 selon que la gagnante
est l équie locale, extérieure ou que le match est nul.
Collectée ar Khaled KACHBOURI – atis.clicforum.com
17
Série de révision BAC 2008 2009
atis.clicforum.com
3. Ecrire la rocédure AffiGagnant(M : TabMatch_t; nM : integer; tN : TabNom_t; nM
: integer); qui affiche our chacun des nM matchs le nom de l équie gagnante, en
aelant éventuellement la fonction QuiGagne. 4. Ecrire la fonction DiffLocalExt(
tM : TabMatch_t; nM : integer) : integer; qui renvoie our l ensemble des nM mat
chs, la différence entre le nombre de matchs gagnés ar l équie locale et le nombre d
e matchs gagnés ar l équie extérieure, en aelant éventuellement la fonction QuiGagne
.
Exercice34
Pour se connecter à une alication de messagerie instantanée sur Internet (exemle
MSN), les utilisateurs doivent taer leurs adresses e mail (login) et leurs mots
de asse. Ces derniers sont envoyés à un serveur distant et enregistrer automatique
ment dans un fichier texte intitulé « assword.txt » sous la racine du serveur. Chaque
ligne de ce fichier contient un mot de asse cryté sous forme d’une séquence binaire
, de façon que chaque caractère soit rerésenté sur un Octet (8bits). Pour décryter un mo
t de asse il suffit de : • • • Convertir chaque Octet binaire en son équivalent hexadécim
al (sans asser ar la base 10). Convertir les chaines hexadécimales obtenues en b
ase 10 (décimale). Chaque nombre obtenu corresond au code ASCII d’un caractère du mot
de asse.
Exemle : Soit la ligne du texte suivante: 01000010 01101111 01101110 42 6F 6E D’où
le mot est ‘’Bon’’
66
111
108
‘’B’’
‘’o’’
‘’n’’
On se roose d’écrire un rogramme qui ermet d’afficher les mots de asse du fichier
texte. 1) Proosez une analyse est un algorithme du rogramme rincial. 2) Pro
osez our chaque module une analyse détaillée. 3) Déduisez les algorithmes des module
s envisagés.
Collectée ar Khaled KACHBOURI – atis.clicforum.com
18
Série de révision BAC 2008 2009
atis.clicforum.com
Exercice 35
On vous demande d’écrire un rogramme qui ermet de : Remlir au hasard une matrice
carrée d’ordre n ar les entiers 0 ou 1. NB : La fonction Random (X), ermet de générer
un nombre entier aléatoire aartenant à l’intervalle [0, X 1]. A artir de cette matr
ice, créer un fichier d’enregistrements FH stocké hysiquement sous c:\Hexa.dat , cha
que enregistrement renferme les deux chams suivants : Hex : rerésente la convers
ion en hexadécimale de chaque ligne de la matrice. (La conversion en hexadécimal se
fait directement et sans asser ar la base 10) nb : rerésente le nombre de lettr
es existant dans la conversion Hexadécimale. A artir du fichier FH créer un deuxième
fichier FD dont le nom hysique est C:\Div11.dat , qui contient toutes les chaîne
s hexadécimaux dont le nombre de caractère est suérieur à 1 (nb ≥ 1) et dont la conversio
n en décimal est divisible ar 11. NB : vous devez utiliser la méthode suivante our
déterminer la divisibilité ar 11 : Soustraire de N amuté de son chiffre des unités le
chiffre surimé et recommencer éventuellement avec le nombre ainsi obtenu jusqu’au m
oment où l’on eut conclure à la divisibilité.
Si N = 12345674 1234567 – 4 = 1234563 123456 – 3 = 123453 12345 – 3 = 12342 1234 – 2 = 1
232 123 – 2 = 121 12 – 1 = 11 1 – 1 = 0 qui est divisible ar 11 D’où 12345674 est divisib
le ar 11.
Exemle : our n = 8 M
1 1 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 0 0 0 1
1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 E7 8F FF 31 10 77 21 FD
FH
1 1 2 0 0 0 0 2 E7 8F FD
FD
Collectée ar Khaled KACHBOURI – atis.clicforum.com
19
Série de révision BAC 2008 2009
atis.clicforum.com
 La remière ligne de la matrice est égal à : 1110 0111.  (1110 0111)2  (E7) 16 = (
231) 10  231 est divisible ar 11 et nb ≥ 1, d’où l’écriture de E7 dans le fichier FD. Qu
estions : 1. Analyser et déduire l’algorithme du rogramme rincial qui ermet de réa
liser le traitement décrit récédemment en le décomosant en modules. 2. Analyser chacun
des modules envisagés récédemment et en déduire les algorithmes corresondants. Hex =
E7 nb = 1
Exercice36
Le sélectionneur de l’équie nationale d’athlétisme veut choisir les meilleurs coureurs o
ur chaque course, afin de retenir les athlètes qui articieront aux jeux olymiqu
es de 2008. Un athlète de l équie ne articie qu à une seule course. Le sélectionneur
disose du meilleur tems (record) enregistré ar chaque athlète. Un athlète est carac
térisé ar son nom, la course à laquelle il articie et son record. Exemle : Nom = M
ohamed Jouini, Course = 100, Record = 10,7 (On suose que tous les records sont
exrimés en secondes) Les informations sur les athlètes sont stockées dans un fichier
nommé "olym.dat" enregistré dans le dossier "d:\courses". On se roose d écrire un
rogramme qui offre au sélectionneur un menu de quatre choix définis selon la valeur
d une lettre saisie. • • • • la valeur "S", our saisir les données relatives à un nouvel
thlète. L ajout se fera à la fin du fichier. la valeur "T", our classer les athlètes
ar ordre croissant des records our chacune des courses rogrammées. la valeur "A
", our déterminer ar course, le meilleur athlète et afficher la course, le nom de
l athlète et son record. la valeur « Q », our quitter le rogramme.
Collectée ar Khaled KACHBOURI – atis.clicforum.com
20
Série de révision BAC 2008 2009
atis.clicforum.com
Questions : 1  Quelles sont les structures de données adéquates à ce roblème ? Justifie
r le choix de chaque structure roosée. 2  Analyser et déduire l’algorithme du rogra
mme rincial qui ermet de réaliser le traitement décrit récédemment en le décomosant e
n modules. 3  Analyser chacun des modules envisagés récédemment et en déduire les algor
ithmes corresondants.
Exercice37
Les anciens égytiens ne connaissaient, comme rationnels, que les inverses d entie
rs. Il s agit de décomoser un rationnel de ] 0 ; 1 [ en une somme d inverses d en
tiers strictement croissants. Exemles : 5/8 = 1/2 + 1/8 7/11 = 1/2 + 1/11 + 1/2
2
Ecrire un module qui ermet de décomoser un nombre rational de la forme n/d en un
e somme de nombres rationnels unitaires de la forme 1/m en utilisant le rincie
des fractions égytiennes.
Princie (aliqué sur un exemle): Convertir 19/20 en une fraction égytienne. • • • • • •
e 1 : 20/19 = 1 avec un certain reste, donc notre remière fraction unitaire est 1
/2. Etae 2 : 19/20  1/2 = 9/20. Etae 3 : 20/9 = 2 avec un certain reste, donc
notre deuxième fraction unitaire est 1/3. Etae 4 : 9/20  1/3 = 7/60 Etae 5 : 6
0/7 = 8 avec un certain reste, donc notre troisième fraction unitaire est 1/9. Eta
e 6: 7/60 1/9 = 1/180 qui est elle même une fraction unitaire.

Donc, notre résultat est :


Collectée ar Khaled KACHBOURI – atis.clicforum.com
21
Série de révision BAC 2008 2009
atis.clicforum.com
Exercice38
Ecrire un rogramme qui ermet de calculer uis d afficher la racine carrée d un rée
l ositif x en utilisant la suite suivante: U0 = (1+x)/2 Un+1 = (Un+ x/Un)/2 Il
s agit de calculer les remiers termes de cette suite jusqu à ce que la différence e
ntre deux termes successifs devient inférieur ou égale à 10^ 4. Le dernier terme calcu
lé est une valeur arochée de √x à 10^ 4 rès
Exercice39
Un carré magique d’ordre n est une matrice carrée (n * n) telle que la somme des entie
rs de chaque ligne, chaque colonne et des deux diagonales est identiques. Exeml
e : La matrice suivante est un carré magique d’ordre 3. 8 1 6 3 5 7 4 9 2 Ecrire un
module (rocédure ou fonction) qui ermet de déterminer si une matrice est un carré ma
gique ou non.
Exercice40
Soit la suite de racines carrées suivante :
1 + 2 + 3 + 4 + ... + N
R=
Proosez dans un contexte récursif une fonction intitulée RACINE qui ermet de donne
r une valeur estimée de R.
Exercice41
On aelle nombre de Keith un nombre K de n chiffres (n >=2) ayant la roriété suiv
ante : En artant des n chiffres d’un nombre K, on comose une sorte de suite récurr
ente d’ordre n, dont chaque terme est obtenu en calculant la somme des n derniers
nombres de la suite. Si cette suite fournit à un moment le nombre k de déart, ce no
mbre est dit de Keith.
Collectée ar Khaled KACHBOURI – atis.clicforum.com
22
Série de révision BAC 2008 2009
atis.clicforum.com
On roose d’écrire un rogramme Pascal qui ermet d’afficher tous les nombres de Keit
h comris entre 10 et 10 000.
Exemle :
• Pour n = 2, soit k = 19, les termes de a suite sont donc les suivant :
1, 9, 10, 19, 29,…..
Il s’agit ici d’une suite récurrente d’ordre 2 donné ar la relation suivante :

Pour n= 3, soit k = 742, les termes de a suite sont donc les suivant : 7, 4, 2,
13, 19, 34, 66, 119, 219, 404, 742, 1365, ….. Il s’agit ici d’une suite récurrente d’ordre
3 donné ar la relation suivante :
Exercice42
Aelons "nombre fibonaccien" chaque terme de la suite de Fibonacci. Les nombres
fibonaccien sont : 1, 1, 2, 3, 5, 8, 13, 21,…. On souhaite écrire un rogramme qui
ermet de :  Remlir le fichier "fichier1.rz" ar des entiers strictement osit
ifs. Pour finir la saisie, il suffit de réondre à la question "Continuez (O/N) ? "
ar le caractère N.  Effacer les nombres non fibonacciens du fichier cité ci dessus
.  Utiliser ce fichier our : Extraire les nombres fibonacciens dont la rerésent
ation hexadécimale est comosée seulement de chiffres et les mettre dans le fichier
"fichier2.rz" Extraire le reste des nombres fibonacciens et les mettre dans le f
ichier "fichier3.rz"  Afficher les éléments de chaque fichier. On raelle que la s
uite de Fibonacci est définie ar : U0 = 1, U1 = 1, Un = Un 2 + Un 1 Travail deman
dé : Analyser le roblème en le décomosant en modules. Analyser les modules envisagés e
n déduire les algorithmes corresondants.
Collectée ar Khaled KACHBOURI – atis.clicforum.com
23
Série de révision BAC 2008 2009
atis.clicforum.com
Exercice43
On roose ar la suite, l une des méthodes de la conversion d un entier décimal (X)
en son équivalent binaire (base 2). 1. On divise (division entière) le nombre X ar
2 2. On sauvegarde le reste de la division 3. On refait les deux étaes récédentes a
vec le quotient de la division, jusqu à avoir un quotient nul. 4. Le regrouement
des restes en sens inverse de leurs aaritions donne la valeur du nombre X en b
inaire. Exemle : Si X = 13 alors La division entière de 13 ar 2 donne un quotien
t = 6 et un reste = 1 La division entière de 6 ar 2 donne un quotient = 3 et un r
este = 0 La division entière de 3 ar 2 donne un quotient = 1 et un reste = 1 La d
ivision entière de 1 ar 2 donne un quotient = 0 et un reste = 1 Donc le nombre déci
mal 13 vaut 1101 en Binaire. Sens de lecture des restes
Question : Ecrire un rogramme Pascal ermettant de saisir un entier naturel X ≤ 1
00, de déterminer et d afficher sa valeur en Binaire, selon le format suivant : le
nombre décimal X vaut ….. en binaire. N.B : La solution doit comorter au moins une
rocédure et une fonction récursive.
Exercice44
Soit la suite U définie ar : U0= 1 et Un = le nombre des chiffres consécutifs du te
rme Un 1 en commençant de gauche à droite suivi du chiffre lui même
Exemle U0 = 1 U1 : dans U0 on a une seule fois le chiffre 1 d’où U1 = 11
Collectée ar Khaled KACHBOURI – atis.clicforum.com
24
Série de révision BAC 2008 2009
atis.clicforum.com
U2 : dans U1 on a deux fois le chiffre 1 d’où U2 = 21 U3 : dans U2 on a une seule fo
is le chiffre 2 et une seule fois le chiffre 1 d’où U3 = 1211 U4 : dans U3 on a une
seule fois le chiffre 1 ; une fois le chiffre 2 et deux fois le chiffre 1 d’où U4= 1
11221 U5 : dans U4 on a trois fois le chiffre 1 ; deux fois le chiffre 2 et une
fois le chiffre1 U5= 312211 U6=13112221 U7=1113213211 Travail demandé : 1. Donner
la valeur de U8 et de U9 2. Quel est l’ordre de récurrence de cette suite 3. Ecrire
la sécification d’un module ermettant de déterminer our un entier n le terme Un
Exercice45
Un nombre abcd est divisible ar 7 si |abc 2*d| est divisible è son tour ar 7 Exe
mle : Pour n =7241 |724 – 2*1| = 722 on doit tester si 722 est divisible ar 7 |7
2  2*2| =68 |6 2*8|= 10 |1 2*0|= 1 d’où 7241 n’est as divisible ar 7 Pour n = 30086
|3008 – 2*6| = 2996 |299  2*6| =287 |28 2*7|= 14 |1 2*4|= 7 d’où 30086 est divisible 
ar 7 Pour n = 147 |14 2*7|= 0 d’où 147 est divisible ar 7 Travail demandé : Ecrire la
sécification et l’algorithme d’un module récursif ermettant de vérifier si un entier n
est divisible ar 7
Collectée ar Khaled KACHBOURI – atis.clicforum.com
25
Série de révision BAC 2008 2009
atis.clicforum.com
Exercice46
Un olynôme en x et de degré n s écrit sous la forme : P(x) = cnxn + cn 1xn 1 + … + c1x
+ c0 Il est rerésenté ar un tableau C de coefficients défini ar C[i] = ci our tout
i de 0 à n. 1. Soit le olynôme P(x) = 5x4  3x2 + x 5/3 Donner tous les éléments du t
ableau C corresondant à ce olynôme. 2. On considère la fonction «calcul » ci dessous, qu
i évalue our un réel x donné, la valeur du olynôme P de degré n dont les coefficients so
nt stockés dans le tableau C. 0) Début Fonction Calcul (n : octet ; x : réel ; C : tab
leau) : réel 1) [S ← C[n]] Pour i de n 1 à 0 (as= 1) Faire S ← S * x + C[i] Fin Pour 2)
Calcul ← S 3) Fin Calcul a) On aelle cette fonction avec les aramètres effectifs
suivants : n = 4, x=2 et C 3 0 8 1 0 2 1 3 1 4
Exécuter manuellement l’algorithme de la fonction Calcul, en donnant les valeurs suc
cessives des variables i et S. b) Ecrire une fonction récursive réalisant le même calc
ul.
Exercice47
Soient les déclarations Pascal suivantes : Tye Sexe=(masculin, feminin) ; Info =
Record Nom :string[30] ; Age : byte ; S:Sexe; End; Fich_ers = File Of Info; Fic
h_ent = File Of Integer; Var
Collectée ar Khaled KACHBOURI – atis.clicforum.com
26
Série de révision BAC 2008 2009
atis.clicforum.com
F1 : Fich_ers; F : Text; I : Info ; F2 : Fich_ent; Ch : String; Soit les instru
ctions ascal suivantes ; mettre la lettre V dans les cases corresondantes aux
instructions correctes et la lettre F dans le reste des cases. Justifier à chaque
fois votre réonse. Readln (F1,I) ; Write(ch, F); Write(F2,3); Write(F1,I.Age) ;
Exercice48
Ecrire l’analyse uis l’algorithme d’un module récursif qui ermet d’afficher les caractère
d’une chaîne sous la forme indiquée dans l’exemle suivant : Exemle : Soit la chaîne "TU
RBO" TURBO TURB TUR TU T
Exercice49
Une institution éducative veut mettre à jour son archive enregistré dans un fichier te
xte "Arch2008.Txt" et contenant ar ligne les informations d’un élève sous la forme su
ivante : MatriculeNomAgeRésultatClasse (il n’y a aucun esace entre les différentes in
formations) Où Matricule : Chaîne de 6 chiffres Nom : Chaîne formé de caractères alhabétiq
es majuscules Age : Entier de deux chiffres Résultat : Un caractère qui eut être "A"
our Admis "R" our redouble et "E" our exclu

Collectée ar Khaled KACHBOURI – atis.clicforum.com


27
Série de révision BAC 2008 2009
atis.clicforum.com
Classe : un entier entre 1 et 4
Exemle : 004750MALEKALI17A4 196704ALOUIASMA16R3 On vous demande de : Extraire à 
artir du fichier texte les informations des élèves et les stocker dans un fichier d’en
registrements qui sera enregistré sous le nom "Eleves.dat" Effacer les élèves admis au
Baccalauréat et ceux exclus Mettre à jour l’âge de chaque élève(en ajoutant 1) ainsi que s
classe s’il est admis Transférer les informations mises à jour dans un fichier texte
enregistré dans le même emlacement sous le nom "Arch2009" NB : L’effacement des élèves et
la mise à jour seront au niveau du fichier d’enregistrement L’effacement d’un élève se fai
de façon que tous les élèves qui le suivent se décalent vers sa osition.
Travail à faire : Définir les structures des données adéquates our ce roblème Analyser c
e roblème en utilisant la méthode d’analyse modulaire Déduire les différents algorithmes
des modules envisagés récédemment.
Exercice50
Bonne chance BAC SI 2009 Merci à tous mes collègues Notre forum … Notre famille … Innova
teurs … Collaborateurs …
Collectée ar Khaled KACHBOURI – atis.clicforum.com
28