Vous êtes sur la page 1sur 4

SECTION : Sciences de l’Informatique

LYCÉE SECONDAIRE :
DEVOIR DE
El amal Fouchena
SYNTHESE N°02 El Mghira Fouchena
EPREUVE M’hamdya 01
d'algorithmique et programmation M’hamdya 02

DATE: 14/03/2023 DUREE : 3H

Le sujet comporte 4 pages à remettre à la fin de l’épreuve. Chaque solution développée sous
forme d’un algorithme doit être accompagnée des tableaux de déclaration nécessaires.

Exercice 1 : (3 points)

Soit la fonction récursive suivante :


Fonction INCONNU (ch : chaîne) : chaîne
Début
Si long(ch)=1 alors
retourner (T[ch[0]])
Sinon

retourner ( T[ch[0]] + INCONNU (souschaine (ch,1,long (ch))))

Fin Si

Fin

NB : T : tableau ["0 .. "7"] de 8 chaînes constantes

"0" "1" "2" "3" "4" "5" "6" "7"


T "000" "001" "010" "011" "100" "101" "110" "111"

Questions :

a. Quel est l’ordre de récurrence de cette fonction ? justifier votre réponse.


b. Exécuter manuellement inconnu ("245")
c. Déduire le rôle de cette fonction sachant que CH est une chaine numérique de la base 8.
Exercice 2 : (3 points)

On se propose d’effectuer une opération d’addition entre deux nombres dans une base de
numération B (avec 2 ≤ B ≤ 16).

Exemple : Pour additionner les nombres (FA) 16 et (A1E) 16 nous procédons comme suit :

A+E 10 + 14 = 24 24 > 16 donc (24 – 16 = 8) et on retient 1

1+F+1 1 + 15 + 1 = 17 17 > 16 donc (17 – 16 = 1) et on retient 1

1+0+A 1 + 0 + 10 = 11 11 < 16 donc B dans la base 16

Ainsi, (FA + A1E) 16 = (B18)16

Travail demandé :

Ecrire l’algorithme d’un module permettant de déterminer le résultat de l’addition de deux


nombres N1 et N2 dans une base B (avec N1, N2 et B sont passés en paramètres) et ce, sans
convertir les nombres N1 et N2 dans la base décimale.

Exercice 3 : (5 points)

La matrice M suivante représentant les 6 premières lignes du triangle de Leibniz.

1 2 3 4 5 6
1 1/1

2 1/2 1/2

3 1/3 1/6 1/3

4 1/4 1/12 1/12 1/4

5 1/5 1/20 1/30 1/20 1/5

6 1/6 1/30 1/60 1/60 1/30 1/6


Les éléments de la matrice M sont des enregistrements de type FRACTION remplis en suivant le
principe ci-après :
 Chaque élément de la première colonne et de la diagonale principale est égal à :
1 / L (avec L est le numéro de la ligne).
 Chaque autre case de la matrice est égale à la différence entre l’élément du dessus à gauche
(M[L-1,C-1]) et celui à sa gauche sur la même ligne (M[L,C-1])
M[L,C]=M[L-1,C-1]-M[L,C-1]

a c a∗d −(c∗b)
On rappelle que : − =
b d b∗d
x
Pour simplifier une FRACTION c'est-à-dire la rendre irréductible on divise x et y par leur
y

PGCD : PGCD(x,y)
Exemple :M[5,3]=M[4,2]-M[5,2]=
1 1 20 ∗ 1 − (12 ∗ 1) 8 1
− = = =
12 20 12 ∗ 20 240 3O

PGCD (8, 240) = 8  8 Div 8 = 1 et 240 Div 8 = 30

Travail demandé :
Ecrire l’algorithme d’un module qui permet de remplir le triangle de Leibniz en utilisant le
principe décrit précédemment

Exercice 4 : (4 points)

Tout entier naturel positif N peut s’écrire de façon unique sous la forme

N= a1 1! + a2 2! + a3 3! + … + ad d! Ou (a1, a2, a3,.. ad) sont des entiers positifs

Exemples :

23= 3*3! + 2*2! + 1*1!


19=3*3! + 1*1!

129=1*5! + 1*3! + 1*2! + 1*1!

350= 2*5! + 4*4! + 2*3! + 2*1!


Travail demandé :

Ecrire l’algorithme d’un module qui retourne la décomposition d’un entier positif en une
somme de factoriels
Exercice 5 : (5 points)

Dans le fichier texte "Code.txt", on a récupéré le code HTML relatif à une partie d’une page
web contenant des données estimatives de la population pour un ensemble de pays (en
millions d’habitants) sur plusieurs années.

On se propose de créer, à partir du fichier "Code.txt", un fichier d’enregistrements intitulé


"Recap.dat" comportant pour chaque pays son nom et sa population moyenne.

Exemple :
Code.txt Recap.dat

N.B. :

 On rappelle que les balises HTML ne contiennent pas d’espaces.


 A l’exception de la première et de la dernière ligne, chaque ligne du fichier "Code.txt"
correspond à une ligne d’un tableau de trois colonnes comportant le nom du pays,
l’année de l’estimation et la population estimée.
 La population moyenne d’un pays est égale à la somme des populations du pays sur
le nombre d’années. (Exemple : la population moyenne du Maroc = (31.642+32.953)
/ 2).
 L’élève n’est pas demandé à remplir le fichier « code.txt »

Travail demandé :
Ecrire l’algorithme du module qui permet de remplir le fichier « recap.dat » à partir du
fichier « code.txt ». Déclarer tous les objets nécessaires.

Vous aimerez peut-être aussi