Ds2 Final 4si As2022

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 5

REPUBLIQUE TUNISIENNE MINISTERE DE L’EDUCATION Epreuve : Algorithmique

 Sections : 4ème Année SI


Date :
LYCEE ROUTE DE GABES & IBN SINA
25/02/2022
Durée :3H - Coefficient : 3
DEVOIR DE SYNTHESE N° 2

Exercice 1 : 3 pts
En mathématiques, plus précisément en combinatoire, le Triangle de Bell est un tableau
triangulaire de nombres analogues au triangle de Pascal.
La construction de ce triangle est un moyen simple d'obtenir les premiers nombres de Bell,
comme le montre l’exemple ci-contre pour N = 5.

M [2,0] = le dernier nombre 0 1 2 3 4


de la ligne 1 = M [1,1] = 2 0 1
1 1 2 M[4,3] = M[4,2]+ M[3,2]
2 2 3 5 = 27 + 10 = 37
3 5 7 10 15
M [4,0] = le dernier nombre
de la ligne 3 = M [3,3] = 15
4 15 20 27 37 52

Description
On commence par écrire 1 sur la première ligne, puis chaque ligne est obtenue en commençant
par le dernier nombre de la ligne précédente et pour obtenir un nombre, on additionne le
nombre précédent avec celui qui se trouve immédiatement au-dessus de celui-ci. Chaque ligne
aura ainsi un nombre de plus que la ligne précédente.
Pour 0<= C <= L, M [L, C] : le nombre de la ligne L et de la colonne C est définit comme suit :
• M[0, 0]= 1
• M[L, 0] = M[L-1, L-1]
• M[L, C] = M[L, C-1] + M[L-1, C-1] pour 1<= C <= L

 Travail demandé
Ecrire l’algorithme d’un module permettant de remplir les N premières lignes de Triangle de
Bell

Page 1 sur 5
Exercice 2 : 5 pts
Un nombre N est dit un nombre de Carmichaëlest un entier tel que :
- Si on soustrait 1 à chacun de ses facteurs premiers est un diviseur de (N-1).
- Les nombres de Carmichael ont au moins trois facteurs premiers.
Les 5 premiers nombres de Carmichaël sont :
561 = 3 × 11 × 17
1105 = 5 × 13 × 17
1729 = 7 × 13 × 19
2465 = 5 × 17 × 29
2821 = 7 × 13 × 31

Exemples :
N = 561 est un nombre de Carmichaël
En effet : 561 = 3 × 11 × 17 (avec 3, 11 et 17 sont des facteurs premiers)

3-1 = 2 11-1 = 10 17-1 = 16


2, 10 et 16 sont des diviseurs de 560 (561-1)

N = 41041 est un nombre de Carmichaël


En effet : 41041= 7× 11 × 13 × 41 (avec 7, 11,13 et 41 sont des facteurs premiers)

7-1 = 6 11-1 = 10 13-1 = 12 41-1 = 40

6, 10,12 et40 sont des diviseurs de 41040 (41041-1)

 Travail demandé
1. Ecrire l’algorithme d’une fonction Carmich(n)qui permet de vérifier si un entier N est
un nombre Carmichaël ou non.
2. En faisant appel à la fonction Carmich(n), écrire l’algorithme d’une procédure
Remplir (ch, k) permettant de remplir un fichier Texte par les k premiers nombre
Carmichaël.

NB : ch représente le nom physique de fichier texte

Page 2 sur 5
Exercice 3 : 4.5 pts
1) Soit la fonction INCONNUE suivante :

Fonction INCONNUE(N,X :entier) : chaine


Début
Si N=0 alors
Retourner ""
Sinon
Si NMODX>=10 alors
Retourner INCONNUE(NDIV X,X)+chr(55 + NMODX)
Sinon
Retourner INCONNUE(NDIV X,X)+convch (NMODX)
Finsi
Finsi
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
≠ = ≠ ≠ ≠ ≠ =

Travail à faire :
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 fichierd’enregistrement « distance_Ham.dat ». Chaque enregistrement contient :
 Nb1_bin : nombre binaire correspondant au premier nombreNB1.
 Nb2_bin : nombre binaire correspondant au premier nombreNB2.
 Hamming : distance de Hamming entre Nb1_bin et Nb2_bin

N.B : On peut utiliser la fonction INCONNUE

Page 3 sur 5
Exercice 4 : 7.5 pts
Le cryptage de Vigenère est un système qui utilise une Clé de cryptage C (chaine de 7 lettres
majuscules distinctes) et une matrice carrée M composée de 26 alphabets alignés, décalés de
colonne en colonne d’un caractère.
Indices des colonnes
La matrice est remplie comme l’annexe 1 ci-dessous :
Annexe 1 :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z B A
D D E F G H I J K L M N O P Q R S T U V W X Y Z C B A
E E F G H I J K L M N O P Q R S T U V W X Y Z D C B A
F F G H I J K L M N O P Q R S T U V W X Y Z E D C B A
G G H I J K L M N O P Q R S T U V W X Y Z F E D C B A
H H I J K L M N O P Q R S T U V W X Y Z G F E D C B A
I I J K L M N O P Q R S T U V W X Y Z H G F E D C B A
J J K L M N O P Q R S T U V W X Y Z I H G F E D C B A
K K L M N O P Q R S T U V W X Y Z J I H G F E D C B A
L L M N O P Q R S T U V W X Y Z K J I H G F E D C B A
M M N O P Q R S T U V W X Y Z L K J I H G F E D C B A
N N O P Q R S T U V W X Y Z M L K J I H G F E D C B A
O O P Q R S T U V W X Y Z N M L K J I H G F E D C B A
P P Q R S T U V W X Y Z O N M L K J I H G F E D C B A
Q Q R S T U V W X Y Z P O N M L K J I H G F E D C B A
R R S T U V W X Y Z Q P O N M L K J I H G F E D C B A
S S T U V W X Y Z R Q P O N M L K J I H G F E D C B A
T T U V W X Y Z S R Q P O N M L K J I H G F E D C B A
U U V W X Y Z T S R Q P O N M L K J I H G F E D C B A
V V W X Y Z U T S R Q P O N M L K J I H G F E D C B A
W W X Y Z V U T S R Q P O N M L K J I H G F E D C B A
X X Y Z W V U T S R Q P O N M L K J I H G F E D C B A
Y Y Z X W V U T S R Q P O N M L K J I H G F E D C B A
Z Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

Indices des lignes


Page 4 sur 5
 Travail demandé :
1. Ecrire l’algorithme d’un module qui permet de remplir la matrice de Vigenère M.
N.B : les indices de la matrice sont des lettres alphabétiques majuscules.

2. Ecrire l’algorithmed’un module qui permet de saisir la clef de cryptage C qui est une
chaîne des caractèresnon vide, de longueur maximale 8 et qui ne contient que des lettres
majuscules distinctes.

3. En disposant d’un fichier texte « source.txt », Écrire un algorithme d’un module qui
permet de remplir le fichier « résultat.txt » par le cryptage de chaque ligne du fichier
« sourcce.txt » par la méthode Vigenère.

Pour crypter une chaine mot on utilise le principe suivant :

- En dessous de chaque lettre de mot, écrire chaque caractère de la clé C.


- Répéter le motif autant de fois que nécessaire pour obtenir une chaîne CH de même
longueur que mot à ne pas compter les espaces
- La lettre crypter correspond à la lettre M [i, j], avec i est la lettre de la chaîne mot et j est
la lettre de la clé de cryptage C
Exemple :
Soit la clé de cryptage C = "INFOBAC "
Lachaine à crypté mot ="TP PASCAL ET PYTHON"
Donc le résultat est « RM UOTCCT RY LZTJWN »

mot T P P A S C A L E T P Y T H O N
CH I N F O B A C I N F O B A C I N
Résultat R M U O T C C T R Y L Z T J W N

L’intersection entre la ligne "T" et la colonne "I" dans la matrice M est : M["T","I"] = "R"
L’intersection entre la ligne "P" et la colonne "N" dans la matrice M est : M["P","N"] =
"M"
L’intersection entre la ligne "P" et la colonne "F" dans la matrice M est : M["P","F"] =
"U"
Etc …

Page 5 sur 5

Vous aimerez peut-être aussi