Vous êtes sur la page 1sur 4

Algo & Prog

Classe : 4ème Sciences de l’informatique

Série N°33 :

Arithmétiques
-----------------------------------

Nom du Prof : Mr DHIFALLAH Fathi

S
Exercice 1 25 min
Un RIB est un code d’identification bancaire délivré par une banque à un titulaire de compte
bancaire. Il est composé de 4 champs :
• CB (code de la banque) : 2 chiffres
• CA (code de l’agence) : 3 chiffres
• NC (numéro du compte) : 13 chiffres
• CR (clé RIB) : 2 chiffres
XX XXX XXXXXXXXXXXXX XX
CB CA NC CR
Pour calculer la clé RIB, on procède comme suit :
- Multiplier N par 100, sachant que N est un nombre de 18 chiffres obtenu suite à la concaténation
des chiffres des champs CB, CA et NC.
- Calculer le reste de la division entière du nombre ainsi obtenu par 97.
- Soustraire de 97, le reste obtenu dans l’étape précédente. Le résultat de cette soustraction
représente la clé de contrôle dite clé RIB, qui ne peut prendre qu’une valeur entre 01 et 97.
Un RIB est valide lorsque la clé figurant dans le RIB est égale à celle calculée en utilisant la
méthode de calcul décrite ci-dessus.
Exemple :
Pour le RIB suivant :
10 407 0240067532481 20

- N est égal à 104070240067532481


N * 100 est égal à 10407024006753248100
- Le reste de la division entière de N par 97 est égal à 77
- 97 – 77 = 20 qui représente la clé de contrôle dite clé RIB
D’où, le RIB est valide puisque la clé de contrôle calculée est égale à la clé figurant dans le RIB.
Travail à faire :
Ecrire un algorithme d’un module intitulé “TRIB“ qui, à partir d’un fichier “RIB.txt“ contenant
des codes RIB, à raison d’un code par ligne, permet de :

- Remplir un Fichier “RIB_valide.txt“ par les RIB valides du fichier “RIB.txt“


- Trier le fichier “ RIB_valide.txt “ selon l’ordre croissant du code de la banque.
NB :
- Le candidat n’est pas appelé à remplir le fichier “RIB.txt“
- Le fichier “ RIB_valide.txt “ sera enregistré sur la racine du disque C.
- Le candidat peut utiliser une fonction intitulée Mod97(CH) ayant comme paramètre une chaîne de
caractères CH représentant une valeur numérique très grande N et qui permet de retourner le reste
de la division entière de N par 97. Le candidat n’est pas appelé à développer cette fonction.

1
Exercice 2 15 min

Pour chacune des propositions ci-dessous, mettez la lettre "V" si la proposition est correcte et la
lettre "F" dans le cas contraire
Soit l’algorithme de la fonction inconnue suivante :
Fonction F (CH1, CH2 : chaine ; X,B : entier) :…………….
Début
Si CH1="" alors
Retourner 0
Sinon
Retourner F(souschaine(CH1,0,long(CH1)-1),CH2,X,B*X)+(pos(CH1[long(CH1)-1],CH2))*B
Fin si
Fin

a) Le type de la fonction inconnue est :

Chaine Réel Entier booléen

b) Soient CH1="1F6B", CH2="0123456789ABCDEF" et x=16, la fonction inconnue ci-dessus

permet de retourner le résultat suivant :

"1101110010100111" "1F6B" 4096 8043

c) Le rôle de la fonction inconnue est de :

Convertir un nombre Convertir un nombre Convertir un nombre


hexadécimal en binaire hexadécimal en décimal hexadécimal en octal

Convertir un nombre
décimal en hexadécimal

2
Exercice 3 25 min

On se propose d’écrire un algorithme modulaire qui permet de :


- Saisir N nombres binaires formé chacun par des 0 et des 1 et de longueur minimale 8 bits, dans
un fichier texte appelé « binaire.txt » et enregistré dans la racine C.
- Convertir et placer l’équivalent en hexadécimale de chaque séquence de 8 bits dans un autre
fichier texte appelé « hexa.txt » en respectant le format suivant :
Séquence binaire+ 2espaces+ hexadécimal
Remarque :
La conversion du binaire vers l’hexadécimal ne doit pas passer par la base 10 mais en suivant le
principe suivant :
Le principe de conversion du binaire vers l'hexadécimal consiste à regrouper les chiffres binaires
par tranches de 4, en partant de la droite. On complète par des 0 à gauche lorsque nécessaire pour
avoir un nombre entier de tranches de 4 chiffres binaires.
Convertissons 01001101 en hexadécimal.
0100 : 0*20+0*21+1*22+0*23 = 4
1101 : 1*20+0*21+1*22+1*23 = 13 = D
(01001101)2 = (4D)16

Exercice 4 25 min
Deux nombres a et b sont homogènes s'ils admettent les mêmes facteurs premiers.
Exemple :
60 = 2² x 3 x 5
90 = 2 x 3² x 5
Travail demandé :
Ecrire un algorithme d’une procédure qui permet de remplir un fichier d’enregistrements
« homogne.dat » par tous les nombres homogènes compris entre 10 et 100000.
NB. Chaque enregistrement du fichier est formé par trois champs :
nb1 : contiendra le nombre 1,
nb2 : contiendra le nombre 2,
homogène : contiendra la valeur vrai si le nombre 1 et le nombre 2 sont homogène et faux
dans le cas contraire

Vous aimerez peut-être aussi