Vous êtes sur la page 1sur 5

Enoncé du sujet Pratique

On se propose d’écrire un programme qui permet de réaliser les


tâches suivantes :
 Saisir un entier n compris entre 8 et 16.
 Remplir M, une matrice carrée d’ordre n, aléatoirement par
des chiffres binaires.
 Remplir un fichier texte F1 et l’enregistrer sous le nom
"Nombres.txt" à la racine C : comportant autant de chaînes
que des lignes dans la matrice M. chaque chaîne est formée
par la concaténation des caractères chiffres de la ligne
qui lui correspond.
 Remplir un fichier F2 et l’enregistrer sous le nom
"Nombres.dat" à la racine C : comportant autant
d’enregistrement que des chaines dans le fichier F1.
Chaque enregistrement est composé de quatre données
successives : le nombre binaire pris du premier fichier,
son équivalent en décimal, son équivalent en octale puis
son équivalent en hexadécimal.
 Transférer du fichier F2 vers un tableau T les entiers
divisibles par 3. (un entier est divisible par 3 si la
somme de ces chiffres est un multiple de 3)
 Afficher le contenu du F2.
 Afficher les éléments de T.

Exemple : N=8
La matrice M : 1 0 0 0 1 1 0 1
0 0 0 0 0 1 0 0
1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
Le fichier F1 : 0 0 1 1 0 0 1 1
"10001101" 1 1 0 0 1 1 1 0
0 1 0 0 0 1 1 1
"00000100"
"11111111"
"10101010"
"01010101"
"00110011"
"11001110"
"01000111"

Le fichier F2 : "10001101" 141 "215" "8D"


"00000100" 4 "4" "4"
"11111111" 255 "377" "FF"
"10101010" 170 "252" "AA"
"01010101" 85 "125" "55"
"00110011" 51 "63" "33"
"11001110" 206 "316" "CE"
"01000111" 71 "107" "47"

Le tableau T 141 255 51

Problème 2
On veut écrire un programme qui permet de :
a. Remplir au hasard une matrice M de n lignes et 8
colonnes par des bits 0 ou 1, avec 5<=n<=20.
b. A partir de cette matrice M, créer un fichier
d’enregistrements FH stocké physiquement sous "C:\
Hexa.dat", chaque enregistrement renferme les deux
champs suivants :
 Hex : représente la conversion en hexadécimale de
chaque ligne de la matrice M.
 Nb : représente le nombre de lettres existantes dans
le champ Hex.
c. Créer un deuxième fichier FP à partir du fichier FH
dont le nom physique est "C:\Premier.dat", qui
contient tous les nombres premiers hexadécimaux et
comportant au moins une lettre.
Exemple : pour n =9
M FH FP
0 0 0 1 1 1 0 1 1D 1 1D
0 1 0 1 1 0 0 0 58 O D3
1 1 0 1 0 0 1 1 D3 1 F1
1 0 1 0 0 1 0 0 A4 1 FB
1 1 1 1 0 0 0 1 F1 1
1 0 1 0 1 1 0 0 AC 2
1 1 1 1 1 0 1 1 FB 2
0 1 0 1 0 1 0 0 54 0
1 1 1 1 1 0 1 0 FA 2
 La première ligne de la matrice M comporte les 8 bits
suivants : 00011101, (00011101)16= "1D" qui comporte une
lettre et son équivalent décimal (29) est un nombre
premier.
 La deuxième ligne de la matrice M comporte les 8 bits
suivants: 01011000, (01011000)16= "58" qui ne comporte
pas de lettres et son équivalent décimal (88) n'est pas
premier.
 La sixième ligne de la matrice M comporte les 8 bits
suivants: 10101100, (10101100)16= "AC" qui comporte deux
lettres et son équivalent décimal (172) n'est pas un
nombre premier.

Problème :(10 points)
Ecrire l’algorithme d'un programme intitule "Conversion" qui permet de créer un
fichier texte intitule "FB.txt" et le remplir par des chaines binaires.
L’entrée d’une chaine vide arrête la saisie (la chaine vide ne sera pas saisie dans le
fichier). Une chaine binaire est une chaine non vide qui contient seulement des
"0" et des "1".
Réaliser la conversion du contenu du fichier texte "FB.txt" de la base binaire vers
la base hexadécimale dans un deuxième fichier texte intitule "FH.txt".
On veut réaliser un tri sur le fichier texte "FH.txt" en suivant la méthode suivante :
- Charger le contenu du fichier "FH.txt" dans un tableau d’enregistrements "TE" à
deux champs (le contenu de chaque ligne du fichier est stocke dans le premier
champ de chaque case du tableau) puis remplir le deuxième champ du "TE" par la
conversion, du premier champ, de la base hexadécimale vers la base décimale.
- Réaliser un tri suivant le deuxième champ du "TE".
- Transférer le contenu du premier champ du "TE" dans le fichier "FH.txt".
- Afficher finalement le fichier texte "FH.txt".
Questions :
Donner une analyse du programme principal ainsi que les algorithmes chaque
module utilisé.
Exemple :
1011 B
1001001 49
1111 F
101010 2A

FB.txt FH.txt

TE B 49 F 2A
11 73 15 42

B
F
2A
49

FH.txt après Tri


NB :
 B est la conversion en hexadécimale de 1011
 11 est la conversion décimale de B

Exercice N°3 :
On se propose ce calculer et d’afficher le Pgcd de n entiers, exemple Pgcd(84,72,56,22)=2
utilisant la technique suivante :
 Remplir un fichier « Nombre.dat » par N entiers aléatoire < 100 ( avec 2<= N <= 50).
 Utilisant une matrice M pour chercher le pgcd des nombres du fichier.
- Copier les entiers du fichier ‘’Nombre.dat’’ dans la 1ère ligne de matrice M.
- La 2ème ligne de matrice sera remplie par les pgcd de chaque deux entier adjacent de la 1ère
ligne.
- La 3 ligne de matrice sera remplie par les pgcd de chaque deux entier adjacent de la 2ème
ème

ligne.
- Appliquer le même principe pour les autres lignes jusqu'à arrivé a une ligne qui à un seul
nombre, qui est le pgcd chercher.
Exemple :
22 84 72 56 22 12 = Pgcd( 84, 72) , 8 = Pgcd(
12 8 2 72,56) , 2 = Pgcd(56,22)
56
4 2
72 4 = Pgcd( 12,8) , 2 = Pgcd( 8 , 2)
2
84 2 = Pgcd (4 , 2)

Fichier « Nombre.dat » Matrice M Comment calculer les pgcd

Vous aimerez peut-être aussi