Académique Documents
Professionnel Documents
Culture Documents
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"
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
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)