100% ont trouvé ce document utile (1 vote)
545 vues7 pages

DEVOIR DE CONTROLE N3 4si1&2

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

DEVOIR DE CONTROLE N°3

Lycée : Route de Gabés Classe : 4SI1 Date : 21/02/2023 Durée : 1H30

Exercice 1 : RECURSIVITE : TOURNAGE A LA MAIN (4 pts)

Fonction INCONNUE (X, Y, D : Entier) : Entier


Début
Si (X=1) ET (Y=1) Alors Retourner 1

SinonSi (X MOD Y = 0) et (Y MOD D = 0) Alors


Retourner( INCONNUE (X DIV D, Y DIV D, D) * D))
SinonSi (X MOD D = 0) Alors
Retourner( INCONNUE (X DIV D, Y, D) * D)
SinonSi (X MOD D =0) Alors
Retourner( INCONNUE (X, Y DIV D, D) * D)
Sinon
Retourner( INCONNUE (X, Y, D+1) )
FinSi

Fin

 Travail demandé :

1. Exécuter manuellement la fonction « INCONNUE » dans les cas suivants :

 INCONNUE (60, 90, 2) = ? et INCONNUE (8, 6, 2) = ?


2. Déduire le rôle de la fonction « INCONNUE »

Exercice 2 : CARRE PARFAIT (4 pts)

Un entier positif N est dit carré parfait s'il existe un entier K tel que N = K2 .
On se propose de chercher toutes les décompositions de N (un carré parfait) en une somme de carrés
de nombres différents.
 Exemples :
▪ Si N = 121 les solutions seront :
121 = 102+42+22+12
121 = 92+62+22
▪ Si N = 49 la solution sera : 49 = 62+32+22
▪ Si N = 36 on affiche alors : Pas de solution pour ce nombre

1
 Travail demandé : Ecrire un algorithme d'un module qui affiche toutes les décompositions
d’un carré parfait N si elles existent ou le message « Pas de solution pour ce nombre » dans le cas
contraire.
NB : Utiliser le format de l’exemple ci-après : Si N = 49 le module affichera :
49 = 6^2 + 3^2 + 2^2

Exercice 3 : NOMBRES PREMIERS DE SOPHIE GERMAIN (6pts)

Un Nombre P est un Nombre premier de Sophie Germain s’il est un nombre premier et son
double plus un est aussi premier. (P et 2P + 1 sont premiers.)
Exemple : P = 5 est un nombre premier de Sophie Germain puisque 2P+1=11 est aussi premier
Une chaîne de Cunningham est une séquence d’au moins 2 nombres premiers de Sophie Germain.
 Exemple
- Séquence à cinq termes : 2, 5, 11, 23, 47(le nombre suivant serait 95. N’est pas premier)
- Séquence à deux termes : 3, 7(le nombre suivant serait 15. N’est pas premier)

 Questions :
1. Ecrire un module Cunningham qui permet à partir d’un nombre P de déterminé la chaine de
Cunningham ainsi que le nombre de termes
Procédure Cunningham (P : entier ; @CH : chaine ; @ NB : entier)
Exemple : Cunningham (2, CH, NB) donne pour CH = "2, 5, 11, 23, 47" et NB = 5
Cunningham (10, CH, NB) donne pour CH = "" et NB = 0

2. En faisant appel à la procédure Cunningham, écrire l’algorithme d’une procédure


Remplir (F, k), permettant de remplir un fichier d’enregistrement SeqCun.dat par les k
premiers chaîne de Cunningham d’au moins 5 termes.
Chaque enregistrement contient :
❖ P : Nombre de premier terme
❖ SEQ : la séquence ou la chaine de Cunningham
❖ NBR : nombre de termes de la chaine SEQ
NB : Le fichier F est de type Fiche

2
Exercice 4 : NOMBRES DE SMITH (6pts)

Un nombre S de SMIH est un nombre composé dont la somme des chiffres est la même que celle des
chiffres de ses facteurs premiers, incluant les répétitions de facteurs.
Ainsi 636 est un nombre de SMITH, ces facteurs sont 2 * 2 * 3 * 53.
La somme des chiffres de 636 est 15 et celle des chiffres des facteurs est égale à 15
Nombre composé : Entier naturel qui est le produit de deux nombres premiers ou plus
 Questions :
1. Ecrire une fonction SommeChiffre (N : Entier) : Entier, qui permet de calculer la somme
de chiffres d’un entier N.
2. Ecrire une fonction SMITH (N : Entier) : chaine, qui permet de vérifier si un Entier N est
un nombre de SMITH.
NB : cette fonction retourne une chaine vide si N n’est pas SMITH sinon elle retourne sa
décomposition en facteur premiers.
3. Ecrire une procédure Generere (@G : texte ; D, F : entier), permettant de remplir G
« ListeSmith.txt» par tous les nombres de SMITH entre D et F.
Chaque ligne de Fichier G contient le nombre SMITH ainsi que sa décomposition en facteur
premier
Exemple : D = 10 et F = 30 Le fichier G devient
22 = 2 * 11
27 = 3 * 3 * 3

3
DEVOIR DE CONTROLE N°3
Lycée : Route de Gabés Classe : 4SI2 Date : 13/02/2023 Durée : 1H30

Exercice 1 : Nombre pernicieux (6pts)


Un nombre P et dit un nombre pernicieux est un nombre dont la somme des chiffres en binaire est
un nombre premier.

Exemple : P = 44 est un nombre pernicieux car :

(44)10 (101100)2 : et la Somme des chiffres de 101100 est égale à 3 (Nombre Premier)
1. Ecrire une fonction DecToBin (P : entier) : chaine, qui permet de convertir un nombre décimale
P vers la base 2
2. Ecrire une fonction Somme (CH : chaine) : entier, qui permet de calculer la somme des chiffres
d’une chaine numérique CH
3. Ecrire une fonction Premier (N : entier) : Booléen, qui permet de vérifier si un entier N est
premier ou non
4. Ecrire une fonction pernicieux (P : Entier) : Booléen qui permet de vérifier si un nombre P est
pernicieux ou non
5. Ecrire une procédure Affiche (N : Entier) qui permet d’afficher les N premiers nombre
pernicieux

Exercice 2 : Décryptage Fichier Texte (5pts)


Etant donné un fichier texte intitulé "MsgCrypte.txt" contenant un texte crypté d’un message, où
chaque ligne représente un mot crypté.
Le principe du cryptage est le suivant
▪ Chaque mot est crypté caractère par caractère.
▪ Chaque caractère est crypté par sa représentation binaire, sur 8 bits, de son code ASCII.
On se propose :
▪ De décrypter les lignes du fichier "MsgCrypte.txt" pour obtenir tous les mots formant le
message initial,
▪ D’afficher le texte décrypté, en séparant les mots par des espaces.
Exemple 01000010 0110000101100011

Le contenu du fichier "MsgCrypte.txt" suivant : 01101001011011100110011001101111

01101010011101010110100101101110

00110010001100000011001000110011

4
Après décryptage, le programme affichera le message suivant : Bac info juin 2023
Notons que, le code ASCII du caractère "B" (le premier caractère du premier mot) est 66, dont
la représentation binaire est 01000010 (les huit premiers bits de la première ligne du fichier
"MsgCrypte.txt").

N.B Le candidat n’est pas appelé ô créer le fichier "MsgCrypte.txt".


Travail à faire :
1. Ecrire un module GenererCar(ch) qui permet à partir d’un nombre binaire de 8 bits de
retourner le caractère alphabétique correspondant GenererCar ("01000010") = "B"
2. En utilisant GenererCar(ch), Ecrire un module GenererLigne(ch) qui permet à partir d’un
nombre binaire retourner le mot correspondant
GenererLigne ("01000010 0110000101100011") = "Bac"
3. En utilisant GenererLigne(ch), Ecrire un module decrypter(F) qui permet de décrypter le
fichier F le principe décrit précédemment.

Exercice 3 : Ruban de Pascal (5pts)


Le ruban de Pascal est une technique servant à déterminer si un nombre K est divisible par un
nombre D dans une base B.

Dans le reste de l’exercice, on utilise la base décimale dans laquelle le nombre K est écrit.

Le principe des rubans est d'identifier, pour chaque puissance de la base 10, le reste dans sa division
euclidienne par D.

Exemple : Pour D = 7, on a :

100 mod 7 = 1 101 mod 7 = 3 102 mod 7 = 2 103 mod 7 = 6 104 mod 7 = 4
105 mod 7 = 5 106 mod 7 = 1 107 mod 7 = 3 108 mod 7 = 2 109 mod 7 = 6
1010 mod 7 = 4 1011 mod 7 = 5 1012 mod 7 = 1 etc ….

Donc le ruban de Pascal pour le nombre 7 est : 1 , 3 , 2 , 6 , 4 , 5 , 1 , 3 , 2 , 6 , 4 , 5 , 1 , e t c …

 C'est ce ruban que l'on utilisera pour savoir si K est divisible par 7.
Exemple :

On cherche à savoir si K = 296419750389 est divisible par D = 7 ou non.


Il faut commencer par aligner le nombre K avec le ruban de 7 en commençant par la droite
K = 296419750389
Ruban = 546231546231
5
Ensuite, on fait la somme des produits entre : les chiffres de K et les chiffres du ruban
S = 2x5 + 9x4 + 6x6 + 4x2 +1x3 + 9x1 + 7x5 + 5x4 + 0x6 + 3x2 + 8x3 + 9x1
= 196

On recommence avec 196

K = 196
Ruban = 231
S = 1x2 + 9x3 + 6x1 = 35
On recommence avec 35

K = 35
Ruban =31
S =5x1 + 3x3 =14
On recommence avec 14

K = 14
Ruban =31
S =5x1 + 3x3 = 7
On recommence avec 7

K = 7
Ruban =1

S = 7 x 1 = 7 On s’arrête le calcul puisque le calcul de la somme S devient stationnaire

La valeur finale de S = 7 = D donc le premier nombre K = 296419750389 est divisible par 7

Questions :
1. Quel est le ruban associé à l'entier 2 (calculer les 4 premiers nombre)
2. Ecrire un module qui permet de vérifier si un entier K est divisible par D on utilise le principe
décrit précédemment.
NB : le calcul s’arrête l’lorsque la somme S reste stationnaire

6
Exercice 4 : Nombres De Permutation (4pts)
Notre objectif est de déterminer toutes les permutation possibles des chiffres de 1 à N (N<10)
Exemple Si N = 3 les permutations possibles sont : 123 – 132 – 213 – 231 – 312 – 321
Si N = 4 les permutations possibles sont : 1234 – 1243 – 1324 – 1342 – 1423 – 1432
2134 – 2143 – 2314 – 2341 – 2413 – 2431
3124 – 3142 – 3214 – 3241 – 3412 – 3421
4123 – 4132 – 4213 – 4231 – 4312 – 4321

Remarque : Le nombre de permutation des entiers de 1 à n est de n !

Pour réaliser cette tâche, on utilise une matrice M dont le nombre de lignes est N et le nombre des
colonnes est N!, comme le montre l’exemple ci-contre pour N = 4.

0 1 2 3 4 5 6 7 8 …… 23
0 1
1 21 12
2 321 231 213 312 132 123
3 4321 3421 3241 3214 4231 2431 2341 2314 ……... ……… 1234

Chaque ligne L représente les permutations possibles des chiffres de 1 à L+1


➢ Ligne 1 : représente les permutations possibles des chiffres 1 et 2
➢ Ligne 2 : représente les permutations possibles des chiffres 1 ,2 et 3
➢ Ligne 3 : représente les permutations possibles des chiffres 1, 2, 3 et 4
➢ Etc ……

 Méthode de remplissage
On commence par écrire 1 sur la première ligne, (Ligne 0)
Puis la deuxième ligne est l’insertion de 2 dans toutes les positions possibles de 1
Puis la troisième ligne est l’insertion de 3 dans toutes les positions possibles de 21 et 12
Puis la quatrième ligne est l’insertion de 4 dans toutes les positions possibles de 321, 231, 213, 312,
132, 123
Etc …..

 Travail demandé
Ecrire l’algorithme d’un module permettant de remplir M par les N premières lignes. (M est de type
Mat)

Vous aimerez peut-être aussi