Vous êtes sur la page 1sur 4

REPUBLIQUE TUNISIENNE Épreuve : Algorithmique et Programmation

MINISTERE DE L’EDUCATION

******* Section : Sciences de l’informatique (Nouveau Régime)


Bac Blanc Régional Ben Arous
12 Mai 2022
Durée : 3h Coefficient : 3

Important : Chaque solution développée par le candidat sous forme d’un algorithme doit
être accompagnée d’un tableau de déclaration des objets.

Exercice 1 : (4 points)
Soient les fonctions « inc1 » et « inc2 » suivantes :

fonction inc1(a, b, d : entier) : entier fonction inc2(a, b, d : entier) : ……………………..


Début Début
Si (a=1) et (b=1) Alors Si (a=1) ………. (b=1) Alors
R←1 R←1
SinonSi (a mod d = 0) et (b mod d = 0) Alors SinonSi (a mod d = 0) et (b mod d = 0) Alors
R ← inc1(a div d, b div d, d) * d
R ← ………………….
SinonSi (a mod d = 0) Alors
SinonSi (a mod d = 0) Alors
R ← inc1(a div d, b, d) * d
SinonSi (b mod d =0) Alors R ← …………………..
R ← inc1(a, b div d, d) * d SinonSi (b mod d =0) Alors
Sinon R ← …………………...
R ← inc1(a, b, d+1) Sinon
FinSi R ← inc2(a, b, d+1)
retourner R FinSi
Fin retourner R
Fin

Travail demandé :
1) Exécuter manuellement la fonction « inc1 » dans les cas suivants :

 Inc1(60, 90, 2)
 Inc1(8, 6, 2)
2) Déduire le rôle de la fonction « inc1 »
3) Compléter la fonction « inc2 », sachant que inc1(a, b, 2) = (a x b) div inc2(a, b, 2) .
4) Déduire le rôle de la fonction « inc2 »

Page 1 sur 4
Exercice 2 : (4 points)
Le jeu de l'oie est un jeu de société de parcours où l'on déplace des pions en fonction des
résultats d’un dé.

 Principe :
Dans un jeu de l’oie complet, il y a un
plateau (figure ci-contre) composé de
85 cases numérotées et réparties en
spirale. Parmi elles, certaines
comportent des obstacles et des
pièges qui forcent les joueurs à passer
leur tour ou à revenir en arrière
lorsqu’ils tombent dessus.

Avant de démarrer la partie, il faut


désigner qui commence. Le choix se
fait au lancer de dés. Chaque participant lance à son tour les dés et avance son pion case par
case en suivant le nombre obtenu.

Soit la matrice M qui représente le plateau de jeu composé de 85 cases.


Chaque case est caractérisée par un nombre et une couleur (V, R, J et B) :

Le score du joueur est calculé en fonction de la couleur de la case de la manière suivante :


 Case verte (V) : Ajouter au score la valeur indiquée dans la case.
 Case rouge (R) : Soustraire du score la valeur indiquée dans la case.
 Case bleue (B) : le score est remis à zéro !
 Case jaune (J) : Multiplier le score par la valeur indiquée dans la case, puis le tour est
passé au joueur suivant.

 Le jeu s'arrête quand l’un des deux joueurs arrive le premier à la case d’arrivée.
 Le gagnant est le joueur qui totalise le plus de points (son score est le plus grand).

Soient les deux fichiers textes « Joueur1.txt » et « Joueur2.txt » déjà remplis contenant
respectivement les déplacements effectués sur la matrice M par le joueur1 et le joueur2.

Page 2 sur 4
Exemple :
Joueur1.txt Joueur2.txt

D D
1V 5R
3R 2V
10 V 6R
10 V 1V
8V 3V
5V 2V
1J 12 R Score joueur 1 = 10
13 V 1J
3V 13 V Score joueur 2= 78
6V 0B C’est le joueur 2 qui gagne le jeu.
5V 6V
0B 1R
6V 11 V
20 V 6V
3J 4V
11 R 3J
0B
10 V
A
Travail demandé :
1) En suivant le principe décrit ci-dessus, écrire l’algorithme d’un module Score qui permet
de calculer le score final d’un joueur à partir du fichier texte correspondant.
2) En utilisant le module Score, écrire l’algorithme d’un module Gagnant qui calcule les
scores des deux joueurs et affiche le joueur gagnant.
NB :
 Chaque ligne du fichier décrit un déplacement du pion du joueur.
 Le nombre et la couleur de la case sont séparés par un seul espace.
Exercice 3 : (4 points)
Un entier positif n est dit carré parfait s'il existe un entier k tel que n = k2.
On se propose de chercher toutes les décompositions de n (un carré parfait) en une somme de
carrés de nombres différents.
Exemples :
 Si n = 121 les solutions seront :
121 = 102+42+22+12
121 = 92+62+22
 Si n = 49 la solution sera :
49 = 62+32+22
 Si n = 36 on affiche alors :
Pas de solution pour ce nombre
Travail demandé :
Ecrire un algorithme d'un module qui affiche toutes les décompositions d’un carré parfait n si
elles existent ou le message « Pas de solution pour ce nombre » dans le cas contraire.
NB : Utiliser le format de l’exemple ci-après :
Si n = 49 le module affichera : 49 = 6^2 + 3^2 + 2^2

Page 3 sur 4
Exercice 4 : (3 points)
Soit les suites U et V définies par : U0 = 2 √𝟑 et V0= 3
𝟐𝑼𝒏 𝑽𝒏
Un+1=𝑼 pour tout n ∈N
𝒏 +𝑽𝒏

Vn+1=√𝑼𝒏+𝟏 ∗ 𝑽𝒏

La suite Vn converge vers 𝝅.

Ecrire l’algorithme d’une fonction intitulée Pi_archimed qui permet de déterminer la valeur
approchée de 𝝅 à eps près. Il s'agit de calculer les premiers termes de cette suite jusqu'à ce que la
différence entre deux termes successifs devienne inférieure ou égale à eps. Le dernier terme calculé
est une valeur approchée de 𝝅

Exercice 5 : (5 points)
Soit une matrice d’entiers V de N lignes et M colonnes avec 2 ≤ N < 25 et 2 ≤ M< 30.
On dit que deux colonnes C1 et C2 sont symétriques inversées si les éléments de C2 figurent dans
le sens inverse de ceux de C1.

Exemple : Si V est la matrice ci-contre


0 1 2 3 4 5
C1 =0 et C2=5 sont symétriques inversées. 0 10 105 1 30 25 2
En effet, C1 et C2 sont symétriques et les éléments de C2 1 15 17 7 19 17 20
figurent dans le sens inverse de ceux de C1. 2 20 25 19 7 13 15
Les éléments de C1 sont : 10-15-20-2
3 2 13 30 1 105 10
Les éléments de C2 sont : 2-20-15-10
NB : C1 =2 et C2=3 sont aussi symétriques inversées.

Travail demandé :
Ecrire l’algorithme d’un module permettant de remplir un fichier d’enregistrements « SymInv.dat »
à partir de la matrice V par les couples de colonnes symétriques inversées.
Chaque enregistrement du fichier « SymInv.dat » est composé de :
- NumC18 : l’indice de la colonne C1 en octal (en base 8)
- NumC216 : l’indice de la colonne C2 en hexadécimal (en base 16)

NB : Le candidat n’est pas appelé à remplir la matrice V.

Bon courage

Page 4 sur 4

Vous aimerez peut-être aussi