Vous êtes sur la page 1sur 8

REPUBLIQUE TUNISIENNE

MINISTERE DE L’EDUCATION
ENSEIGNANT DEVOIR DE SYNTHESE N°2
** LYCEE 9 Avril 1938 SBZ** NIZAR JEMMALI CLASSE : 4SI ** DATE : 12/03/2024 **

SECTION : SCIENCES DE L’INFORMATIQUE


EPREUVE : ALGORITHMIQUE ET PROGRAMMATION DUREE : 3H NOMBRE DE PAGES : 4 COEF : 3

Nom et prénom : …………………………………..


Le sujet comporte 4 pages numérotées de 1/4 à 4/4
EXERCICE 1 (4 Points)
1) Soit la fonction INCONNUE suivante :
Fonction INCONNUE (N, X: entier): chaine
Début
Si N=0 alors
Retourner ""
Sinon
Si N mod X>= 10 alors
Retourner INCONNUE (N div X, X) + chr (55 + N mod X )
Sinon
Retourner INCONNUE (N div X, X) + convch (N mod X )
Fin si
Fin si
Fin
Questions :
a) Exécuter à la main la fonction inconnue pour chacune des appels suivants :
INCONNUE (43, 16) et INCONNUE (43, 2)
b) En déduire le rôle de cette fonction ?
2- La distance de Hamming entre les représentations binaires de deux entiers X et Y est le nombre
des positions correspondant à des bits différents dans les deux écritures en partant de la droite et
après avoir ajuster leurs longueurs.
Exemple :
Pour X = 1001101 et Y =10011, longueur (X)=7 et longueur (Y)=5
Donc on doit ajouter 2 zéro à l’extrême gauche de Y on aura Y = 0010011, d’où la distance de Hamming
sera égale à 5.
Y 1 0 0 1 1 0 1
X 0 0 1 0 0 1 1
≠ = ≠ ≠ ≠ ≠ =
Question :
En disposant d’un fichier « nombre.dat » un fichier d’enregistrement ou chaque enregistrement
contenant les deux entiers NB1 et NB2, écrire un module permettant de remplir un fichier
d’enregistrement « distance_Ham.dat ». Chaque enregistrement contient :
 Nb1_bin : nombre binaire correspondant au premier nombre NB1.
 Nb2_bin : nombre binaire correspondant au premier nombre NB2.
 Hamming : distance de Hamming entre Nb1_bin et Nb2_bin

N.B : On peut utiliser la fonction INCONNUE

Page 1 / 4
EXERCICE N°2: (3 Points)
Sachant que :
Avec la combinaison de p éléments parmi n.

Question :
Donner l’algorithme d’un module nommé calcul qui permet de calculer une valeur approchée de en
utilisant la formule ci-dessus.
Le calcul s’arrête quand la valeur absolue de la différence entre deux termes consécutifs devient ≤ à e, où e est
un réel positif déjà saisi au clavier dans le programme appelant (0 < e ≤ 0.1)
EXERCICE 3 : (5 Points)

Une matrice est dite creuse lorsque le nombre d'éléments nuls y figurant est supérieur à celui des éléments
non nuls.
On dispose d’une matrice carrée M de taille N * N rempli par des chaînes hexadécimales comme le montre
l’exemple suivant (triangle supérieur haut):
1F3 AC 852 6BE
36D CC1 A4
84 4F
D

Questions :
1- Ecrire un module qui permet de compléter le remplissage de la matrice M, pour qu’elle soit symétrique
par rapport à la diagonale droite (la deuxième diagonale), par les chaînes inverses des cases symétriques.
1F3 AC 852 6BE
36D CC1 A4 258
84 4F 1CC CA
D 48 D36 3F1

2- Ecrire un module qui permet former une deuxième matrice M2 à partir de la matrice M tel que :
a. La première colonne est remplie par 1
b. Pour les autres colonnes de chaque ligne :
M[i, j] = 1 si l’équivalent en décimal de M[i, j] ≥ l’équivalent en décimal de M[i, j-1]
M[i, j] = 0 si non.
3- Ecrire l’algorithme d’un module qui permet de vérifier si la matrice M2 est creuse ou non

Page 2 / 4
EXERCICE N°4: (3.5 Points)
Un Nombre P est un Nombre premier de Sophie Germain s’il est un nombre premier et son double plus
un est aussi premier. (P et 2P + 1 sont premiers.)

Exemple : P = 5 est un nombre premier de Sophie Germain puisque 2P+1=11 est aussi premier.
Une chaîne de Cunningham est une séquence d’au moins 2 nombres premiers de Sophie Germain.
Exemple :

 Séquence à cinq termes : 2, 5, 11, 23, 47 (le nombre suivant serait 95. N’est pas premier)

 Séquence à deux termes : 3, 7 (le nombre suivant serait 15. N’est pas premier)

Questions :
1- Ecrire un module Cunningham qui permet à partir d’un nombre P de déterminé la chaine de Cunningham
ainsi que le nombre de termes : Procédure Cunningham (P : entier ; @CH : chaine ; @ NB : entier)

Exemple : Cunningham (2, CH, NB) donne CH = "2, 5, 11, 23, 47" et NB = 5

Cunningham (10, CH, NB) donne CH = "" et NB = 0

2- En faisant appel à la procédure Cunningham, écrire l’algorithme d’une procédure permettant de


remplir un fichier d’enregistrement ″SeqCun.dat″ par les k premiers chaîne de Cunningham d’au
moins 4 termes. Chaque enregistrement contient :

 P : Nombre de premier terme


 SEQ : la séquence ou la chaine de Cunningham
 NBR : nombre de termes de la chaine SEQ

Exemple : Soit k = 5

Page 3 / 4
EXERCICE N°5: (4.5 points)
Pour envoyer un fichier texte sur le réseau, on le divise en paquets, chaque paquet contient une ligne du fichier.
L’ordinateur source (l’émetteur) envoie ces paquets un par un, l’ordinateur destination (le récepteur)
les reçoit et attend qu’ils arrivent tous avant de reconstruire un fichier résultat.

Paquet_4 Paquet_3 Paquet_2 Paquet_1 Paquet_4 Paquet_3 Paquet_2 Paquet_1


On dispose d’un fichier texte à envoyer « Lettre.txt », on vous demande :
 Au niveau de l’envoie, de remplir à partir du fichier « Lettre.txt » les paquets nécessaires, où chaque
paquet est un fichier binaire ayant comme nom physique « Paquet_i.dat » où i représente le numéro de
la ligne à envoyer.
 Le fichier binaire « Paquet_i.dat » contient autant d’enregistrements que le nombre de caractères de la ligne
numéro i du fichier à envoyer.
 Chaque enregistrement est la conversion en binaire du code ASCII d’un caractère sur un octet (8 bits).

En effet pour la ligne n°3, Le nombre de caractères de cette ligne est 6 le fichier « Paquet_3.dat » contient
6 enregistrements.
 Le code Ascii du caractère "A" est 65, sa conversion en binaire est 1000001 on lui ajoute 0 à gauche pour
qu’il devient codé sur 8 bits.
 Le code Ascii du caractère "u" est 117, sa conversion en binaire est 1110101on lui ajoute 0 à gauche pour
qu’il devient codé sur 8 bits.
 Le code Ascii du caractère espace est 32, sa conversion en binaire est 100000on lui ajoute 0 à gauche pour
qu’il devient codé sur 8bits.
 Le code Ascii du caractère "b" est 98, sa conversion en binaire est 1100010 on lui ajoute 0 à gauche pour
qu’il devient codé sur 8 bits
 Le code Ascii du caractère "a" est 97, sa conversion en binaire est 1100001 on lui ajoute 0 à gauche pour
qu’il devient codé sur 8 bits.
 Le code Ascii du caractère "c" est 99, sa conversion en binaire est 1100011 on lui ajoute 0 à gauche pour
qu’il devient codé sur 8 bits.
 Au niveau de la réception, de recopier le contenu de chaque paquet reçu dans
une ligne du fichier texte « Réception.txt », sachant que chaque ligne est
la concaténation des caractères correspondants aux octets de chaque paquet.
Travail demandé :
1- Ecrire l’algorithme du programme principal en le décomposant en modules.
2- Ecrire l’algorithme de chaque module envisagé.

Page 4 / 4
CORRECTION :
EXERCICE 1 :

EXERCICE 2 :

EXERCICE 3 :

Page 5 / 4
EXERCICE 4 :

Page 6 / 4
EXERCICE 5 :

Page 7 / 4
Page 8 / 4

Vous aimerez peut-être aussi