Vous êtes sur la page 1sur 4

République Tunisienne Section 

: Sciences de l’informatique
Ministère de l’éducation
Commissariat Régional de l’Éducation
Matière : Algorithmique et programmation
de Tunis1
Niveau : 4ème Année Date : Jeudi 10 Mai 2018 Durée : 3 Heures
Devoir de Synthèse N° 2
Nom & Prénom : ………………………………….…………………………..… Classe : ………… Note : ………… /20

NB  : Le sujet comporte 4 pages, la page n°1 est à remettre à la fin de l’épreuve

Exercice 1 (2 + 1,5 = 3,5 points)


Soit l’algorithme de la fonction Mystere suivant :
0) DEF FN Mystere (n : entier) : entier
1) d  2, x  0
Répéter
Si (n Mod d = 0) Alors
xx+d
n  n Div d
Sinon
dd+1
FinSi
Jusqu’à (n = 1)
2) Mystere  x
3) Fin Mystere
Travail demandé :
a) Pour chacune des propositions suivantes et en se référant à l’algorithme de la fonction Mystere,
mettre dans chacune des cases la lettre V si la proposition est correcte ou la lettre F, dans le cas
contraire.
i. Le traitement utilisé dans la fonction Mystere est :
Itératif
Récursif
ii. Pour la valeur de n = 24, le résultat retourné par la fonction Mystere est :
8
9
10
iii. La fonction Mystere a pour rôle de :
Décomposer l’entier n en facteurs premiers.
Calculer la somme des diviseurs de n.
Calculer la somme des diviseurs premiers de n.

Page 1 sur 4
b) Un nombre N est dit K-pp, s’il s’écrit sous la forme d’un produit de K nombres premiers pas
nécessairement distincts.
Exemples  :
Avec k = 4,
 24 est k-pp car il s’écrit sous la forme d’un produit de 4 nombres premiers (2x2x2x3)
 30 n’est pas k-pp car il ne peut pas s’écrire sous la forme d’un produit de 4 nombres
premiers.

Apporter les modifications nécessaires dans l’algorithme de la fonction Mystere, pour qu’elle
permette de vérifier si l’entier N est K-pp ou non avec K un entier positif passé en paramètre.

Exercice 2 (3 points)
On se propose de déterminer le kième chiffre à partir de la droite d'un nombre entier N strictement
supérieur à 0.
Exemples  :
Le 3ème chiffre à partir de la droite du nombre 8724 est 7
Le 5ème chiffre à partir de la droite du nombre 21327 est 2
Travail demandé :
Écrire un algorithme d’une fonction récursive qui permet de retourner le kième chiffre à partir de la
droite d’un nombre entier N strictement supérieur à 0.
NB : k et N sont donnés en paramètres.

Exercice 3 (3 + 1 = 4 points) 
Soit x un réel donné strictement positif. On se propose de calculer la somme S définie par la
formule suivante :
−x 2 + x 4 x 6 + x 8
S(x) = 1 − ………….
3! 5! 7! 9!
1. Ecrire un algorithme d’un module intitulé CalSom permettant de calculer une valeur approchée
de S à 10 - 4 près.
2. Déduire un algorithme d’un module intitulé CalSin permettant de calculer une valeur approchée
de Sin(x) sachant que :

sin(x)
S(x) = x

Page 2 sur 4
Problème (9,5 points)
Une société a développé une tondeuse à gazon automatique destinée aux surfaces rectangulaires.
La tondeuse peut être programmée pour parcourir l'intégralité de la surface d’une pelouse,
représentée sous forme d’une matrice carrée M d’ordre T (avec 5 ≤ T ≤ 100).

La position de la tondeuse est représentée par les coordonnées dans la pelouse


(Num_Ligne et Num_Colonne) et une lettre indiquant l'orientation selon la notation
cardinale anglaise (N, E, W, S) comme le montre la figure ci-contre.
Par exemple, la position de la tondeuse peut être (1, 1, N), qui signifie qu'elle se situe
dans le coin supérieur gauche de la pelouse, et orientée vers le Nord.
La tondeuse est commandée par des instructions, chacune est formée par une suite de lettres
juxtaposées. Le tableau ci-dessous présente les différentes lettres utilisées et leurs significations
respectives :
Lettre Signification
D Faire pivoter la tondeuse de 90° à droite, sans la déplacer.
G Faire pivoter la tondeuse de 90° à gauche, sans la déplacer.
Faire avancer la tondeuse d'une case dans la direction à laquelle elle fait face, et sans
A
modifier son orientation.
Si la position après mouvement est en dehors de la pelouse, la tondeuse ne bougera pas ; elle
conservera son orientation et traitera la commande suivante.
Pour programmer la tondeuse, un fichier texte intitulé "instructions.txt" sera fourni, dont la
première ligne contient la position initiale de la tondeuse ainsi que son orientation, sous la forme de
deux nombres et une lettre, séparés par des espaces. Les lignes suivantes contiennent chacune une
série d'instructions ordonnant à la tondeuse de se déplacer dans la pelouse.
A partir du fichier "instructions.txt" déjà rempli, on vous demande d’écrire un programme
modulaire qui permet de :
 Saisir la taille T de la pelouse.
 Remplir un fichier texte intitulé "deplacements.txt" contenant, dans chaque ligne, les
différentes positions par lesquelles la tondeuse a passé le long de l’exécution des instructions
d’une ligne du fichier "instructions.txt". Les différentes positions sont séparées par le
caractère "*", en utilisant le principe expliqué ci-dessus.
Exemple :
Pour une pelouse de taille T = 5 et un fichier "instructions.txt" de 3 lignes ayant le contenu
suivant :
52N
GADAGAA
DAGAADADAGA
Le fichier "deplacements.txt" obtenu aura le contenu suivant :
52N
52W*51W*51N*41N*41W*41W*41W
41N*31N*31W*31W*31W*31N*21N*21E*22E*22N*12N*12E

Page 3 sur 4
En effet, étant donnée la position de départ (5, 2, N), le début de l’exécution de la commande
GADAGAA est expliquée comme suit :
Lettre de commande Explication Nouvelle position
G La tondeuse tourne de 90° à gauche sans avancer 52W
A La tondeuse avance d’un pas sans changer d’orientation. 5 1 W
Elle passe à la colonne précédente sans changer de
ligne.

Travail demandé :
1) Analyser le problème en le décomposant en modules.
2) Ecrire l’algorithme de chacun des modules envisagés tout en dressant les tableaux de
déclarations.

Page 4 sur 4

Vous aimerez peut-être aussi