BB - ALGO2021 4si

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

Devoir de synthèse N° 2

Section : Sciences de l’informatique


Commissariat Régional de
Nabeul Matière :
Algorithmique et programmation
Niveau : 4ème année Date : Jeudi 27 Mai 2021 Durée : 3 Heures
Nom & Prénom :………………………………………Classe :………… Note :………………… /20

NB : le sujet comporte 3 pages. La page 1 est à remettre à la fin de l’épreuve.

Exercice 1 (1.5 points)


Pour chaque question, mettre V si la proposition est correcte et f si elle est fausse
1. Soit une variable « E » de type enregistrement. L’instruction Lire (E) :
 N’est pas possible.
 Est possible.
 Est possible si la variable « E » contient un seul champ.
2. Soient deux variables « E1 » et « E2 » de type enregistrement. L’affectation E1 E2 :
 Se fait uniquement pour les champs ayant le même nom et le même type.
 Est possible même si E1 et E2 ne sont pas de même type.
 Ne se fait que si E1 et E2 sont de même type.

Exercice 2 (3 points)
1
En mathématiques, plus précisément en combinatoire, le Triangle 1 2
de Bell est un tableau triangulaire de nombres analogues au triangle
de Pascal. 2 3 5
La construction de ce triangle est un moyen simple d'obtenir les 5 7 10 15
premiers nombres de Bell, comme le montre l’exemple ci-contre.
15 20 27 37 52

Description
On commence par écrire 1 sur la première ligne, puis chaque ligne est obtenue en commençant par
le dernier nombre de la ligne précédente et pour obtenir un nombre, on additionne le nombre
précédent avec celui qui se trouve immédiatement au-dessus de celui-ci. Chaque ligne aura ainsi un
nombre de plus que la ligne précédente.
Pour 1<= C <= L, M[L, C] : le nombre de la ligne L et de la colonne C est définit comme suit :
• M[1, 1]= 1
• M[L, 1] = M[L-1, L-1]
• M[L, C] = M[L, C-1] + M[L-1, C-1] pour 2 <= C <= L
Travail demandé
Ecrire l’algorithme d’un module permettant de remplir les N premières lignes de Triangle de Bell

Page 1 sur 3
Exercice 3 (6.5 points)
Un nombre de Carmichaël est un entier composé n tel que si on soustrait 1 à chacun de ses facteurs
premiers chaque différence est un diviseur de (n - 1).
Les nombres de Carmichael ont au moins trois facteurs premiers.

Les 5 premiers nombres de Carmichael sont :


561 = 3 × 11 × 17
1 105 = 5 × 13 × 17
1 729 = 7 × 13 × 19
2 465 = 5 × 17 × 29
2 821 = 7 × 13 × 31

Exemples :
- 561 est un nombre de Carmichaël.
En effet : 561 = 3 × 11 × 17 (3, 11 et 17 sont des facteurs premiers)

3-1 =2 11-1 = 10 17-1=16


2, 10 et 16 sont des diviseurs de 560 (561 – 1).

- 41041 est un nombre de Carmichaël.


En effet 41041 = 7 * 11 * 13 *41 (7, 11,13 et 41 sont des facteurs premiers)

7-1=6 11-1 =10 13-1 =12 41-1 =40

6, 10,12 et 40 sont des diviseurs de 41040 (41041 – 1).

Travail demandé :

Ecrire un module permettant d’afficher tous les nombres Carmichaël se trouvant dans un intervalle
[a..b] donné

Page 2 sur 3
Problème : (9 points)
Dans le système d’identification des produits par codes à barres, un code est une succession de 12
chiffres précédés d’un treizième chiffre appelé clé du code et qui sert à la vérification de la bonne
saisie du code.

Clé du code R

Principe
Un code à barres est symbolisé par :
R C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12
R est la clé du code et C1, C2, . . . , C12 sont les 12 chiffres du code.
Les chiffres de rangs impairs sont (C1, C3, ..., C11) et les chiffres de rangs pairs sont (C2, C4, C6,
… , C12).
La clé R est calculée de la manière suivante :
S = (3(somme des chiffres de rangs impairs) + (somme des termes de rangs pairs) ) mod 10
R = 10 - S
Exemple :

Soit le code à barre = 4 018474332189

Sur l’étiquette imprimée plus haut on a R = 4, C1 = 0, C2 = 1 etc.

C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12


0 1 8 4 7 4 3 3 2 1 8 9

S = ( 3 x(0+8+7+3+2+8) + (1+4+4+3+1+9) ) MOD 10

S = (3x28+22) mod 10 = 106 mod 10 = 6

R = 10 - 6 = 4.

On voit bien que la valeur calculée de R correspond à la valeur de la clé du code donné.

Travail demandé :

Soit un fichier texte nommé "Codes.txt" déjà créé et enregistré dans « C:\travail\ » et contenant
des codes à barres de 13 chiffres, à raison d’un code par ligne. Le but du problème est de transférer,
à partir du fichier "Codes.txt", tous les codes corrects vers un fichier "Correct.txt", c'est-à-dire les
codes dont la clé R est exacte.

Questions :

1) Analyser le problème en le décomposant en modules.


2) Ecrire les algorithmes des différents modules proposés.

Page 3 sur 3

Vous aimerez peut-être aussi