Prof : M.
M’rabet Ilyess Série de révision Classe : 4si
Exercice n°1 :
Pour chacune des propositions ci-dessous, mettez dans la case correspondante la lettre (V) si elle est correcte ou
la lettre (F) dans le cas contraire.
A) Soit la procédure inconnue suivante :
procédure inconnue (n :entier)
début
si (n=0) alors
retourner ""
sinon si(n mod 2=0) alors
retourner inconnue (n div 2)+"0"
sinon
retourner inconnue (n div 2)+"1"
Fin si
Fin
a) Soit l’appel suivant : ecrire(inconnue(14)), alors le résultat à afficher est :
"0111" "0" "1110" ""
b) Si on place les deux instructions de concaténation juste avant l’appel de la fonction, l’affichage sera:
"0111" "1" "1010" ""
B) Quel est le rôle de cette fonction
Exercice n°2 :
En mathématiques, la suite de Perrin est une variante de la suite de Padovan, de même relation de récurrence.
Cette suite d'entiers est définie par récurrence par :
U0=3
U1=0
U2=2
U𝑛=U𝑛−2+U𝑛−3
Cette suite vérifie la propriété suivante : pour tout n≥2, si n divise Un alors n est un nombre premier.
Travail demandé :
1) Quel est l’ordre de récurrence de cette suite ? justifier votre réponse
2) Ecrire une fonction récursive Perrin(N) qui permet de calculer le nième terme de la suite de Perrin
3) Ecrire une procédure Affiche(N) qui permet de sauvegarder dans un fichier texte ayant comme nom
physique « [Link]» (Premier20, premier66(),…) tous les nombres premiers entre 2 et N.
Exercice n°3 :
Exercice n°4 :
Tarvail demandé :
Ecrire un algorithme d’une procédure décrypter(N) qui permet de décrypter le contenu du fichier
[Link] afin d’obtenir le mùessage clair et l’afficher
Exercice n°5 :
Exercice n°6:
En mathématique, pour convertir un nombre décimal négatif (X) vers la base 16, on procède de la manière
suivante :
Etape I : Convertir le nombre X vers la base 2
1) Convertir la valeur absolue de (x) en un nombre binaire (B)
2) Modifier le nombre binaire (B) pour que sa taille soit divisible par 4
3) Inverser le nombre binaire (B) de façon à modifier chaque chiffre "0" par "1" et chaque "1" par "0"
4) Ajouter l’entier 1 au nombre binaire (B) ➔B+1
N.B :
• 0+1=1
• 1+1=0 et on retient 1
Etape II : Convertir le nombre binaire vers la base 16
Pour convertir un nombre binaire de 4 chiffres vers la base 16 :
1) On sait que si les 4 chiffres sont égaux à (1111)2 alors son équivalent en base 10 est égale à 15
On parcourt le nombre binaire, si on trouve un 0, on soustrait de 15 le chiffre correspondant.
Sachant que :
(1111)2 (15)10
1 (1ère à gauche) 8
1 (2 ème à gauche) 4
1 (3ème à gauche) 2
1 (4 à gauche)
ème 1
2) Concaténer le résultat de chaque block de 4 chiffres
Exemple : Pour X=-300
Etape I :
1) Convertir valeur absolue de -300 ➔(300)10=( 1 0010 1100)2
2) Si c’est nécessaire, ajouter le chiffre 0 à gauche pour avoir un block divisible par 4 ➔( 0001 0010 1100)2
3) Inverser les chiffres ➔(1110 1101 0011)2
4) Ajouter 1 au nombre binaire ➔ 1110 1101 0011+1=(1110 1101 0100)2
Etape II :
1) Convertir chaque bloc de 4 chiffres en base 16
• (1110)2 :
✓ Le 1ère chiffre est 1 ➔Pas de changement B=15
✓ Le 2ème chiffre est 1 ➔Pas de changement B=15
✓ Le 3ème chiffre est 1 ➔Pas de changement B=15
✓ Le 4ème chiffre est 0 ➔B=15-1=14
✓ L’équivalent de 14 en base 16 est « E »
• (1101)2 :
✓ Le 1ère chiffre est 1 ➔Pas de changement B=15
✓ Le 2ème chiffre est 1 ➔Pas de changement B=15
✓ Le 3ème chiffre est 0 ➔B=15-2=13
✓ Le 4ème chiffre est 1 ➔Pas de changement B=13
✓ L’équivalent de 13 en base 16 est « D »
• (0100)2 :
✓ Le 1ère chiffre est 0 ➔B=15-8=7
✓ Le 2ème chiffre est 1 ➔Pas de changement B=7
✓ Le 3ème chiffre est 0 ➔B=7-2=5
✓ Le 4ème chiffre est 0 ➔B=5-1=4
✓ L’équivalent de 4 en base 16 est « 4 »
2) ➔(-300)10=(ED4)16
Travail demandé :
Ecrire l’algorithme d’un module « Conv_Neg »permettant de convertir un nombre décimal négatif (X) vers la
base 16 en appliquant le principe déjà présenté
Remarque :
• X est déjà saisie au niveau du programme appelant
• Le module peut utiliser d’autres modules