Algo & Prog
Classe : Bac Sciences de l’informatique
Examen : Devoir de Synthèse N°3 (2h)
Algo & Prog
Français
Exercice 1 10 min 3 pts
Soit les fonctions f et g définis dans l’inter-
valle [-1,1] par f(x)=x3 et g(x)=x et dont la
représentation graphique est illustrée g(x)
dans la figure ci-contre. f(x)
Travail demandé :
Ecrire l’algorithme d’un module nommé
surface(n) permettant de calculer la sur-
face de la partie indiquée en couleur verte
en utilisant la méthode des trapèzes.
Exercice 2 25min 4 pts
Un entier P (strictement supérieur à 1) est dit « primaire » s'il existe un en-
tier naturel premier X tel que P = X n avec n un entier strictement positif.
𝒏
La racine nième de P (X= √𝑷) peut être calculée approximativement à 10-5
près avec la suite x définie par
n=0
n>0
On se propose par la suite de vérifier si un entier P est primaire ou non.
Exemples :
- 10 n’est pas un nombre primaire, en effet
n Valeur approchée de Racine n-ième Constatation
2
2 √10 ≈ 3.16227 3.16227 3
3
3 √10 ≈ 2.15443 2.15443 2
4
4 √10 ≈ 1.77827 1.77827 < 2
*égalité approximative à 10-5 près
1
Algo & Prog
Français
- 16807 est un nombre primaire. En effet :
n Valeur approchée de Racine n-ième Constatation
2
2 √16807 ≈ 129.64181 129.64181 129
3
3 √16807 ≈ 25.61513 25.61513 25
4
4 √16807 ≈ 11.38603 11.38603 11
5
5 √16807 ≈ 7.00000….18 7.00000..18 ≈ 7 (premier)
*égalité approximative à 10-5 près
𝟐
- 144 n’est pas un nombre primaire, en effet √𝟏𝟒𝟒 = 12 qui n’est pas
premier.
Travail demandé :
1. Ecrire l’algorithme d’une fonction nommée racine_nieme(n,P) permet-
tant de retourner à 10-5 près la racine nième du nombre P.
2. Ecrire l’algorithme d’une fonction nommée primaire(P) permettant de vé-
rifier si l’entier P est primaire.
N.B. : Le candidat n’est pas appelé à développer les fonctions suivantes
- puissance(a,b) permettant de calculer ab
-
premier(n) permettant de tester la primalité d’un entier donné.
Exercice 3 20 min 5 pts
Tout entier naturel positif N peut s'écrire sous la forme de la somme pondé-
rée de factoriers :
N = a1 * 1! +a2 *2! + a3 * 3! +⋯+ an * n!
Où (a1,a2,a3,…,an) sont des entiers positifs tels que 0≤ai≤i.
Exemples :
23= 3 * 3! +2 * 2! + 1*1!
350=2 * 5! + 4 * 4! + 2 * 3! + 2 * 1!
2
Algo & Prog
Français
Travail demandé :
Écrire l'algorithme d'un module nommé decomposer(N) qui retourne une
chaine de caractères représentant la décomposition de l’entier N en
somme pondérée de factoriels.
Exercice 4 60 min 8 pts
Le code Morse international, est un code A ⋅− N −⋅ 0 −−−−
permettant de transmettre un texte à l'aide de
B −⋯ O −−− 1 ⋅−−−−
séries d'impulsions, ces impulsions peuvent
être produites par des signes, une lumière, un C −⋅−⋅ P ⋅−−⋅ 2 ⋅⋅−−−
son. D −⋅⋅ Q −−⋅− 3 ⋅⋅⋅−−
Ce codage de caractères assigne à chaque E ⋅ R ⋅−⋅ 4 ⋅⋅⋅⋅−
lettre et à chaque chiffre une combinaison F ⋅⋅−⋅ S ⋯ 5 ⋅⋅⋅⋅⋅
unique de signaux intermittents.
G −−⋅ T − 6 −⋅⋅⋅⋅
La figure ci-contre représente le codage de
H ⋯⋅ U ⋅⋅− 7 −−⋅⋅⋅
chaque caractère alphabétique (majuscule) et
chaque chiffre par une combinaison unique I ⋅⋅ V ⋯− 8 −−−⋅⋅
de points (⋅) et de tirets (−) et en considérant J ⋅−−− W ⋅−− 9 −−−−−⋅
que
K −⋅− X −⋅⋅−
1- Les codes de deux caractères succes- L ⋅−⋅⋅ Y −⋅−−
sifs sont séparés par trois (3) espaces.
M −− Z −−⋅⋅
2- L'espacement entre deux mots est codé
par sept (7) espaces. fig. Codage des caractères
Exemples :
• Le code de la lettre « A » est « ⋅− »
• Le code des mots « DS3 ALGO » est : -.. ... …--- .- .-.. --. ---
D S 3 A L G O
-.. 3 espaces ... 3 espaces …--- 7 espaces .- 3 espaces .-.. 3 espaces --. 3 espaces ---
3
Algo & Prog
Français
Etant donné un fichier d'enregistrements intitulé « Codes_morse.dat », où
chaque enregistrement est composé de deux champs :
• Caractère : contenant une lettre majuscule ou un chiffre,
• Code : contenant le code Morse équivalent
En utilisant le fichier « Codes_morse.dat », on se propose de générer
l'équivalent morse d'un message à envoyer contenu dans un fichier texte
intitulé « message.txt » et l'enregistrer dans un fichier texte intitulé « Re-
sultat.txt ». Sachant que chaque ligne du fichier « message.txt » est com-
posée par des lettres majuscules, des espaces et/ou des chiffres.
Travail demandé :
Soient F1, F2 et F3 les noms logiques des fichiers « Codes_morse.dat », «
message.txt » et « Resultat.txt ».
1- Donner la déclaration d'un type pour le fichier « Codes_morse.dat » ainsi
que celles des types nécessaires à sa déclaration.
2- Ecrire un algorithme d'un module, nommé Verifier (F1), qui permet de vé-
rifier la validité des codes déjà saisis dans le fichier « Codes_morse.dat »
sachant que
- Tous les caractères alphabétiques doivent être présentés dans
le fichier.
- Chaque code est unique.
N.B. :
- Le candidat n’est pas appelé à remplir le fichier F1.
3- Tout en vérifiant la validité du message à transmettre, écrire l’algorithme
d’un module nommé Remplir(F2) permettant de remplir le fichier « mes-
sage.txt » avec le message clair à chiffrer.
4- Ecrire un algorithme d'un module, nommé GENERER (F1, F2, F3), qui per-
met à partir du texte du fichier « message.txt » de coder et générer le fichier
« Resultat.txt ».